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
嵌入式的
因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。
一、下载源码
http://hostap.epitest.fi/wpa_supplicant/
下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的补丁)
#tar xvfz wpa_supplicant-0.7.3.tar.gz
下载www.openssl.org/source/openssl-0.9.8e.tar.gz
#tar zxvf openssl-0.9.8e.tar.gz
二、编译openssl库
将wpa_supplicant中的补丁拷贝到openssl中
# cp wpa_supplicant-0.7.3/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-linux-gnu-gcc
AR= arm-linux-gnu-ar $(ARFLAGS) r
RANLIB= arm-linux-gnu-ranlib
INSTALLTOP=/usr/local/ssl
OPENSSLDIR=/usr/local/ssl
#make
#make install
在/usr/local/ssl目录下安装了ssl库
#ls /usr/local/ssl
#bin certs include lib man misc openssl.cnf private
后面编译wpa_supplicant要依赖openssl中的lib和include
三、编译wpa_supplicant
进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
#cp defconfig .config
#vim .config
CC= arm-linux-gnu-gcc -L/usr/local/ssl/lib/
CFLAGS += -I/usr/local/ssl/include/
LIBS += -L/usr/local/ssl/lib/
#make
经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。 wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli 来搜索、设置、和连接网络。
四、配置wpa_supplicant
(1)首先拷贝wpa_supplicant和wpa-psk-tkip.conf到开发板根文件系统中,并改名wpa-psk-tkip.conf为wpa_supplicant.conf
#cp wpa_supplicant /rootfs/filesystem/bin
#cp wpa_supplicant-0.7.3/wpa_supplicant/examples/wpa-psk-tkip.conf /rootfs/filesystem/etc/wpa_supplicant.conf
(2)修改wpa_supplicant.conf配置文件
#vim /rootfs/filesystem/etc/wpa_supplicant.conf
修改内容如下:
# WPA-PSK/TKIPctrl_interface=/var/run/wpa_supplicant
network={
ssid="gps"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="123456789"
}
五、测试
(1)在开发板终端:
#mkdir –p /var/run/wpa_supplicant
wpa_supplicant -Dwext -i ra0 -c /etc/wpa_supplicant.conf -dd & 连接无线路由,因为现大部分是wpa、wpa2加密的,所以使用wpa_supplicant 工具。