一. 简介
前面几篇文章学习了删除 kernel内核源码(NXP提供)自带的 WIFI驱动。向 kernel内核添加 rtl8188驱动源码,配置 kernel内核,使能 WIFI驱动(rtl8188驱动)。
本文开始学习移植操作 WIFI设备的一些命令工具。这里学习 wireless tools 工具的移植。
二. WIFI驱动移植实验: wireless tools 工具移植
1. wireless tools简介
wireless tools
是操作
WIFI
的工具集合,包括一下工具:
①
iwconfig
:设置无线网络相关参数。
②
iwlist
:扫描当前无线网络信息,获取
WIFI
热点。
③
iwspy
:获取每个节点链接的质量。
④
iwpriv
:操作
WirelessExtensions
特定驱动。
⑤
ifrename
:基于各种静态标准命名接口。
我们最常用的就是 iwlist 和 iwconfig
这两个工具,首先获取到相应的源码包,这里我们已经放到了开发板光盘中,路径为:
1
、例程源码
-
》
7
、第三方库源码
-
》
iwlist_for_visteon-master.tar.bz2
。
2. 编译 wireless tools 工具源码
将
iwlist_for_visteon-master.tar.bz2
拷贝到
Ubuntu
中前面创建的
tool
目录下,拷贝完成以后将其
解压,使用如下命令进行解压:
tar -jxvf iwlist_for_visteon-master.tar.bz2
(1) 更改交叉编译工具并编译
进入到
iwlist_for_visteon-master
文件夹里面,打开
Makefile
文件,修改
Makefile
中的
CC、AR
和 RANLIB
这三个变量,修改后的值如下
所示:
## Compiler to use (modify this for cross compile).
CC = arm-linux-gnueabihf-gcc
## Other tools you need to modify for cross compile (static lib only).
AR = arm-linux-gnueabihf-ar
RANLIB = arm-linux-gnueabihf-ranlib
上面Makefile文件中
CC
、
AR
和
RANLIB
这三个变量为所使用的编译器工具,将其改为我们所使
用的
arm-linux-gnueabihf-xxx
工具即可。
修改完成以后,就可以使用如下命令编译:
make clean //先清理一下工程
make //编译
编译完成以后就会在当前目录下生成 iwlist、iwconfig、iwspy、iwpriv、ifrename 这 5 个工 具,另外还有很重要的 libiw.so.29 这个库文件。
(2) 拷贝工具
将这 5 个工具拷贝到开发板根文件系统下的 /usr/bin 目录中,将 libiw.so.29 这个库文件拷贝到开发板根文件系统下的/usr/lib 目录中。
注意:
1. 这里开发板是通过 nfs服务加载的方式,从 ubuntu系统下加载文件系统的。所以,这里只需要将工具拷贝到 nfs服务目录下 文件系统下(rootfs)。
2. 这里将工具拷贝到 开发板文件系统目录下时,拷贝命令需要 root权限。
将 5个工具拷贝到 开发板系统 /usr/bin目录下:
sudo cp iwlist iwconfig iwspy iwpriv ifrename /home/wangtian/linux/nfs_File/rootfs/usr/bin/ -f
将 libiw.so.29库文件拷贝到开发板系统 /usr/lib目录下:
sudo cp libiw.so.29 /home/wangtian/linux/nfs_File/rootfs/usr/lib/ -f
接下来对 wireless tools 工具进行测试,在开发板使用确定是否存在问题。