- Wireless-Extensions--旧的无线驱动框架
- mac80211--为softMAC驱动服务的API
- cfg80211--新的配置API
- nl80211--新的用户控件<->内核空间通讯方式
组件交互的基本原理图
[Wireless Card]
|
[Linux Kernel ]
| |
[udev][libnl]-[iw]
| / \
[crda] \
| \
[ Wireless ] |
[Regulatory] |
[ Database ] |
|
|
[ hostapd ]
理解每一部分是做什么的
Wireless Card: Should be self explanitory... handles sending/receiving wireless packets
无线网卡:操作接收/发达无线包
Linux
Kernel: The linux kernel contains the driver for the wireless card, the
mac80211 subsystem which handles packet generation and scheduling, and
the nl80211 subsystem, which handles configuring the wireless interfaces
for userspace
linux核:linux核包涵了无线网尗的驱动,mac80211子系统
处理包的产生与时序安排。nl80211处理在用户空间配置无线接口 cfg80211
libnl: libnl is the transport layer used to communicate with the kernel via netlink
libnl:通过netlink与内核对话的传输层
udev: udev is the facility the kernel uses to pass events/calls to crda
udev:udev是内核通过events/calls到 crda的设施
iw:
iw is a userspace utility that we can use to test that libnl is working
correctly, as well as create additional virtual wireless interfaces on
the wireless card
iw:是我们用来测试
libnl是否正确工作,以及在无线网卡上创建额外的虚拟无线接口的用户空间工具
。
crda:
crda is a userspace program that the kernel queries (through udev) to
find what channels/frequencies are usable, and at what powers. This
moves the information out of static tables maintained in kernel to
userspace, which allows them to be updated without reloading
drivers/rebooting
crda:是内核通过udev来查找什么频段/频率是有效的,在什么强度的用户空间程序。这个从内核维护的静态表中移到用户空间,它可以不需要重载驱动和重启的情况下更新。
Wireless Regulatory Database: database of allowable frequencies and transmit power levels used by crda
无线控制数据库:crda使用允许的频率和传输强度等级的数据库
hostapd:
This is the daemon that handles generation of beacons and other
wireless packets, as wel as wpa-psk, wpa2, etc encryptions.
hostapd:这是个用来操作信号的产生和其它无线包,以及wpa-psk, wpa2等加密的守护进程
softMAC是一个用于描述无线网尗的类型的一个术语。
分享到:
相关推荐
wifi 中wpa_supplicant AP 热点链接流程。简述wap_supplicant,cfg80211
- **wext**:旧式的无线扩展接口,已被nl80211替代。 - **nl80211**:新的网络层接口,用于与用户空间通信。 #### 内部结构 MAC80211内部包含多个关键路径,包括但不限于: - **TX/RX路径**:负责数据包的发送与...
- **wext** 和 **nl80211**:这两个接口用于WPA Supplicant与Linux内核间的通信。nl80211是官方推荐使用的接口,它基于Netlink机制实现了更为高效和灵活的交互方式。 #### WPA Supplicant与Kernel的交互 - **nl...
mac80211是一个标准的驱动程序框架,为未来的无线设备驱动程序提供支持,它可以与上层的cfg80211 ops接口交互,同时还有较旧的Wext接口为基于Wext的应用程序提供服务。非mac80211驱动程序只支持Wext接口。cfg80211...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl #BOARD_USR_WIFI := ...
在Wi-Fi应用中,`ioctl`被用来与无线网卡驱动进行通信,尽管现在有了更现代的`cfg80211`和`nl80211`接口,它们使用`netlink`进行通信。然而,`ioctl`仍然被一些工具(如`iwlist`)用于处理无线网络,因为它不需要...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl #BOARD_USR_WIFI :...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl #BOARD_USR_WIFI :...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl SW_BOARD_USR_WIFI :=...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl #BOARD_USR_WIFI := ...
#service engsetmacaddr /system/bin/setmacaddr /data/wifimac.txt # class main # oneshot (关闭这里:AP6212A0等等) ## 2. broadcom wifi service ## 2.1 broadcom wifi station and softap #service wpa_...
define KernelPackage/cfg80211/description Kernel modules for CFG80211 support endef $(eval $(call KernelPackage,cfg80211)) 5、配置文件: W:\tinav2.5\target\allwinner\astar-parrot\configs\sys_...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl SW_BOARD_USR_WIFI :=...
- **wpa_drivers[i]->global_init()**: 对于每个支持的驱动类型(如wext或nl80211),执行全局级别的初始化。 - **nl80211**: 特别提到的nl80211驱动,使用`nl80211_global_init`进行初始化,创建`struct nl80211_...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl SW_BOARD_USR_WIFI :=...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := ...
BOARD_WPA_SUPPLICANT_DRIVER := NL80211 WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := ...