您的位置:首页 > 其它

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

2013-02-05 08:59 330 查看
6410移植RT3070无线模块,WPA加密方式,并开机自动加载

一. wireless-tools安装

wireless-tools是一组无线网络扫描器及监控工具,可以用于监控、分析、以及测试WiFi网络,支持几乎所有的无线网卡和驱动,它可以支持WEP的AP,但它不能连接到那些只支持WPA的AP。连接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、拷贝

将生成的工具:iwlist、iwconfig、iwpriv等拷贝到目标板上,路径为:/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.ko与zImage版本要一致

三.基于6410的wpa_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中的lib和include

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_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

D)、配置wpa_supplicant

(1)首先拷贝wpa_supplicant和wpa-psk-tkip.conf到开发板根文件系统中,并改名wpa-psk-tkip.conf为wpa_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

保存,重启开发板.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: