目录
1、前言
在linux物理机(ubuntu22.04, x86_64)下载并编译出能够运行在板卡(arm)上的hostapd。由于两者的架构不同,所以需要进行交叉编译,使用的交叉编译器是arm-linux-gnueabihf-gcc。
2、源码下载
3、交叉编译
编译hostapd前需要先编译openssl和libnl,openssl和libnl的交叉编译参见文章:
3.1 解压并进入解压目录
tar -zxvf hostapd-2.10.tar.gz
cd hostapd-2.10/hostapd/
3.2 配置构建环境
cp defconfig .config
vim .config
#作如下修改:
#openssl lib and include
CFLAGS += -I/home/wjj/projects/wifi/tools/openssl/arm/openssl-1.0.2u/install/include
LIBS += -L/home/wjj/projects/wifi/tools/openssl/arm/openssl-1.0.2u/install/lib
#libnl lib and include
CFLAGS += -I/home/wjj/projects/wifi/tools/libnl/arm/libnl-3.9.0/install/include/libnl3
CFLAGS += -I/home/wjj/projects/wifi/tools/libnl/arm/libnl-3.9.0/include/linux-private
LIBS += -L/home/wjj/projects/wifi/tools/libnl/arm/libnl-3.9.0/install/lib
#cross-compilation
CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
3.3 编译
sudo make
忽略提示找不到libnl-3.0,能够生成hostapd和hostapd_cli即可。