linux连接wpa wifi密码,Linux环境下使用WIFI模块:使用wpa_supplicant工具配置和连接WIFI-Go语言中文社区...

使用wpa_supplicant工具配置和连接WIFI

实验版本及下载地址

wpa_supplicant:wpa_supplicant-2.7

链接: [http://w1.fi/wpa_supplicant/]

安装依赖库openssl

配置编译选项./config shared no-asm --prefix=$PWD/tmp

./config表示根据后面的编译选项生成一Makefile文件,“shared”表示生成共享库;“no-asm”表示去掉汇编部分;“–prefix=”后面跟着生成的项目所存放的路径。

其他配置选项可以输入./Configure --help查看

4790466cda1cdaa277a4174cbb4938c0.png

修改Makefile

减号表示原来的代码,加号表示修改后的代码

- CROSS_COMPILE=

+ CROSS_COMPILE=arm-linux-

- CNF_CFLAGS=-pthread -m64

- CNF_CXXFLAGS=-std=c++11 -pthread -m64

+ CNF_CFLAGS=-pthread

+ CNF_CXXFLAGS=-std=c++11 -pthread

编译安装

执行make编译和make install安装指令

最后在当前目录的tmp目录下会生成项目文件

9332b00af5abe0be4a5d207538c8d087.png

复制库文件到跟文件系统lib目录下cp *so* -rf -d ~/work/nfs/wifi/lib/

要根据自己的具体情况复制库文件到对应的目录下

编译安装wpa_supplicant

创建一个.config文件

解压后,cd wpa_supplicant-2.0/wpa_supplicant/进入wpa_supplicant根文件

复制默认配置为.configcp defconfig .config

修改.config文件

减号表示原来的代码,加号表示修改后的代码

# Additional directories for cross-compilation on Linux host for mingw target

- #CFLAGS += -I/opt/mingw/mingw32/include/ddk

- #LIBS += -L/opt/mingw/mingw32/lib

- #CC=mingw32-gcc

# Additional directories for cross-compilation on Linux host for mingw target

+ CFLAGS += -I/home/zyl/work/project/wifi/openssl-1.1.1b/tmp/include

+ LIBS += -L/home/zyl/work/project/wifi/openssl-1.1.1b/tmp/lib

+ CC=arm-linux-gcc

CFLAGS后面填上一步安装好的openssl的include目录

LIBS后面填上一步安装好的openssl的lib目录

CC表示编译工具

3.编译安装

编译make

安装make DESTDIR=$PWD/tmp install

在后面加上DESTDIR=$PWD/tmp编译项表示安装到当前文件夹下的tmp目录

然后我们可以在子目录下看到wpa_cli,wpa_passphrase和wpa_supplicant三个文件

fb15c06626e9c086d910e39645c0a010.png

wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系

wpa_cli用来搜索、设置、和连接网络。

wpa_passphrase网络配置可以使用wpa_passphrase工具自动生成并添加到配置文件中。

把这三个文件复制到开发板的根文件/bin目录下就可以使用了

使用wpa_supplicant工具连接WIFI

创建配置文件

wpa_supplicant连接WIFI的时候会从配置文件中读取账号和密码,以及加密方式等, 所以我们再运行wpa_supplicant工具的时候要提前写好配置文件。

配置文件名称自定,但是要以 .conf 为后缀,并保存在 /etc/ 目录下,这边给出一个配置文件的例子。

ctrl_interface=/var/run/wpa_supplicant # 一个目录,用于wpa_supplicant和wpa_cli的socket通信

network={

ssid="dswei"#WIFI名称

proto=WPA # proto: list of accepted protocols, 可取WPA,RSN

# 如果没有设置,默认为: WPA RSN

key_mgmt=WPA-PSK # 认证方式

# 如果没有设置,默认为: WPA-PSK WPA-EAP

pairwise=TKIP # 如果没有设置,默认为: CCMP TKIP

group=TKIP # 如果没有设置,默认为: CCMP TKIP WEP104 WEP40

psk="a123654" # WIFI密码

}

在一般使用中我们只要设置ssid和psk,其他全部使用默认的,就可以连接上WIFI。

创建一个socket通信的目录mkdir -p /var/run/wpa_supplicant

测试和连接WIFIwpa_supplicant -B -c/etc/plaintext.conf -iwlan0

-B为后台运行,-c为配置文件目录,plaintext.conf为配置文件的名称,根据实际情况填写。其他配置选项可以看wpa_supplicant-2.7/wpa_supplicant/README,然后我们就可以看到开发板和手机连接上了。

7b877c9152b9cd87e068d5971a1b7f0e.png

b79850622bd6adc1c7799d2b184c2fb0.png

用wpa_cli -iwlan0 status可以查看网络连接状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值