wpa-supplicant移植
Posted 浩瀚之水_csdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpa-supplicant移植相关的知识,希望对你有一定的参考价值。
一、libnl-3.2.25 交叉编译
libnl-3.2.25 下载地址:
http://www.infradead.org/~tgr/libnl/
创建安装目录:
libnl-3.2.25$ mkdir __install
编译脚本build.sh:
libnl-3.2.25$ cat build.sh
./configure CC=arm-linux-gnueabihf-gcc \\
--prefix=$(pwd)/__install \\
--host=arm-linux-gnueabihf \\
CFLAGS=-I/usr/include/libnl3
make && make install
二、openssl-1.0.2r交叉编译
openssl source code 下载:
https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz
创建安装目录:
openssl-1.0.2r$ mkdir __install
生成Makefile:
./config no-asm shared --prefix=$(pwd)/__install
编辑Makefile:
CROSS_COMPILE= arm-linux-gnueabihf-
CC= $(CROSS_COMPILE)gcc
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN - O3 -Wall
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNB OUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TR ACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
PEX_LIBS=
EX_LIBS= -ldl
EXE_EXT=
ARFLAGS=
AR= $(CROSS_COMPILE)ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)ranlib
RC= $(CROSS_COMPILE)windres
NM= $(CROSS_COMPILE)nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG=makedepend
LIBDIR=lib
SHARED_LDFLAGS=
NOTE:去掉CFLAG参数中的 -m64 ,SHARED_LDFLAGS参数中的 -m64
编译安装:
make && make install
三、交叉编译wpa_supplicant
源码下载:http://w1.fi/wpa_supplicant/
下载最新版本:http://w1.fi/releases/wpa_supplicant-2.9.tar.gz
1)创建一个.config文件
cd /root/wifi/
tar -xvf wpa_supplicant-2.9.tar.gz
cd wpa_supplicant-2.9/wpa_supplicant
cp defconfig .config
2) 修改.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/root/wifi/openssl-OpenSSL_1_1_1b/build/include
LIBS += -L/root/wifi/openssl-OpenSSL_1_1_1b/build/lib
CFLAGS += -I/root/wifi/libnl-3.2.23/build/include
LIBS += -L/root/wifi/libnl-3.2.23/build/lib
CC=arm-linux-gcc
CFLAGS为编译安装好的openssl的include目录 和 libnl的include目录
LIBS为编译安装好的openssl的lib目录 和 libnl的include目录
CC为交叉编译工具
3)添加环境变量
export PKG_CONFIG_PATH=/root/wifi/libnl-3.2.23/build/lib/pkgconfig:$PKG_CONFIG_PATH
4)编译
执行make后会出现以下错误:
dbus/dbus_dict_helpers.c:10:23: warning: dbus/dbus.h: No such file or directory
In file included from dbus/dbus_dict_helpers.c:14:
修改.config文件,注释掉以下两个选项:
#CONFIG_CTRL_IFACE_DBUS_NEW=y
#CONFIG_CTRL_IFACE_DBUS_INTRO=y
四:netlink/genl/genl.h: 没有此类文件或者目录
我正在交叉编译hostapd的openwrt 。 我正在 fatal error: netlink/genl/genl.h: No such file or directory 我已经安装了 libnl-3.2.24. 如果我直接编译( 不交叉编译),那么hostapd就会正确编译而没有任何错误。
回答 1:
你可以使用以下命令搜索正确的软件包:
apt-file search /netlink/genl/genl.h
在我的示例中,输出为:
libnl-3-dev:/usr/include/libnl3/netlink/genl/genl. h
这意味着,我必须安装软件包 libnl-3-dev:
sudo apt-get install libnl-3-dev
你需要 libnl-genl-3-dev
sudo apt-get install libnl-genl-3-dev
然后打开 config file:
nano hostap/hostapd/.config
取消注释该行:
CONFIG_LIBNL32=y
再次启动 make
回答 2:
头文件 …/netlink/genl/genl.h 在 libnl-3-dev 包中找到
使用以下方法安装:
sudo apt-get install libnl-3-dev
以上是关于wpa-supplicant移植的主要内容,如果未能解决你的问题,请参考以下文章
text Raspberry Pi 3 wpa-supplicant文件