和菜鸟一起学linux之wifi相关应用的移植和使用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、 libnl移植
下载源码:http://www.infradead.org/~tgr/libnl/ libnl-3.2.21.tar.gz
解压缩后,在libnl-3.2.21当前目录下,新建build.sh,编辑内容如下:
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
设置下build.sh的权限后,./build.sh 配置好以后,make下,再make install就ok了。
上面的的脚本简单说明下:
第2行为libnl需要包含的内核的头文件。
第3行为交叉编译的工具指定。
第4行是把需要的库install到相应的rootfs中去。
然后可以看到在rootfs/usr中就会有include/libnl3 和/lib下的一些相关的.so等库了。
二、 openssl移植
下载源码:http://www.openssl.org/source/ openssl-1.0.1e.tar.gz
解压缩后,在openssl-1.0.1e当前目录下,新建build.sh,编辑内容如下:
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
设置下build.sh的权限后,
./build.sh配置好以后,
make
再make install
然后可以看到在rootfs/usr中就会有include/openssl 和/lib下的一些相关.so等库了。
三、 hostapd移植
下载源码:http://w1.fi/hostapd/ hostapd-2.0.tar.gz
解压缩后,在hostapd-2.0目录下
cp defconfig .config //配置对应的config。
然后进入config中,在.config中需要加上依赖的头文件和库,添加内容如下:
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
然后编辑makefile
在开始出添加:
---------------------------------------分割线----------------------------------------------------
DESTDIR = /home/eastmoon/rootfs
---------------------------------------分割线----------------------------------------------------
接着make
之后就可以生成对应的应用程序。
再make install
这样对应的程序就会在rootfs/usr下的local/bin下了。
四、wpa_supplicant移植
下载源码:http://w1.fi/wpa_supplicant/ wpa_supplicant-2.0.tar.gz
这个和hostapd比较类似,几乎一样。
解压缩后,在wpa_supplicant-2.0目录下
cp defconfig .config //配置对应的config。
然后进入config中,在.config中需要加上依赖的头文件和库,添加内容如下:
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
然后要选上
CONFIG_TLS=internal
CONFIG_INTERNAL_LIBTOMMATH=y
这两个主要是我编译的不依赖与openssl,所以就编译内部的了。
接着make
之后就可以生成对应的应用程序,之后就可以使用了。
五、dhcp服务端和客户端的移植
源码是程序员联合网下的。udhcp-0.9.8。
修改Makefile,CROSS_COMPILE=arm-linux-
make
然后生成了可执行文件udhcpd和udhcpc,其中udhcpd就是dhcp的服务端程序,udhcpc就是dhcp的客户端程序了。
六、boa移植
下载源码: http://www.boa.org/ boa-0.94.13.tar.gz
解压缩后,
1、进入src目录,执行./configure,
2、接着修改Makefile
CC = arm-linux-gcc
CPP = arm-linux-gcc–E
3、然后将boa.c 文件中以下几行判断去掉即可。
//if ( setuid ( 0 ) != - 1 ) {
// DIE ( "icky Linux kernel bug!" );
//}
4、修改文件compat.h P120
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
5、把src 文件夹下的config.c 里的if(!server_name){..........} (大概在266 行到286 行之间)注释掉
6、修改 src/log.c
注释掉
//if (dup2(error_log, STDERR_FILENO) == -1) {
//DIE("unable to dup2 the error log");
//}
7、make
之后就可以生成boa这个可执行的简单服务器了。
七、cgic移植
下载源码:http://www.boutell.com/cgic/ cgic205.tar.gz
解压后
1、 修改CC=arm-linux-gcc
2、 修改AR=arm-linux-ar
3、 修改RANLIB=arm-linux-ranlib
4、 gcc cgictest.o -o cgictest.cgi ${LIBS},
将其改成 $(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}
5、gcc capture.o -o capture ${LIBS} ,
$(CC) $(CFLAGS) capture.o -o capture ${LIBS}
6、make
之后就可以生成辅助程序capture 和测试程序cgictest.cgi。
综上,对于以上源码的嵌入式平台的移植就结束了,那么接下来就是如何使用了。
一、 hostapd使用
从上面的移植可以得到相应的hostapd的可执行应用程序。那么接下来就是编辑配置文件了,编辑hostapd.conf如下:(这里没有使用密码什么的,要使用密码的话,可以百度去找)
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
接着要在etc下新建个mine.types的文件。
接着,就可以hostapd hostapd.conf
然后用手机或者PC机就可以搜索到对应的ssid为my_hostapd的路由器了。
然后别的wifi设备连接上后,通过静态分配ip就可以连接上这个路由器了。如果要用dhcp动态获取ip。可参考下面的方法。
二、 wpa_supplicant使用
从上面的移植可以得到相应的wpa_supplicant可执行应用程序。
运行wpa_supplicant –Dnl80211 –iwlan0 –c/etc/wifi/wpa_supplicant.conf&,后台中就启动了wpa_supplicant了。
这里要在/etc/下新建wifi目录,其中放入enropy.bin softap.conf 和wpa_supplicant.conf
其中wpa_supplicant.conf内容如下:
三、 dhcp使用
为了可以让pc机或者手机自动获取ip地址,所以需要dhcp的服务器。从上面的移植,可以得到udhcpd的可执行应用程序。那么接下来就是配置文件了,编辑dhcpd.conf如下:
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
接下来就只要udhcpd dhcod.conf就会在后台运行了。如果手机或者pc机去连接的话,这个dhcpd服务器就会分配ip给手机或者PC机了。
四、 wpa_cli使用
从上面的移植可以得到相应的wpa_cli可执行应用程序。这里,wpa_cli在/wpa这个目录下。
运行wpa_cli –iwlan0 –p/wpa/wlan0/wlan0
然后就进入了,wpa的client控制了。接着就可以进行扫描,连接等工作了。
五、 boa使用
从上面的移植可以得到相应的boa的可执行应用程序。那么接下来就是编辑配置文件了,在etc下建立boa文件夹,并且新建boa.conf文件,编辑boa.conf如下:(个人配置,供参考)
---------------------------------------分割线----------------------------------------------------
---------------------------------------分割线----------------------------------------------------
然后只要运行boa就可以后台启动这个简单的web服务器了。
六、 cgic使用
从上面的移植可以得到相应的可执行应用程序。将capture 和cgictest.cgi 拷贝到主机的/tmp/www/cgi-bin 目录下。在工作站的浏览器地址栏输入
http://192.168.0.1/cgi-bin/cgictest.cgi ,可以看到页面,CGIC 库和测试脚本都移植成功。
然后就可以写cgic程序,放到那个目录下,就可以用了。
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |