WL18xx Linux 驱动程序使用开源组件以及接口驱动程序来使该器件实现 Wi-Fi 功能。图 2-1 概括显示了驱动程序分区和架构。
以下部分简要介绍了各驱动程序层中的高级组件及其功能。
- WiLink8 固件 – 该固件在器件硬件上运行,可提供 Wi-Fi 的 PHY 和 MAC 功能。主机通过 SDIO 与 WLAN 设备进行通信。在设备侧,WLAN MAC 负责 802.11 MAC 功能,并在外部主机与固件之间传输 WLAN 数据包。MAC 仅负责时序和时间关键型决策。PHY 执行编码/解码和调制/解调的 802.11 PHY 功能,并负责上下调制至载波频率、滤波和放大的射频功能。
- WiLink 驱动程序是器件硬件和固件的抽象层。实现支持 MAC 驱动程序所需的低级操作。
- wlcore:实现 WiLink 器件的低级驱动程序,可支持 mac80211 操作。包含所有受支持 WiLink™ 芯片组的常见功能。
- Wl18xx:实现特定于芯片的功能和服务。通过实现特定于硬件的功能来支持 wlcore。
- wlcore_sdio:SDIO 驱动程序和 WiLink 驱动程序之间的适应层。
- MAC 驱动程序实现 2 层 Wi-Fi 协议要求(数据和控制路径)。这是一个通用组件,而不是特定于平台/器件。这一层包含以下组件。
- nl80211:在用户空间与 Linux 无线解决方案的内核空间组件之间实现 netlink 接口。
- cfg80211:Linux 无线配置 API。(该层为软 MAC 和硬 MAC 共用的最底层。)
- mac80211:为 Wi-Fi 软 MAC 解决方案实现 MAC 层功能的 Linux 内核模块。
- Hostap 软件包:包含开源用户空间软件包。为所有 WLAN 角色(STA、AP、P2P 和网状网络)提供上层管理层。生成 2 个守护程序:wpa_supplicant(STA、P2P、网状网络)和 hostapd (AP)。
- 实用程序提供初始化和配置服务。实现调试和统计功能。