韋東山-wifi驅動

網卡工作模式;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


3 使用wifi網卡的ap功能
4 深入分析wifi網卡驅動架構















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章