• 在linux上移植WAP_SUPPLICANT


    移植参考博客:

      https://blog.csdn.net/Lidroid/article/details/46738357

           http://www.cnblogs.com/wanhl/p/3374443.html

    使用参考博客:

      https://www.cnblogs.com/lidabo/p/5062204.html

    其他参考博客:

      http://www.cnblogs.com/zhangjiankun/p/4888956.html

    因参考其他博客时说不同的版本会出现不同的问题,这里使用的版本是:

      1、Wpa_Supplicant-0.7.3(一开始使用的是2.0,编译时会出现错误)  源码下载地址:http://hostap.epitest.fi/releases/ 

      2、libnl-3.2.25.tar.gz    源码下载地址:http://www.infradead.org/~tgr/libnl/
      3、openssl-1.0.2c      源码下载地址:https://www.openssl.org/source/old/1.0.2/

    因之前在上篇文章已经移植libnl,现在把openssl和Wpa_Supplicant移植到linux上,这里可能用到交叉编译的知识,我对交叉编译缺乏理解,在下面略说一下。

    一、交叉编译

      交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序。具体可以体现在,可以通过pc上的linux进行交叉编译生成linux-arm的可执行代码,达到跨平台编译的效果。

      我在移植过程中没有用到交叉编译,而是把压缩包放到主板中,用本地编译工具直接编译的。

      主板的编译工具为下图所示:

      

    二、移植openssl

      1)解压压缩包

    #tar xzf openssl-1.0.2c.tar.gz

      2)进入目录中,并执行./condif命令为编译做准备

    #cd openssl-1.0.2-stable-SNAP-20150630/
    #./config shared no-asm --prefix=/usr/local/openssl/install

      说明:

      ./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,因此-prefix=后面的路径可以根据具体情况修改,–prefix=$PWD表示安装在当前目录,no-asm表示在交叉编译过程中不使用汇编代码代码加速编译过程,shared指生成动态链接库。

      3) 修改Makefile,根据编译工具修改

    CC= arm-linux-gnueabihf
    AR= arm-linux-gnueabihf $(ARFLAGS) r
    RANLIB= arm-linux-gnueabihf-ranlib
    NM= arm-linux-gnueabihf
    MAKEDEPPROG= arm-linux-gnueabihf
    

      4)make

      5)make install

      成功后会在指定路径中看见以下目录

      

    三、移植wpa_supplicant

      (因用wpa_supplicant-2.0时编译时出现/usr/bin/ld: cannot find的错误,改为用Wpa_Supplicant-0.7.3)

      1)解压压缩包

    #tar xzf wpa_supplicant-0.7.3.tar.gz
    

      2)配置

    #cd wpa_supplicant-0.7.3/wpa_supplicant/
    #cp defconfig .config
    

      3)修改配置文件

    #vim .config
    

      往.config文件中添加如下内容

      

      说明:

      CC为所用到的编译工具,CFLAGS指向包含的头文件路径,LIBS指向所需的库

      4)编译安装(路径可任意修改)

    #make DESTDIR=/usr/local/wpa_s_073/install/ install
    

      成功后在安装路径中的/usr/local/wpa_s_073/install/usr/local/sbin/会看见三个文件wpa_supplicant、wpa_passphrase、wpa_cli

      

    四、使用wpa_supplicant工具

      1)把wpa_supplicant和wpa_cli复制到/bin/下。

      2)在/var/run/目录下创建wpa_supplicant文件夹

    #mkdir /var/run/wpa_supplicant
    

      3)在/etc/下创建文件wpa_supplicant.conf (也可不是/etc/,其他目录亦可),这是启用wpa_supplicant所需要的配置文件,可以通过修改配置文件达到不用输入密码登录的效果

    #touch  /etc/wpa_supplicant.conf
    

      4)在wpa_supplicant.conf中输入以下内容就可以最简单的使用wpa_supplicant

    ctrl_interface=/var/run/wpa_supplicant
    update_config=1 

      update_config=1使能配置更改。

      5)启动工具

      具体如何使用这里说得很清楚(https://www.cnblogs.com/lidabo/p/5062204.html)

    #wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &
    #wpa_cli -i wlan0 add
    >1
    #wpa_cli -i wlan0 set_network 0 ssid '"206"'
    >OK
    #wpa_cli -i wlan0 set_network 0 psk'"110110110"'
    >OK
    

      

    更新:解决wpa_supplicant2.0编译时出现cannot find -lnl的问题

    1、到http://www.infradead.org/~tgr/libnl/中下载libnl-1.x(这里用的版本是libnl-1.1.4)

    2、下载后解压,并把库的路径和头文件路径在wpa_supplicant的.config中设置好,之后编译成功

  • 相关阅读:
    nginx配置虚拟主机
    Nginx 目录结构
    Day 12.1模拟赛游记
    Day 11.25模拟赛游记
    Day 11.20模拟赛游记
    Day 11.19模拟赛游记
    Day 11.17模拟赛游记
    【题解报告】P3797 妖梦斩木棒
    8-28练习报告
    二分图匹配与树链剖分
  • 原文地址:https://www.cnblogs.com/qjswxd/p/9934035.html
Copyright © 2020-2023  润新知