平台為hi35XX,在Liunx下借助wireless_tools和wpa_supplicant(因為現在的無線wifi網絡大多是wpa加密。所以需要移植wpa_supplicant工具)等工具實現wifi的過程。
一、移植wireless_tools
1. 下載並編譯wireless_tools
tar zxf wireless_tools.29.tar.gz(網上下載)
cd wireless_tools.29
make
成功後會在當前目錄生成iwspy,iwpriv,iwlist以及iwconfig等文件。
2. 拷貝文件
我們只需將這四個文件拷備到文件系統的sbin目錄,然後將當前目錄的libiw.so.29庫文件拷到文件系統的lib目錄,無線網絡工具即安裝完成。
二、加載無線網卡驅動模塊
網上有很多無線驅動模塊,可移植性很好。呵呵,我的是利用XX無線網卡公司提供的網卡驅動源碼,修改下Makefile(1.網卡選擇 2.平台 3.內核路徑和工具鏈)以及os/linux下的config.mk(一般不需要修改),make得到的。
insmod rtutil5572sta.ko。
insmod rt5572sta.ko
insmod rtnet5572sta.ko
三、指令的使用
1. 掃描可用的無線網絡
iwlistwifi-name scanning
其中wifi-name為無線網卡的名字,比如網卡eth0就是系統默認的網卡名字, wifi-name可以用ifconfig查看,一般為ra0(無線網卡),不過,需要ifconfig ra0 up。
2. 掃描網絡信息
iwlistra0 scan
===>rt_ioctl_giwscan.11(11) BSS returned, data->length = 1427
ra0 Scan completed :
Cell 01 - Address:C4:CA:D9:1D:9E:A0
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.412 GHz(Channel 1)
Quality=7/100 Signal level=-87 dBm Noise level=-82 dBm
Encryption key:off
Bit Rates:54 Mb/s
如上:ESSID項的值即為無線網絡的名字,如上的“TXJ”等。如果值為空,說明在無線路由勾選了隱藏ESSID的選項。ESSID是很關鍵的,如果被隱藏了,也不是不能連接,而是需要破解,用到其他的工具,非常麻煩。
3. 設置要連接的網絡類型
iwprivra0 set NetworkType=Infra
4. 設置要連接的無線網絡的安全模式
iwprivra0 set AuthMode=WPA2PSK
5. 設置網絡加密方式:(CCMP即為AES)
iwprivra0 set EncrypType=TKIP
6. 設置連接時的密碼
iwprivra0 set WPAPSK=******* //********為加密網絡的密碼
7. 連接該網絡:有兩種方式:
<1> 用iwpriv命令
iwpriv ra0 set SSID=TXJ
<2> 用iwconfig命令
iwconfigra0 essid TXJ
至此,如果密碼正確,就可以連接上網絡TXJ了。
8. 查看狀態
iwpriv ra0 connStatus
當然,你也可以用iwconfig命令查看狀態。