openssl:openssl-1.1.1b
链接: [https://www.openssl.org/source/]
wpa_supplicant:wpa_supplicant-2.7
链接: [http://w1.fi/wpa_supplicant/]
./config shared no-asm --prefix=$PWD/tmp
./config表示根据后面的编译选项生成一Makefile文件,“shared”表示生成共享库;“no-asm”表示去掉汇编部分;“–prefix=”后面跟着生成的项目所存放的路径。
其他配置选项可以输入./Configure --help
查看
减号表示原来的代码,加号表示修改后的代码
- 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目录下会生成项目文件
cp *so* -rf -d ~/work/nfs/wifi/lib/
要根据自己的具体情况复制库文件到对应的目录下
解压后,cd wpa_supplicant-2.0/wpa_supplicant/
进入wpa_supplicant根文件
复制默认配置为.configcp defconfig .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三个文件
wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系
wpa_cli用来搜索、设置、和连接网络。
wpa_passphrase网络配置可以使用wpa_passphrase工具自动生成并添加到配置文件中。
把这三个文件复制到开发板的根文件/bin目录下就可以使用了
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。
mkdir -p /var/run/wpa_supplicant
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
-B为后台运行,-c为配置文件目录,plaintext.conf为配置文件的名称,根据实际情况填写。其他配置选项可以看wpa_supplicant-2.7/wpa_supplicant/README,然后我们就可以看到开发板和手机连接上了。
用wpa_cli -iwlan0 status
可以查看网络连接状态