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