移植RT2571(73)WIFI无线网卡驱动到FS2410
【编译环境】ubuntu 8.10 + Vmware + windows xp
【目标机】FS2410
【交叉编译器】arm-softfloat-linux-gnu-gcc
为了让机器人摆脱缆线的束缚,最快的方式是给它加上无线网卡,原基于以太网的程序几乎可以不做改变,其他的如采用无线数传模块则需要较大的工作量,参考刘洪涛老师的移植步骤,开始了RT2571(73)USB无线网卡的移植
1. 下载 RT73 驱动源码
到h t t p: //www.ralinktech.com 网站上下载 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 = /hd2/linux-2.6.22.6-pure/linux-2.6.22.6 (内核源码树所在路径)
42 endif
3 . 配置内核以支持 wifi 网络
Networking --->
Wireless --->
Networking options --->
配置完后,重新编译一下内核。
4. 编译源码,生成 rt73.ko
/rt73/2009_0713_RT73_Linux_STA_Drv1.1.0.3/Module# make
新建目录 /source/rootfs/rt73/ ( /source/rootfs/ 是我的NFS服务共享的目录,调试时作为目标板的根文件系统 )
# mkdir /source/rootfs/rt73
拷贝 rt73.ko 到目标系统
#cp rt73.ko /source/rootfs/rt73/
5. 拷贝固件 rt73.bin、 rt73sta.dat 到目标系统
新建目录 /source/rootfs/etc/Wireless/RT73STA/
# mkdir -p /source/rootfs/etc/Wireless/RT73STA
拷贝到目标板
#cp rt73.bin /source/rootfs/etc/Wireless/RT73STA/
#cp rt73sta.dat /source/rootfs/etc/Wireless/RT73STA/
6 .移值wpa_supplicant
实验室无线路由器未使用wpa,此步略去未做。
7.移植 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/
8.在开发板目标系统下
加入驱动
insmod /rt73/rt73.ko
查看网络设备名称
cat /proc/net/dev
配置无线网卡的IP
ifconfig rausb0 192.168.0.172 (rausb0 是我USB无线网卡的名称 )
配置无线网卡将访问的无线路由器名称和密码
iwconfig rausb0 essid Tenda key xxxxxxxxx
再次用iwconfig试一下,正常时可以看到相关的无线连接信息
在开发板上Ping 无线路由器网关的IP
ping 192.168.0.1&
有响应说明连接正常,局域网内的访问没有问题
如果让开发板ping通外网,需要进行下列操作:
设置默认网关
route add default gw 192.168.0.1
建立/etc/resolv.conf,加入
nameserver 192.168.0.1
nameserver 61.139.2.69 (换成当地的DNS服务器)
nameserver 202.98.96.68 (换成当地的DNS服务器)
试一下 ping www.baidu.com&
有响应说明外网连接正常,目标系统可以访问Internet了。