wpa_supplicant,是WPA/WPA2认证的客户端程序。简单的说,wpa_supplicant就是wifi驱动和用户(wifi应用程序)的中间件,支持相关协议和加密认证。它是一个开源的程序,遵循GPL 2(GNU General Public License version 2)和BSD许可证。
WPA,是Wi-Fi Protected Access<TM>,Wi-Fi安全访问的简称。另外还有一种常用的WIFI安全访问类型就是WEP(有线等效保密)算法。
前 言
本篇文章主要是根据网上整理的资料,简单介绍下wpa_supplicant。研究wpa_supplicant的目的,主要是探讨移植wpa_supplicant到eCos的可行性。
wpa_supplicant功能
wpa_supplicant通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。
我们在配置无线路由器提供WIFI时常会碰到WPA和WEP,如下图所示。
可把无线路由器提供的上图无线网络基本设置界面理解为wpa_supplicant的用户界面。当用户设置后,无线路由器会调用wpa_supplicant提供的功能接口把参数设置到无线网卡中。
wpa_supplicant源码下载地址
下载地址:http://hostap.epitest.fi/releases/,我下载的是0.7.3版本。源码目录如下两图所示。其中,左图是wpa_supplicant源码根目录,右图是其中的src目录。
其中的wpa_supplicant目录,提供了一些工程示例,如wpa_gui-qt4等。
wpa_supplicant的使用
关于在linux中如何使用wpa_supplicant来配置无线网卡,可以参考网上一些资料。在这介绍wpa_supplicant,主要是让大家认识一下这个东东具体是什么、能做什么。
wireless-tools介绍
跟wpa_supplicant一样,wireless-tools,也是一个用于管理和配置无线网卡的程序。
wpa_supplicant与wireless-tools的对比
- wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。
- wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。
- wireless-tools支持几乎所有的无线网卡和驱动。
- wireless-tools不能连接到那些只支持WPA的AP,也就是当无线路由器配置安全类型为WPA时,不能使用wireless-tools连接到该无线路由器。
总 结
初步阅读了下wpa_supplicant源码,它默认提供了linux、unix、WINDOWS的支持,所以在linux中使用wpa_supplicant来管理和配置无线网卡是一件很容易的事情。此外,wpa_supplicant设计为多操作系统,移植到其它操作系统应该是有可能的。
至于能否移植到eCos中,需要进一步研读源码后才能下定论。