本文共 1751 字,大约阅读时间需要 5 分钟。
Wpa_supplicant是linux系统下一个非常强大的无线网卡管理程序。
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。
wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络,它可以让您连接到那些使用WPA的AP。wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。
关于WPA:
WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。
wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。wpa_supplicant是一个 独立运行的 守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。经过编译后 的 wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant 和 wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。
准备工作:移植wpa_supplicant测试程序至arm开发板
根据源码,编译出驱动8192cu.ko.
配置文件/etc/wpa_supplicant.config分析:
ctrl_interface=/var/run/wpa_supplicant#ap_scan=2network={ ssid="your_ssid" proto=WPA2 WPA key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP psk=your_psk}
ssid 即 无线网络名称,
psk 是 经过wps_passphrase运算后得到的string,
proto 和 pairwise 均可通过你连接的无线网络确定。
psk得到方式
#wpa_passphrase ssid名 密码 >> /etc/wpa_supplicant.conf
之后/etc/wpa_supplicant.conf就会多了这样的内容
network={ ssid="your_ssid" #psk="1234567890" psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba}
用这个psk替换掉上面的psk.
运行
#ifconfig wlan0 up#wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
也可以加入 -dd 选项观察debug信息,加入 -D 指定driver,如 -Dwext.
我在调试过程出现了ioctl[SIOCSIWAP]: Operation not permitted,加入-dd选项并没有发现异常,先忽略该问题。
再运行
#udhcpc -i wlan0
即可获取ip.
成功后运行#iwconfig wlan0 截图如下:
测试:
可通过nfs搭载文件系统,传送一些文件观察是否有断开和速度等等。
其他有用的命令:
Scaning AP and See Results#wpa_cli -p /var/run/wpa_supplicant scan#wpa_cli -p /var/run/wpa_supplicant scan_result
转载地址:http://bqdxi.baihongyu.com/