平台介绍:主机端—ubuntu11.04
开发板内核—linux-2.6.30
Hostapd版本—0.8-snapshot
移植过程:
在移植hostapd之前需要先移植openssl和libnl两个库,经过尝试,发现openssl-0.9.8g和libnl-1.1两个版本比较好编译通过,于是选择这两个版本。关于他们的移植在本文中不再介绍,因为有专门关于它们移植过程的文章。
下载并解压hostapd-0.8-snapshot源代码,进入其目录。
root@xtx:~/hostapd-0.8-snapshot/hostapd# pwd
/root/hostapd-0.8-snapshot/hostapd
(1) 进入hostapd目录修改Makefile文件中的CC
把CC=gcc修改为交叉编译器CC=arm-linux-gcc
(2) 把defconfig拷贝为 .config
cp defconfig .config
修改.config文件
把下面一段
CONFIG_DRIVER_HOSTAP=y #CONFIG_DRIVER_NL80211=y #LIBNL=/usr/src/libnl #CFLAGS += -I$(LIBNL)/include #LIBS += -L$(LIBNL)/lib |
修改为
#CONFIG_DRIVER_HOSTAP=y CONFIG_DRIVER_NL80211=y //我的hostapd使用这个驱动 LIBNL=/opt/arm/lib/libnl //移植的libnl库所在位置 CFLAGS += -I$(LIBNL)/include LIBS += -L$(LIBNL)/lib LIBSSL=/opt/arm/lib/ssl //移植的openssl库所在位置 CFLAGS += -I$(LIBSSL)/include LIBS += -L$(LIBSSL)/lib |
为文件src\crypto\tls_openssl.c添加头文件
#include <openssl/evp.h> //openssl里面的头文件
为文件src\drivers\driver_nl80211.c添加头文件
#include <linux/genetlink.h>
修改完毕,现在开始编译
回到hostapd目录下运行make目录执行makefile文件,编译完毕后在当前目录为生成hostapd和hostapd_cli两个可执行文件,这个就是我们需要的,拷贝到板子上即可,当然别忘了把openssl和libnl拷贝到板子上。
root@xtx:~/hostapd-0.8-snapshot/hostapd# file hostapd hostapd_cli
hostapd: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
hostapd_cli: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped