zoukankan      html  css  js  c++  java
  • 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

    保存,重启开发板.

  • 相关阅读:
    MVC系列14-后台我的文章页
    MVC系列-13.前台文章显示页
    MVC系列-12.项目的重新规划
    MVC系列-11.两表联合-发表文章
    MVC系列-10.用户验证-导航条改造
    百思不得姐第4天:文本框占位文字颜色
    swift学习:自定义Log
    swift学习第十六天:懒加载和tableView
    swift学习第十五天:闭包
    swift学习第十四天:属性监听器
  • 原文地址:https://www.cnblogs.com/nickleback/p/3202652.html
Copyright © 2011-2022 走看看