移植wifi工具之前,大家可以看下http://blog.csdn.net/lidroid/article/details/46723099这篇。
这里所谓的wifi的sta工具其实就是对应无线的认证和加密方式,有下面两个工具来实现:
1、iw工具:iw工具是iwconfig的替代者,iw可以用于2种“认证和加密”,分别是open(开放系统认证+有效等线加密)、wep方式(共享秘钥认证+有效等线加密)。
2、wap_supplicant工具:可以用于四种认证方式,分别是open、wep、wpa、wpa2无线加密方式。
其中上面两种工具的使用可以在https://wireless.wiki.kernel.org/welcome查看。下面我们来讲讲把其移植到a9开发板的过程。
环境介绍:
宿主机 :redhat5.3
交叉编译器 :arm-linux-gcc(4.5.1)
目标板 :tiny4412开发板
移植iw库需要libnl库的支持,所以必须先一直libnl库
在http://www.infradead.org/~tgr/libnl/files/可以下载到各个版本的libnl库,这里选择“libnl-3.2.24.tar.gz”
[root@localhost libnl-3.2.24]# ./configure --host=arm-linux --prefix=$PWD/tmp
[root@localhost libnl-3.2.24]# make
Making all in include
make[1]: Entering directory `/work/wifi/sta/libnl-3.2.24/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/work/wifi/sta/libnl-3.2.24/include'
Making all in lib
make[1]: Entering directory `/work/wifi/sta/libnl-3.2.24/lib'
GEN route/cls/ematch_grammar.c
flex: unknown flag '-'. For usage, try
flex --help
make[1]: *** [route/cls/ematch_grammar.c] 错误 1
make[1]: Leaving directory `/work/wifi/sta/libnl-3.2.24/lib'make: *** [all-recursive] 错误 1
Making all in includemake[1]: Entering directory `/work/wifi/sta/libnl-3.2.24/include'make[1]: Nothing to be done for `all'.make[1]: Leaving directory `/work/wifi/sta/libnl-3.2.24/include'Making all in libmake[1]: Entering directory `/work/wifi/sta/libnl-3.2.24/lib'GEN route/cls/ematch_grammar.cGEN route/cls/ematch_syntax.croute/cls/ematch_syntax.y:31.9-16: syntax error, unexpected identifier, expecting stringmake[1]: *** [route/cls/ematch_syntax.c] 错误 1make[1]: Leaving directory `/work/wifi/sta/libnl-3.2.24/lib'make: *** [all-recursive] 错误 1[root@localhost libnl-3.2.24]#