Yocto i.MX6 (TQIMX6) (03) : wifi网卡的相关工具wpa_supplicant与dhcp
2015-12-21 22:24
507 查看
加密与认证
无线网卡驱动起来之后,还需要在用户态的一些程序支持,从而可以寻找热点并连接热点,访问网络。wifi连接时候的有出于两个方面的考虑:连接认证
传输数据的加密
出现了不同的标准,这些认证/加密常见的有下面这些:
open(即不加密)
WEP(WEP)
WPA(TKIP)
WPA2(AES)
加密认证工具
而针对不同的认证/加密就有不同的软件来辅助我们wifi设备的认证/连接:iw: 针对open, WEP
wpa_supplicant:可以用于上面四种认证
wpa_supplicant的编译
直接在Yocto中用bitbake编译即可,参考我以前的博客:Yocto tips (11): Yocto如何往最终的rootfs中添加软件wpa_supplicant共有三个工具集:
wpa_cli:wpa命令行,query current status, change configuration, trigger events, and request interactive user input
wpa_passphrase:Generate a WPA PSK from an ASCII passphrase for a SSID
wpa_supplicant :一般作为后台程序使用,前台程序可以使用前面说到的wpa_cli
这些工具的作用与使用可以查看man手册。
配置并连接一个wifi热点
首先是需要创建文件夹
mkdir /var/run/wpa_supplicant
用文件存储配置interface等信息
热点信息如下:配置信息如下:
ctrl_interface=/var/run/wpa_supplicant # 一个目录,用于wpa_supplicant和wpa_cli的socket通信 network={ ssid="XXXX" 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="XXXYYY" #密码 }
然后我们可以将此配置文件放置到/etc/XXX.conf
配置与使用wlan
然后以Background(后台daemon)运行wpa_supplicant:wpa_supplicant -B -c /etc/XXX.conf -iwlan0
运行结果如下:
然后查看状态
wpa_cli -iwlan0 status // 查看状态
如果是scanning状态,那么我们可以使用iw命令来查看是否有我们需要的热点:
root@imx6qsabresd:~# iw dev wlan0 scan BSS 80:89:17:e4:49:e4(on wlan0) TSF: 1475597209984 usec (17d, 01:53:17) freq: 2462 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431) signal: -45.00 dBm last seen: 180 ms ago Information elements from Probe Response frame: SSID: ruishanghua Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 DS Parameter set: channel 11 ERP: <no flags> Extended supported rates: 24.0 36.0 48.0 54.0 HT capabilities: Capabilities: 0x106e HT20/HT40 SM Power Save disabled RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 3839 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: No restriction (0x00) HT RX MCS rate indexes supported: 0-15 HT TX MCS rate indexes are undefined HT operation: * primary channel: 11 * secondary channel offset: below * STA channel width: any * RIFS: 0 * HT protection: 20 MHz * non-GF present: 0 * OBSS non-GF present: 0 * dual beacon: 0 * dual CTS protection: 0 * STBC beacon: 0 * L-SIG TXOP Prot: 0 * PCO active: 0 * PCO phase: 0 RSN: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: PSK * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000) WPA: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: PSK WMM: * Parameter version 1 * BE: CW 15-1023, AIFSN 3 * BK: CW 15-1023, AIFSN 7 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
或者对SSID过滤查看:
root@imx6qsabresd:~# iw dev wlan0 scan | grep SSID: SSID: ruishanghua SSID: ziroom101 SSID: TPGuest_28A4 SSID: TP-LINK_2CBE SSID: Tenda_13B190 SSID: yun SSID: TP-LINK_FA6C SSID: TP-LINK_chj
或者使用wap_cli来查看:
root@imx6qsabresd:~# wpa_cli scan_results
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
80:89:17:e4:49:e4 2462 -46 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] ruishanghua
bc:46:99:97:4b:cc 2462 -66 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] ziroom101
bc:46:99:99:fa:6c 2437 -68 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_FA6C
ce:46:99:65:28:a4 2437 -71 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TPGuest_28A4
fc:d7:33:35:2c:be 2412 -72 [ESS] TP-LINK_2CBE
8c:be:be:23:28:ba 2417 -64 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] yun
bc:46:99:65:28:a4 2437 -71 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_chj
80:89:17:fe:0c:a2 2412 -66 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_601
Connected完成之后还需要dhcpc
然后使用dhcp来获取与设置IP与DNS(nameserver),以及gateway。关于IP,DNS与gateway的大概作用如下:IP:在一个局域网内找到一个主机需要的地址
DNS: 域名解析服务器,与IP对应的域名解析,将域名解析成IP
Gateway:如果信息要传到这个局域网外面,应该从哪个地址去转发
下面是使用busybox的udhcpc的结果:
可以看到在/etc/resolv.conf中的内容被配置好了:
然后就是联通测试:
ping 192.168.1.1
因为DNS与网管都配置好了,所以其实我们可以ping通外网了:
至此,我们就可以使用这个wlan了。
相关文章推荐
- 如何解决双网卡冲突
- 无线网卡安装DIY
- 网卡安装常见问题精解
- 用双网卡实现三机互联
- 批处理获取网卡名称的代码(附修改IP、网关、DNS脚本)
- vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
- JScript中调用ActiveX获取访客网卡MAC地址实现代码
- 提高10/100M网卡传输速率的设置方法
- freebsd网卡安装与dhcp配置方法
- Python脚本实现网卡流量监控
- python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
- 【原创】centos自带网卡驱动不兼容硬件,造成hadoop的datanode节点频繁宕机的解...
- Broadcom 802.11n 网络适配器 看看你的PCI id 对照一下 没戏的话就别玩了
- Linux服务器网卡驱动安装及故障排除
- Linux下如何确定网卡所使用的驱动程序
- Centos 6 克隆导致网卡eth0变成eth1、及修改网卡名的方法
- 双机热备hearbeat
- P2V之后,给虚拟网卡设置IP时提示IP冲突的解决办法
- KVM的部署与优化(1)