网卡工作模式;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网卡驱动架构