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

 

 

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

保存,重启开发板.

posted on 2013-07-20 17:21  Nickleback  阅读(737)  评论(0编辑  收藏  举报