6410移植RT3070无线模块,WPA加密方式,并开机自动加载

6410移植RT3070无线模块,WPA加密方式,并开机自动加载

. wireless-tools安装
wireless-tools是一组无线网络扫描器及监控工具,可以用于监控、分析、以及测试WiFi网络,支持几乎所有的无线网卡和驱动,它可以支持WEPAP,但它不能连接到那些只支持WPAAP。连接AP需要使用它所编译出来的工具。

1、资源下载

下载wireless_tools.29.tar.gz

2、解压

# tar zxvf wireless_tools.29.tar.gz

#cd wireless_tools.29

3、修改Makefile

## Compiler to use (modify this for cross compile).

CC = arm-linux-gcc

4、编译

#make

5、拷贝

将生成的工具:iwlistiwconfigiwpriv等拷贝到目标板上,路径为:/root/app/bin/wifitools/

iwlist scanning可搜索无线信号

二.rt3070驱动移植

1:网上下载雷凌最新的USB驱动,(http://download.csdn.net/detail/colwer/4515005)此驱动亲测可编译通过,其它的版本下了不少,都没有编译通过.

2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2

2.拷备到Linux目录并解压:

tar jxf 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2

3.进入RT3070_Linux_STA目录,看到有一个README_STA_usb文件,里面介绍了如何加载该驱动:

vi Makefile

ifeq ($(CHIPSET),)
CHIPSET = 3070
endif

#PLATFORM: Target platform
PLATFORM = SMDK

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /forlinx/linux-3.0.1
CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
endif

芯片型号要选择对应的CHIPSET = 3070

PLATFORM = SMDK选择什么不重要,关键是对应后面的ifeq ($(PLATFORM),SMDK) 里面的linux内核的路径和交叉编译环境要填正确

第四步:按照第三步README_STA_usb给出的提示,修改config.mk文件,这里也只给出修改部分:

# vi os/linux/config.mk

# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

2.2 编译源码


make也可以不改芯片型号用命令(make CHIPSET=3070)

,2011_0719_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux目录下生成了rt3070sta.ko,也就是RT3070的驱动了

3.1 拷贝驱动到目标系统
RT2870STA.dat拷贝到/etc/Wireless/RT2870STA目录下
rt3070sta.ko拷贝到/xxx/ 目录下 xxx自定

注意,如果重新编译过linux内核,zImage文件也要更换,rt3070sta.kozImage版本要一致

.基于6410wpa_supplicant移植

因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。

A)、下载源码

下载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

B)、编译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中的libinclude

C)、编译wpa_supplicant
进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
#cp defconfig .config
#vim .config
CC=arm-linux-gcc -L/usr/local/ssl/lib/
#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
CFLAGS += -I/usr/local/ssl/include
#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
LIBS += -L/usr/local/ssl/lib
#make

经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicantwpa_cliwpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

D)、配置wpa_supplicant
(1)首先拷贝wpa_supplicantwpa-psk-tkip.conf到开发板根文件系统中,并改名wpa-psk-tkip.confwpa_supplicant.conf

#cp wpa_supplicant /bin
#cp wpa_supplicant-0.7.3/wpa_supplicant/examples/wpa-psk-tkip.conf /etc/wpa_supplicant.conf

(2)修改wpa_supplicant.conf配置文件
#vim /etc/wpa_supplicant.conf

修改内容如下:

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="FS2410" //填写无线网络的的用户名
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="1234567890" //填写密码
}

ifconfig -a查看是否创建ra0这个节点。
分配IP地址:
#ifconfig ra0 192.168.1.5 //也可以动态分配 dhclient -i ra0 不过你得移植dhcp

(4)创建连接暗文密码(PSK密码),通过明码转换
#cd /etc
#wpa_passphrase FS2410 1234567890 >> wpa_supplicant.conf
此时将在wpa_supplicant.conf文件中生成:
network={
ssid="FS2410"
#psk="1234567890"
psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba
}

E)然后修改wpa_supplicant.conf配置文件,把 psk="1234567890" 这一行明文密码改成生成的暗文密码,即:
psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba
其它生成的多余信息删除,最后wpa_supplicant.conf文件如下:

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="FS2410" //填写无线网络的的用户名
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba
}

(以上是网上参考的,我的实际配置中,路由器是wpa加密,但我的密码没有用暗文密码,也成功了)

以下是我的wpa_support.conf

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={

ssid="tp_linik"

scan_ssid=1

key_mgmt=WPA-PSK WPA-EAP

proto=WPA

pairwise=TKIP CCMP

group=TKIP CCMP

priority=1

#psk="ed51bdd318173ff2ae741862e2ec41dd1137681cf6d6e6e2cc15bb1d6c78bb32"

psk="0123456789"

}

6410 DHCP配置无线:

root@6410: /ifconfig ra0 up

root@6410: /wpa_supplicant -ira0 -c/etc/wpa_supplicant.conf -B

root@6410: /udhcpc -i ra0

6410开发板linux3.0.1开机自动加载rt3070无线模块:

vi /etc/init.d/rcS(确保你的rcS有可写权限)

末尾添加:

cd /etc/Wireless/

insmod rt3070sta.ko

ifconfig ra0 up

ifconfig eth0 down

wpa_supplicant -ira0 -c/etc/wpa_supplicant.conf -B

udhcpc -i ra0

保存,重启开发板.

你可能感兴趣的:(6410移植RT3070无线模块,WPA加密方式,并开机自动加载)