hostapd用来调试无线网卡AP,开发板没有相关模块,因此做移植和记录,之前移植过1.0版本发现不支持80211.ac标准,因此重新移植最新的2.5版本,hostapd需要openssl和libnl库的依赖,因此需要准备好这两样东西。
1、下载相关东西
openssl-1.0.2d.tar.gz http://distfiles.macports.org/openssl/?C=M;O=A
libnl-3.2.25.tar.gz http://www.infradead.org/~tgr/libnl/files/
hostapd-2.5.tar.gz http://w1.fi/releases/
2、编译libnl-3.2.25
1) 解压文件 tar zxvf libnl-3.2.25.tar.gz,然后进入libnl-3.2.25,创建文件夹mkdir install
2)进入解压目录,配置文件:./configure --host=arm-fsl-linux-gnueabi --prefix=/work/pul/libnl-3.2.25/install/,需要配置--host不然后面编译可能会报错;
3) make CC=arm-fsl-linux-gnueabi-gcc
4) make instal CC=arm-fsl-linux-gnueabi-gcc
如果上述编译报错,可能缺少东西。安装apt-get install bison 和 apt-get install flex,编译完后再Install目录下生成lib和include是我们需要的。
3、编译openssl-1.0.2d
1)解压文件 tar zxvf openssl-1.0.2d.tar.gz,然后进入openssl-1.0.2d.tar.gz,创建文件夹mkdir install
2)进入目录openssl-1.0.2d,配置文件./Configure shared no-asm --prefix=$PWD/stall linux-elf
3) make CC=arm-fsl-linux-gnueabi-gcc
4) make instal CC=arm-fsl-linux-gnueabi-gcc
编译完后在install目录下生成的ssl文件夹是需要的东西。
4、编译hostapd
1)进入hostapd目录配置文件:cp defconfig .config
2)根据需求对.config文件进行修改,如增加80211ac等模块;
3)修改makefile,增加以下内容:
CC=arm-fsl-linux-gnueabi-gcc
CFLAGS += -I/work/pul/openssl-1.0.2d/install/include
CFLAGS += -I/work/pul/libnl-3.2.25/install/include
LIBS += -L/work/pul/openssl-1.0.2d/install/lib
4)make clean,然后make,在目录下生成hostapd hostapd_cli拷贝到开发板,通过命令hostapd -v来检测发现不能运行,提示缺少库文件,这些库文件在libnl的install/lib目录和openssl的install/lib目录下,然后根据提示进行拷贝到开发板的/lib/目录下即可,最后如下显示即可:
附录:IEEEE802.11介绍:
https://blog.csdn.net/cuijiyue/article/details/51319085
https://www.cnblogs.com/darkpig/p/5863735.html
https://www.zhihu.com/question/20404191