• wpa_supplicant 移植及 linux 命令行模式配置无线上网


    本文涉及内容为linux 命令行模式配置无线上网 及 wpa_supplicant 移植到开发板的过程,仅供参考

    1.源码下载

      wpa_supplicant 源码下载地址 :http://hostap.epitest.fi/releases/   本人使用的是 wpa_supplicant-0.7.3.tar.gz

      openssl 源码下载地址:http://www.openssl.org/source/   本人使用的是openssl-1.0.0j.tar.gz

    2.openssl  交叉编译

      在服务器home目录下,创建连个文件wpa_source , wpa_install ,两个目录 mkdir wpa_source ,mkdir wpa_install .

      创建完成后,将两份源码上传到wpa_source目录中,分别解压 tar xvf xxx (源码名称)。

      解压完成后,进入openssl-1.0.0j文件中。执行命令:

    ./config no-asm shared --prefix=/home/wpa_install

      说明: no-asm  在交叉编译过程中不使用汇编代码代码加速编译过程。

          shared  生成动态链接库。

          --prefix      指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录。 我们将其安装在/home/wpa_install 目录下。

      * 此处注意下,本人在编译openssl时,如果不加no-asm shared ,在后面make中会出错。

      修改Makefile 文件,具体修改如下,主要修改有三处:

    CC= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc
    。。。省略
    AR= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ar $(ARFLAGS) r
    RANLIB= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ranlib

      修改的几处换成你使用的交叉编译工具即可。

      把所有的 –march=pentium 去掉(三处)。否则编译的时候会出错

      然后执行make , make install。中间如果出错,请baidu or google。我在编译openssl时,未出现问题。

       具体openssl交叉编译可以参考 :http://blog.csdn.net/zqj6893/article/details/8778237  ,讲的比较详细

    3.编译wpa_supplicant

      进入wpa_supplicant.0.7.3/wpa_supplicant/ 目录,执行:

    cp defconfig .config
    
    vi .config

      修改如下:

    #### sveasoft (e.g., for Linksys WRT54G) ######################################
    #CC=mipsel-uclibc-gcc
    CC=mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc -L /home/wpa_install/lib/
    #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
    #CFLAGS += -Os
    CFLAGS += -I /home/wpa_install/include/
    #CPPFLAGS += -I../src/include -I../../src/router/openssl/include
    #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
    LIBS += -L /home/wpa_install/lib/

      * ,# 开头的为文件本身的代码,我们需要修改CC,CFLAGS,LIBS三处内容。 分别指向你包含的include和lib文件夹

      修改完成后,保存并退出,执行 make 命令。在当前目录下会生成wpa_supplicant,wpa_cli 两个可执行文件,这个就可以放在开发板中进行运用啦!

      * 几句废话:在编译wpa_supplicant时,最开始使用的是最新版本,wpa_supplicant-2.0的一个版本,编译好多次没有编译过去,都是出现缺少这个或那个连接的问题,较典型的就是 can't find -lnl .后来换成0.7.3的版本后就没有出现过该问题。只是暂时的把这个绕过去了吧。移植后的功能也都满足我使用的。所以就用0.7.3的版本了。

      参考连接:http://blog.csdn.net/ti_tantbx/article/details/7037741

    4.在开发板实际使用。

      此处我只说下wpa_supplicant 配置上网的用法。wpa_cli适合个人使用配置,wpa_supplicant 使用于后台操作型的配置。

      注:默认无线驱动已加载,此处略。

      (1)、在使用前,将wpa_supplicant 复制的/bin/目录下。

      (2)、在/var/run/目录下创建wpa_supplicant文件夹,mkdir /var/run/wpa_supplicant

      (3)、在/etc/下创建文件wpa_supplicant.conf. (也可不是/etc/,其他目录亦可)

          此处的wpa_supplicant.conf 文件内容有几种。

          1]、无密码连接

          

    ctrl_interface=/var/run/wpa_supplicant
          
    network{    
            ssid="你要连接的SSID"
        key_mgmt=NONE
    }

          2]、WEP连接

          

    ctrl_interface=/var/run/wpa_supplicant
    
    network{
        ssid="你要连接的SSID"
                key_mgmt=NONE
                wep_key0="你的密码"
             wep_key1=0102030405
             wep_tx_keyidx=0
    }

          3]、WPA-PSK/WPA2-PSK,TKIP/AES 连接

          

    # WPA-PSK/TKIP
    
    ctrl_interface=/var/run/wpa_supplicant
    
    network={
            ssid="你要连接的SSID"
            key_mgmt=WPA-PSK
            proto=WPA    //RSN  如果WPA2连接不成功时,可以设置为RSN看看
            pairwise=TKIP    //CCMP 。如果为AES时,可以设置为CCMP TKIP看看
            group=TKIP    //同上
            psk="SSID的密码"
    } 

        加密文件配置参考连接:http://www.360doc.com/content/12/0709/15/9424702_223192125.shtml

                  http://evan7s.blog.163.com/blog/static/108955356201132494921476/ 

        这两篇文章的提示作用很大的,建议看看    

        按照无线连接方式配置好wpa_supplicant.conf后,执行命令

    wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf

        注释:-B 是指后台运行,如果想查看连接信息,可以把—B去掉。

           -i wlan0 ,-i是接口名称,如果你的无线网卡不是wlan0,(如ra0),那么随之更改接口名称。

           -d ,指增加debug信息。

           -c , 后面跟wpa_supplicant配置文件的路径

        执行之后就连接到你想要连接的无线SSID上啦。连接上之后,如果想要wlan0 动态获取地址:输入

    dhclient wlan0

        如果不用DHCP,手动配置地址哎

    ifconfig wlan0 192.168.x.x netmask 255.255.255.0

        

        

        wpa_cli 配置无线网络可以参考:http://blog.163.com/wxiongn@126/blog/static/11788203820102262748358/

        OK, 这就是我移植wpa_supplicant 及配置无线上网的过程。希望对大家有帮助

        转载谢谢注明。

  • 相关阅读:
    自动化测试===Httprunner测试框架介绍
    java===java基础学习(6)---流程控制,for,if,switch,continue,break
    java===java基础学习(5)---文件读取,写入操作
    电子书免费下载地址整理
    java===java基础学习(4)---字符串操作
    java===字符串常用API介绍(转)
    java===java基础学习(3)---数据类型转换,运算符级别,枚举类型
    java===java基础学习(2)---运算符,三元操作符,数学函数
    java===java基础学习(1)---数据类型,运算,变量,常量
    爬虫===登陆CSDN的方法
  • 原文地址:https://www.cnblogs.com/wanhl/p/3374443.html
Copyright © 2020-2023  润新知