手头上刚好有块rt3070,正好移植到刚做好系统的mini2440上。linux-2.6.30的内核有内置RT的wifi驱动,但可惜没有RT3070的。首先找来rt3070光盘里配的驱动2011_0719_RT3070_RT3370_RT5370_RT5372_RT2070_Linux_STA_V2.5.0.3_DPO.bz2,tar jxf 解压源码包到linux内核的/drivers/net/wireless目录里。进入驱动的的目录里修改Makefile文件。
CHIPSET = 3070
PLATFORM = SMDK 前的#号去掉
找到feq ($(PLATFORM),SMDK)
填写你的linux内核路径LINUX_SRC与交叉编译路径CROSS_COMPILE。
接着进入os/linux/目录下修改config.mk文件
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
接着回到源码的根目录下进行make即可在os/linux目录里生成rt3070sta.ko文件。
把源码根目录里的RT2870STA.dat文件复制到目标板的etc/Wireless/RT2870STA
目录下。
这样RT3070的驱动就算做好了。
打开目标板,在终端里将.ko文件通过ftp方式放到随便一个目录里。接着在该目录里进行insmod rt3070sta.ko动态加载驱动。在我的系统里已经安装了wireless_tools跟wpa_supplicant,如果没有的话可以到网上查找下资料进行安装。使用iwlist
scan可以进行无线网络的搜索。如果提示iwlist找不到SH命令,可以找到iwlist可执行文件所在的目录,然后加入到PATH中。可以直接在目标板的/etc/profile文件中添加路径。例如export
PATH=$PATH:/sbin。
搜到wifi信息后,就需要用wpa_supplicant进行SSID与密码的设置。在开发板终端建立无线网卡运行目录:mkdir /var/run/wpa_supplicant创建/etc/wpa_supplicant文件,文件的内容如下,其中ssid为网络名,psk为密码
ctrl_interface=/var/run/wpa_supplicant
network={ ssid="xxx" scan_ssid=1 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE pairwise=TKIP CCMP group=CCMP TKIP WEP104 WEP40 psk="xxx" }
ifconfig ra0 192.168.1.111 up 设置无线网线的ip
route add default gw 192.168.1.1 添加网关
使用以上方法添加的ip只是临时的。关机后将不存在。dns在/etc/resolv.conf下进行设置。
设置好后执行wpa_supplicant -Dwext -i ra0 -c /etc/wpa_supplicant.conf -dd &进行wifi的连接。
参考http://blog.csdn.net/zhjixi495/article/details/7327919