1. 程式人生 > >iw工具安裝和使用

iw工具安裝和使用

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位 */