網卡工作模式;sta(客戶端模式)、ap(熱點模式)
1 準備工作及配置內核選擇wifi驅動
1.1選型:看linux內核是否支持:wireless.kernel.org ->drivers列出來內核支持的usb網卡;
確定網卡的VID,CID在列表中;
選購WIFI:
Atheros : VID 0x13D3 PID 0x3327 (成品型號 AR9271)
realtek : VID 0x0bda PID 0x8176 (成品型號TP-LINK公司TL-WN721N)1.2 搭建開發環境
(1)網線直連
(2)用hub/路由器
(3)無線路由器;開發板連接無線路由器;電腦無線連接信號;
a 設置vmware的網絡爲網橋,並選擇哪個網卡
b 開發板有多個網卡的話,網卡地址不能在同一個網段;將pc網卡和開發板網卡設在同一個網段
1.3 配置內核以支持usb wifi網卡
a 打補丁 tar ; cd ;patch p1 < ../linux-3.4.2_camera_mini2440.patch;
b 配置內核:根據網卡的VID\PID確定使用哪個源碼,
打開源碼所在的目錄的makefile進而確定配置項的名稱
make menuconfig,/名
如:cp config_ko .config
cd drivers/net/wireless/
grep "0x3327" * -nR //查找哪個文件中有打開同目錄的makefile 確定配置項CONFIG_ATH9K_HTC,
make menuconfig, /CONFIG_ATH9K_HTC 得到下面信息 / 斜槓表示搜索 改爲y:編輯進內核
c. 編譯、使用
1 把固件htc_9271.fw放到單板/lib/firmware
接上USB網卡, ifconfig wlan0 up韋東山是選購內核本來就支持的網卡來用的
2 使用wifi網卡:iw、wpa_supplicant、dhcp
以手機上WIFI熱點爲例,有4種常用的"認證/加密"
a. open
b. WEP
c. WPA(TKIP)
d. WPA2(AES)
板子上沒有iw、wpa_supplicant、dhcp命令,需要配置添加命令;
a iw 只能實現(open、wep認證,不是很安全)
使用:
iw list // 列出WIFI網卡的性能
ifconfig wlan0 up
iw dev wlan0 scan // 掃描WIFI AP
iw wlan0 connect dswei // 連接到WIFI AP:dswei (open)
iw wlan0 connect dswei keys d:0:baiwenwang123 // 連接到WIFI AP:dswei (WEP)
d: default, 0: 第0個密碼
b wpa_supplicant : 可用於上述4種"認證/加密"
① OPEN
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
wpa_cli -iwlan0 status // 查看狀態
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件內容爲:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
key_mgmt=NONE
}
② WEP/WEP
wpa_supplicant -B -c/etc/wep.conf -iwlan0
wpa_cli -iwlan0 status // 查看狀態
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
key_mgmt=NONE
wep_key0="baiwenwang123"
wep_tx_keyidx=0
}
③WPA(TKIP)
wpa_supplicant -B -c/etc/wpa-psk-tkip.conf -iwlan0
wpa_cli -iwlan0 status // 查看狀態
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件
ctrl_interface=/var/run/wpa_supplicant # 一個目錄,用於wpa_supplicant和wpa_cli的socket通信
network={
ssid="dswei"
proto=WPA # proto: list of accepted protocols, 可取WPA,RSN
# If not set, this defaults to: WPA RSN
key_mgmt=WPA-PSK # 認證方式
# If not set, this defaults to: WPA-PSK WPA-EAP
pairwise=TKIP # If not set, this defaults to: CCMP TKIP
group=TKIP # If not set, this defaults to: CCMP TKIP WEP104 WEP40
psk="baiwenwang12"
}
④ WPA2(AES)
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
wpa_cli -iwlan0 status // 查看狀態
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
psk="baiwenwang123"
}
另:
wpa_cli可工作於"命令模式"和"交互模式"
c dhcp : 使得WIFI網卡動態獲取IP
mkdir -p /var/db
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
dhclient wlan0