详细介绍linux下移植wifi的步骤.docx
目录
一、 背景... 2
二、 概念介绍... 2
1. Card introduction. 2
2. cfg80211. 4
3. mac80211. 4
4. nl80211. 5
5. 加密方式... 5
三、 正确安装驱动程序... 6
1. 驱动程序源码... 6
2. 依赖... 8
四、 管理无线连接的方法... 11
1. iw.. 11
2. wpa_supplicant. 13
3. hostapd. 14
4. 总结:... 15
五、 参考文档... 15
Linux系统下移植wifi模块,使其正常工作。包括两部分内容,第一部分是识别无线设备,并且正确安装驱动程序。第二部分是选择管理无线连接的方法。本文将介绍这两部分内容。
一、 背景
配置wifi有三种方式:图形客户端,文本模式接口和命令行界面。最简单的方法是在安装桌面环境后使用图形客户端。它们提供了一个方便的点击式界面,可以在几秒钟内让用户进入网络。也可以通过编辑一些配置文件从命令行配置无线,这需要花费更多的时间来设置。
有三种工具支持命令行驱动的无线配置:net-wireless / iw,net-wireless / wireless-tools和net-wireless /wpa_supplicant。在这三个中,net-wireless / wpa_supplicant是首选的。需要记住的重要一点是,无线网络是在全局基础上配置的,而不是基于接口的。
net-wireless/iw是net-wireless/wireless-tools延伸的产品(继承者),它支持几乎所有卡和驱动,但它不能连接到WPA-only接入点。如果网络只提供WEP加密或完全开放,那么net-wireless/iw轻轻松松胜过其他软件。
市场上现在经常使用 iw 和 wpa_supplicant两种软件。wifi 是 完全开放 或者 WEP 模式的时候,使用iw。如果wifi 需要WPA加密的话,则使用wpa_supplicant软件。
二、 概念介绍
1. Card introduction
市场上现在有两种类型的无线卡,FullMac和SoftMac。下图是这两种卡同用户空间交互数据时,调用的说明图。即不同部分cfg80211 / mac80211 / nl80211如何协同工作的图片。
FullMac
这些无线卡具有通过硬件处理的MLME(MAC子层管理实体),通常出于省电的原因(例如智能手机,平板电脑,SBC和物联网)。除了少数例外,这些卡都不支持监控模式和注入。
SoftMac
SoftMac无线卡使用mac80211在软件中处理MLME。其中大多数都支持捕获和注入(少数例外)。
2. cfg80211
cfg80211是Linux802.11配置API。cfg80211取代了Wireless-Extensions。nl80211用于配置cfg80211设备,用于内核←→用户空间通信。cfg80211现在功能齐全,具有无线扩展功能,在实施cfg80211驱动程序时,仍然会通过cfg80211到CONFIG_CFG80211_WEXT自动为您提供无线扩展支持。不再需要无线扩展的发行版可以删除它,并鼓励这样做。
3. mac80211
mac80211是一个驱动程序开发人员可以用来为SoftMAC无线设备编写驱动程序的框架。
SoftMAC设备允许更精细地控制硬件,允许在软件中完成802.11帧管理,用于解析和生成802.11无线帧。目前大多数802.11设备都属于这种类型。
mac80211实现了SoftMAC设备的cfg80211回调,然后mac80211依赖于cfg80211来注册网络子系统和配置。配置由cfg80211通过nl80211和无线扩展来处理。
在mac80211中,MLME在用于站模式(STA)的内核中以及在用于AP模式的用户空间(hostapd)中完成。
如果您有支持nl80211的新用户空间实用程序,则不需要无线扩展来支持mac80211设备。
支持的功能:
IEEE 802.11abgn
IEEE 802.11d
Integration of work for the emerging 802.11sstandard
使用wpa_supplicant进行漫游(802.11r也是如此)。
不同类型的接口,详见支持的无线模式。
供应商特定费率支持
all mac80211 drivers get monitor modesupport
4. nl80211
nl80211 is the new 802.11 netlin