arm交叉编译安装wpa_supplicant
1、编译安装openssl
下载(我的版本是 openssl-1.1.1d )
https://www.openssl.org/
解压
root@znh-ubuntu:/disk/nettools# tar -zxf openssl-1.1.1d.tar.gz
root@znh-ubuntu:/disk/nettools# cd openssl-1.1.1d
配置(自行修改交叉编译器,其中 linux-armv4 为32位,64位使用 linux-aarch64):
./Configure linux-armv4 shared no-asm --prefix=$(pwd)/out CROSS_COMPILE=arm-linux-gnueabi-
实例:
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d# ./Configure linux-armv4 shared no-asm --prefix=$(pwd)/out CROSS_COMPILE=arm-linux-gnueabi-
Configuring OpenSSL version 1.1.1d (0x1010104fL) for linux-armv4
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL file first) ***
*** ***
**********************************************************************
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d#
编译、安装
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d# make -j4
......
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d# make install
记住当前 out 输出路径,待会需要用
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d/out# ls
bin include lib share ssl
root@znh-ubuntu:/disk/nettools/openssl-1.1.1d/out# pwd
/disk/nettools/openssl-1.1.1d/out
#将lib目录下的libcrypto和libssl库拷贝到开发板根文件系统中的/usr/lib目录下
2、编译安装libnl
安装环境
sudo apt-get -y install flex
sudo apt-get -y install bison
下载(我的版本是 libnl-3.2.23 )
https://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html
解压
root@znh-ubuntu:/disk/nettools# tar -zxf libnl-3.2.23.tar.gz
root@znh-ubuntu:/disk/nettools# cd libnl-3.2.23
配置(自行修改交叉编译器):
./configure --host=arm-linux-gnueabi --prefix=$(pwd)/out
实例:
root@znh-ubuntu:/disk/nettools/libnl-3.2.23# ./configure --host=arm-linux-gnueabi --prefix=$(pwd)/out
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
.......
编译、安装
root@znh-ubuntu:/disk/nettools/libnl-3.2.23# make -j4
......
root@znh-ubuntu:/disk/nettools/libnl-3.2.23# make install
记住当前 out 输出路径,待会也要用
root@znh-ubuntu:/disk/nettools/libnl-3.2.23/out# ls
etc include lib sbin share
root@znh-ubuntu:/disk/nettools/libnl-3.2.23/out# pwd
/disk/nettools/libnl-3.2.23/out
#正点原子:将lib目录下的所有文件拷贝到开发板根文件系统的/usr/lib目录下
3、编译安装wpa_supplicant
下载 (我的版本是 wpa_supplicant-2.7)
http://w1.fi/wpa_supplicant/
解压
root@znh-ubuntu:/disk/nettools# tar -zxf wpa_supplicant-2.7.tar.gz
root@znh-ubuntu:/disk/nettools# cd wpa_supplicant-2.7
将wpa_supplicant下的defconfig文件拷贝一份并重命名为.config,命令如下:
root@znh-ubuntu:/disk/nettools/wpa_supplicant-2.7# cd wpa_supplicant/
root@znh-ubuntu:/disk/nettools/wpa_supplicant-2.7# cp defconfig .config
编译 .config
root@znh-ubuntu:/disk/nettools/wpa_supplicant-2.7# vim .config
指定交叉编译器、openssl、libnl库和头文件路径,添加:
CC = arm-linux-gnueabi-gcc
#openssl库和头文件路径
CFLAGS += -I/disk/nettools/openssl-1.1.1d/out/include
LIBS += -L/disk/nettools/openssl-1.1.1d/out/lib -lssl -lcrypto
#libnl库和头文件路径
CFLAGS += -I/disk/nettools/libnl-3.2.23/out/include/libnl3
LIBS += -L/disk/nettools/libnl-3.2.23/out/lib
如图:
编译、安装前先执行export 指定pkgconfig的位置
export PKG_CONFIG_PATH=/disk/nettools/libnl-3.2.23/out/lib/pkgconfig
然后
root@znh-ubuntu:/disk/nettools/wpa_supplicant-2.7/wpa_supplicant# make -j4
编译完成后,我们需要的东西已经都有了
将其拷贝至开发板
将图中wpa_cli和wpa_supplicant这两个文件拷贝到开发板根文件系统的/usr/bin目录中