iw 是一种新的基于 nl80211 的用于无线设备的CLI配置实用程序。它支持最近已添加到内核所有新的驱动程序。采用无线扩展接口的旧工具iwconfig已被废弃,强烈建议切换到 iw 和 nl80211。

iw发布压缩包可以从这里获取:http://git.sipsolutions.net/?p=iw.git

本文用到的源码有:

iw-3.11.tar.bz2,下载地址点击这里!

libnl-3.2.23.tar.gz,下载地址点击这里!


tar xzf libnl-3.2.23.tar.gz                         /* 编译iw需要用到的库文件 */
cd libnl-3.2.23/
./configure --host=arm-linux --prefix=$PWD/tmp
编译会出现错误,说确实一些宏,修改 lib/addr.c 添加宏,宏来自内核源码源码linux-3.4.2\include\linux\Socket.h文件里面,添加相应的宏。

make
make install

把编译出来的头文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include   /* 交叉工具链路径 */

cd tmp/include/libnl3

sudo cp netlink -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          /* 交叉工具链路径 */

把编译出来的库文件应该放入NFS文件系统的lib目录:cp -r lib  到文件系统lib


tar xjf iw-3.11.tar.bz2

cd iw-3.11/
修改Makefile:
CC ?= "gcc"修改成CC = "arm-linux-gcc"

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)


把iw命令复制到根文件系统的/bin目录下面。

 SSID:name         /* WIFI的名字 */    手机打开热点让我们的开发板去连接,以后用的的名字和密码分别是linux和88888888


ifconfig wlan0 up                 /* 打开无线网卡 */

ifconfig wlan0 down                 /* 关闭无线网卡 */

iw list                                   /* 列出WIFI网卡的性能*/

iw dev wlan0 scan   // 扫描WIFI AP

iw wlan0 connect linux      // 连接到WIFI AP:linux (open)  没有设置密码

iw dev wlan0 link                /* 查看连接状态 */

 iw wlan0 disconnect           /* 关闭WIFI连接 */

ifconfig wlan0 192.168.1.111              配置无线网卡wlan0


有密码连接方式:

iw wlan0 connect linux keys d:0:8888888888888    /* 密码需要设置成13位 */


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐