分类: LINUX
2012-04-18 23:17:31
移植环境:
主机操作系统:Ubantu 8.10
目标系统:linux-2.6.22.6
交叉编译器:arm-softfloat-linux-gnu-gcc-3.4.5
一、RT73驱动编译
1、 下载RT73驱动源码
网站上下载2009_0713_RT73_Linux_STA_Drv1[1].1.0.3.zip
解压unzip 2009_0713_RT73_Linux_STA_Drv1/[1/].1.0.3.zip
生成两个目录:
Module(驱动) WPA_Supplicant-0.5.8(wpa网络工具)
2、 修改Makefile
5 #PLATFORM=PC
6 PLATFORM=CMPC
33 #EXTRA_CFLAGS += -DDBG
40 ifeq ($(PLATFORM),CMPC)
41 LINUX_SRC = /source/kernel/linux-2.6.22
42 endif
注:#EXTRA_CFLAGS += -DDBG 一定要关掉,否则终端会不停的循环打印扫描网络的信息
3、 配置内核支持wifi网络
否则会出现如下错误:
/mnt/sdc/rt73/2009_0713_RT73_Linux_STA_Drv1.1.0.3/Module/rtmp_main.c:1163: error: structure has no member named `wireless_handlers'
<*> Packet socket
配置完毕后,需要编译下内核,目的是使配置在include/linux/autoconfig.h中生效 1、 编译源码,生成rt73.ko /rt73/2009_0713_RT73_Linux_STA_Drv1.1.0.3/Module# make 拷贝驱动到目标系统 #cp rt73.ko /source/rootfs/rt73/ 2、 拷贝固件到目标系统 #cp rt73.bin /source/rootfs/etc/Wireless/RT73STA/ #cp rt73.rt73.dat /source/rootfs/etc/Wireless/RT73STA/ 二、 移植wpa_supplicant 因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具 1、 下载源码
下载wpa_supplicant-0.7.2.tar.gz (openssl用到0.7.2提供的补丁) 下载wpa_supplicant-0.5.8.tar.gz (最终工具版本) #tar xvfz wpa_supplicant-0.7.2.tar.gz #tar xvfz wpa_supplicant-0.5.8.tar.gz 下载 #tar zxvf openssl-0.9.8e.tar.gz 2、编译openssl库 将wpa_supplicant中的补丁拷贝到openssl中 # cp wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/ #cd openssl-0.9.8e #mkdir /usr/local/ssl #vim Makefile CC= arm-softfloat-linux-gnu-gcc AR= arm-softfloat-linux-gnu- r $(ARFLAGS) r RANLIB= arm-softfloat-linux-gnu-ranlib INSTALLTOP=/usr/local/ssl OPENSSLDIR=/usr/local/ssl #make #make install 在/usr/local/ssl目录下安装了ssl库 3、 编译wpa_supplicant 参照rt73驱动源码包中的:2009_0713_RT73_Linux_STA_Drv1.1.0.3/ WPA_Supplicant-0.5.8/readme文件提示的步骤完成下面的操作 进入pa_supplicant-0.5.8.tar.gz解压生成的wpa_supplicant-0.5.8目录中: #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/driver_ralink.* ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/driver.h ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/events.c ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/wpa_supplicant.c ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/wpa_supplicant_i.h ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/defconfig ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/drivers.c ./ #cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/Makefile ./ #cp defconfig .config #vim .config CC= arm-softfloat-linux-gnu-gcc -L /usr/local/ssl/lib/ #make 生成wpa_supplicant #cp wpa_supplicant /source/rootfs/bin #cp wpa_supplicant-0.7.2/wpa_supplicant/examples/wpa-psk-tkip.conf /source/rootfs/etc/wpa_supplicant.conf #vi /source/rootfs/etc/wpa_supplicant.conf 修改内容如下: # WPA-PSK/TKIP ctrl_interface=/var/run/wpa_supplicant network={ ssid="farsight" //填写无线网络的的用户名 key_mgmt=WPA-PSK proto=WPA pairwise=TKIP group=TKIP psk="12345678" //填写密码 } 在开发板终端: #mkdir –p /var/run/wpa_supplicant 4、 wireless_tools移植 下载wireless_tools.28.tar.bz2 #tar xvfj wireless_tools.28.tar.bz2 #cd wireless_tools.28 #mkdir ../wireless_tools #vi Makefile PREFIX=$(PWD)/../wireless_tools CC= arm-softfloat-linux-gnu-gcc AR= arm-softfloat-linux-gnu-ar #make #make install #cp ../wireless_tools/lib/* /source/rootfs/lib/ #cp ../wireless_tools/sbin/* /source/rootfs/sbin/ 5、 设置开发板启动脚本 insmod /rt73/rt73.ko ifconfig rausb0 192.168.0.12 /bin/wpa_supplicant -B -irausb0 –c /etc/wpa_supplicant.conf –Dralink 无线网卡将被激活。
CFLAGS += -I/usr/local/ssl/include/
LIBS += -L/usr/local/ssl/lib/