STA模式 - wpa_supplicant安装及使用

wpa_supplicant是一个开源软件项目,它实现了WIFI STA模式对无线网络进行管理和控制的功能。它是一个连接、配置WIFI的工具,主要包含wpa_supplicant与wpa_cli两个程序。

准备第三方软件如下:

下载链接:wpa_supplicant 软件包免费下载

一、wpa_supplicant安装

说明:wpa_supplicant 依赖于 openssl 和 libnl。

1、安装openssl

1)解压

$ tar -xvzf openssl-1.1.1d.tar.gz

$ cd openssl-1.1.1d

2)配置

$ mkdir /home/dongao/tools/openssl                 //新建目录

$ ./config no-asm shared --prefix=/home/dongao/tools/openssl CROSS_COMPILE=aarch64-linux-gnu-                 //配置

--prefix :用于指定编译结果存放目录,设置为刚刚创建的目录。

$ vi Makefile                //去掉里面的-m64(在FLAG中传递的-m64命令)

3)执行安装

$ make

$ make install

4)将 lib 目录下的 libcrypto 和 libssl 库拷贝到ARM板根文件系统的/usr/lib 目录

$ sudo cp libcrypto.so* ~/share/wifi/lib/openssl/

$ sudo cp libssl.so* ~/share/wifi/lib/openssl/

2、安装libnl

1)安装依赖环境

$ sudo apt-get install flex

$ sudo apt-get install bison

2)解压

$ tar -xzf libnl-3.2.23.tar.gz

$ cd libnl-3.2.23

3)配置

$ mkdir /home/dongao/tools/libnl                 //新建安装目录

$ ./configure --host=aarch64-linux-gnu --prefix=/home/dongao/tools/libnl //配置

--host :用于指定交叉编译器的前缀,这里设置为“aarch64-linux-gnu”;

--prefix :用于指定编译结果存放目录,设置为刚刚创建的 libnl 文件夹。

4)安装

$ make                        //编译

$ make install              //安装

5)将 lib 目录下的库文件拷贝到ARM板根文件系统的/usr/lib 目录

$ cd /home/dongao/tools/libnl

$ sudo cp lib/* ~/share/wifi/lib/libnl_lib/ -rf

3、安装 wpa_supplicant

1)解压

$ tar -xzf wpa_supplicant-2.7.tar.gz

$ cd wpa_supplicant-2.7/wpa_supplicant/

2)配置

$ cp defconfig .config

$ vi .config

3)编译

$ export PKG_CONFIG_PATH=/home/dongao/tools/libnl/lib/pkgconfig:$PKG_CONFIG_PATH                        //指定 libnl 库 pkgconfig 包位置

$ make                        //编译

编译成功文件如下:

 将 wpa_cli 和 wpa_supplicant 拷贝到ARM板。

$ wpa_supplicant -v //查看版本

二、wpa_supplicant使用

准备工作:需要wifi驱动已加载成功

1、创建 wpa_supplicant.conf 配置文件

$ vi /etc/wpa_supplicant.conf         //etc 目录下创建一个名为 “wpa_supplicant.conf” 的配置文件

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
        scan_ssid=1
        ssid="xd iphone"
        key_mgmt=WPA-PSK
        psk="8888asdf"  
}

$ mkdir /var/run/wpa_supplicant -p                //wpa_supplicant 工具要用到此目录

2、连接wifi

$ wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf -B        //连接wifi

-D:驱动程序名称(可以是多个驱动程序:nl80211,wext)

-i:接口名称(mlan0为STA网卡)

-c:配置文件

-B:在后台运行守护进程

3、查看 mlan0 网卡状态

$ wpa_cli -i mlan0 status //查看连接状态,有如下信息表示连接成功

4、连上wifi后,动态获取ip地址

$ udhcpc -i mlan0                //DHCP自动获取ip

遇到问题:为什么DHCP自动获取ip后 mlan0 没有IP地址?

原因:arm 主板用 udhcpc 获取了ip后,并没有直接设置在mlan0网卡上。因为没有通过脚本去设置这个IP(没有 /usr/share/udhcpc/default.script 脚本)

$ udhcpc -h

 解决方法:$ udhcpc -i mlan0 -s /etc/udhcpc.script ,或将 /etc/udhcpc.script 拷贝为 /usr/share/udhcpc/default.script,重新执行 udhcpc -i mlan0。

之后mlan0就有ip地址了。

5、测试

$ ping -I 172.20.10.8 www.baidu.com        //指定mlan0网卡ping外网

 测试OK

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值