一、准备工作
在移植hostapd和wpa_supplicant时需要先移植openssl和libnl,可以参考openssl移植到ARM Linux和libnl移植到ARM Linux。否则会出现如下图所示错误:
此图提示缺少openssl库文件。
此图提示缺少netlink库支持。
二、源码下载
下载最新版本的hostapd和wpa_supplicant源码:
sudo apt-get install git-core
git clone git://w1.fi/srv/git/hostap.git
三、移植hostapd
1.进入hostapd目录:
cd hostap/hostapd/
2.复制一份默认的配置文件
cp defconfig .config
3.编辑.config文件
找到CONFIG_DRIVER_NL80211=y一行,然后注释,如下所示:
#CONFIG_DRIVER_NL80211=y
4.修改Makefile
将
ifndef CC
CC=gcc
endif
改为:
#ifndef CC
CC=/home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
#endif
注:此处为自己开发环境中的交叉工具链路径
增加下面4项(需要添加在Makefile的前面):
CFLAGS += -I../../libnl-1.1.4/__install/include/
CFLAGS += -I../../openssl-1.0.2l/__install/include/
LIBS += -L../../libnl-1.1.4/__install/lib/
LIBS += -L../../openssl-1.0.2l/__install/lib/
注:这些路径是我的头文件和库的路径,需要根据自己实际情况来填写
5.编译
make
将编译好的hostapd
工具拷贝到开发板即可。
四、移植wpa_supplicant
1.进入wpa_supplicant目录:
cd hostap/wpa_supplicant/
2.复制一份默认的配置文件
cp defconfig .config
3.修改Makefile
将
ifndef CC
CC=gcc
endif
改为:
#ifndef CC
CC=/home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
#endif
注:此处为自己环境中的交叉工具链路劲
增加下面4项(需要添加在Makefile的前面):
CFLAGS += -I../../libnl-1.1.4/__install/include/
CFLAGS += -I../../openssl-1.0.2l/__install/include/
LIBS += -L../../libnl-1.1.4/__install/lib/
LIBS += -L../../openssl-1.0.2l/__install/lib/
注:这些路径是我的头文件和库的路劲,需要根据自己实际情况来填写
4.编译
make
将编译好的wpa_supplicant
工具拷贝到开发板即可。