韦东山-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网卡驱动架构















你可能感兴趣的:(韦东山一期学习笔记)