iw工具
旧工具iwconfig, iw是它的替代者, 可用于这2种"认证/加密": open, WEP。
iw扫描周围的热点比较好用
1. iw依赖libnl库
tar xzf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
./configure --host=arm-linux --prefix=$PWD/tmp
//在目录里看到了cofigure文件,要如上修改交叉编译和安装目录
修改 lib/addr.c 添加宏(宏来自内核源码) vi lib/addr.c +1027
addr.c:1027: error: `AF_RDS’ undeclared here (not in a function)
AF_RDS宏未定义,在内核里搜索找到定义的地方,把它那一组宏定义都复制到addr.c里。
make
make install
把编译出来的头文件应该放入: //放入工具链
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
cd tmp/include/libnl3
sudo cp * -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
把编译出来的库文件应该放入: //放入工具链
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
cd tmp/lib
sudo cp * -rf -d /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
把编译出来的库文件应该放入NFS文件系统的lib目录: //动态库
/work/nfs_root/fs_mini_mdev_new/lib
sudo cp so -d /work/nfs_root/fs_342/lib
2. 编译iw工具
tar xjf iw-3.11.tar.bz2
cd iw-3.11/
//在目录里没看到configure,但看到了Makefile,如下修改交叉编译
修改Makefile:
CC = "arm-linux-gcc"
ifeq ($(NO_PKG_CONFIG),)
#NL3xFOUND := $(shell $(PKG_CONFIG) --atleast-version=3.2 libnl-3.0 && echo Y)
+NL3xFOUND := Y
#LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
#CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))
在info.c的代码前面添加
#define htole16(X) (((((uint16_t)(X)) << 8) | ((uint16_t)(X) >> 8)) & 0xffff)
make
sudo cp iw /work/nfs_root/fs_342/bin //拷到网络文件系统
3. 使用
iw list // 列出WIFI网卡的性能
ifconfig wlan0 up
iw dev wlan0 scan // 扫描WIFI AP
iw wlan0 connect dswei // 连接到WIFI AP:dswei (open)
iw wlan0 connect cheny keys d:0:12345678 // 连接到WIFI AP:dswei (WEP) d: default, 0: 第0个密码
ifconfig wlan0 192.168.1.55 //配置ip
ping 192.168.1.1
iw wlan0 disconnect //断开