1.从官方下载原驱动程序
http://www.ralinktech.com/en/04_support/license.php?sn=5016
然后把驱动代码放到/home/tango/code/linux-2.6.32.2/drivers/net/wireless/目录下
其中/home/tango/code/linux-2.6.32.2 是 linux2.6.32.2内核源码路径。
2.在rt3070驱动程序根目录的Makefile文件的修改
2.1.定义芯片类型及头文件包含路径以及选择硬件运行平台
CHIPSET = 3070
C_INCLUDE_PATH ?= $(PWD)/include
PLATFORM = SMDK
2.2修改LINUX_SRC及CROSS_COMPILE参数
ifeq ($(PLATFORM),SMDK)
#LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
#CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
#以下设置根据自己的放置位置及编译具体路径设置
LINUX_SRC = /home/tango/code/linux-2.6.32.2
CROSS_COMPILE = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-
endif
3.在os/linux/config.mk 文件中
定义
CHIPSET = 3070
CROSS_COMPILE ?=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-
修改以下两个选项
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
然后再make即可生成rt3070sta.ko文件。
把RT2870STA.dat文件复制到etc/Wireless/RT2870STA 目录下
若编译中出现
/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux/../../chips/rtmp_chip.c:470: error: implicit declaration of function 'RT33xx_Init'
make[2]: *** [/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux/../../chips/rtmp_chip.o] Error 1
make[1]: *** [_module_/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux] Error 2
make[1]: Leaving directory `/home/arm443/code/linux-2.6.32.2'
make: *** [LINUX] Error 2
错误,则把/chips/rtmp_chip.c中的470行代码给屏蔽掉,然后再编译。
iwlist scan 搜索网络
ifconfig eth0 down 关闭有线网络
insmod rt3070sta.ko 动态加载rt3070驱动
ifconfig ra0 192.168.1.231 up 设置无线网线的ip
route add default gw 192.168.1.1 添加网关
wpa_supplicant -Dwext -i ra0 -c /etc/wpa_supplicant.conf -dd & 连接无线路由,因为现大部分是wpa、wpa2加密的,所以使用wpa_supplicant 工具。
在开发板终端建立无线网卡运行目录:
mkdir –p /var/run/wpa_supplicant
创建/etc/wpa_supplicant文件,文件的内容如下,其中ssid为网络名,psk为密码
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="aaa 001"
scan_ssid=1
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="aaa2007"
}
另:若驱动移植好后,用ifconfig -a可以看到这时多了一组ra0设备,它就是无线网卡的相关信息。
如果看到的是wlan0而不是ra0 的话,可能是在与rt2800驱动冲突导致的,在linux内核中让以下几项不编译进内核中。
--- Ralink driver support │ │
│ │ < > Ralink rt2500 (USB) support │ │
│ │ < > Ralink rt2501/rt73 (USB) support │ │
│ │ < > Ralink rt2800 (USB) support │ │
│ │
参考网站:
http://blog.csdn.net/armeasy/article/details/6252389
http://www.gentoo.org/doc/zh_cn/handbook/hb-net-wireless.xml