一、前言
之前已经撰文阐述过mtk芯片方案的用户态和内核态通讯方式,实际上这些方式并非mtk芯片方案所特用,其他芯片方案也是可以使用的。
本文将以NXP方案常用的方式作一总结,以对之前mtk方案常用的方式作一补充。
二、具体方式说明
1、hostapd
hostapd is a user space daemon for access point and authentication servers. It implements IEEE 802.11 access point management, IEEE 802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS authentication server. The current version supports Linux (Host AP, madwifi, Prism54 drivers) and FreeBSD (net80211).
hostapd is designed to be a "daemon" program that runs in the background and acts as the backend component controlling authentication. hostapd supports separate frontend programs and an example text-based frontend, hostapd_cli, is included with hostapd.
- 简单说,hostapd是一个工作于用户态的daemon程序,用于配置AP和认证服务器等,其中hostapd_cli是一个hostapd的前端命令行。
- 一般使用的时候,由业务模块的进程组织相关配置文件,作为参数组装hostapd命令,后通过system执行即可。hostapd_cli除在shell上直接执行外,也可以按hostapd的方式执行。
- 相关参考资料:https://hostap.epitest.fi/hostapd/
2、Wireless tools
1)关于Wireless tools
- Wireless tools用来设置支持Linux Wireless Extension的无线设备,Wireless tools for Linux 和Linux Wireless Extension 由 Jean Tourrilhes在维护,由Hewlett-Packard(HP惠普)提供赞助。
- WirelessExtension(WE)是一组通用的API,类似于ifconfig这种,可以在用户空间对通用Wireless LANs进行配置和统计,网上有相应的库和源码,全名为wirelessTools。
- 其中包含iwconfig、iwlist、iwpriviwspy、iwgetid、iwevent、ifrename等。
iwconfig:设置基本无线参数
iwlist:扫描、列出频率,比特率,密钥等
iwspy:获取每个节点链接的质量
iwpriv:操作WirelessExtensions 特定驱动
ifrename: 基于各种静态标准命名接口
2)实际应用: - 将Wireless tools编译到版本并做到文件系统中;
- 通过在进程上下文通过system等命令,来执行Wireless tools中相关app即可。
三、总结
- 本质上讲,hostapd和Wireless tools都是app,一般在版本里部署在Linux系统的bin目录或sbin目录,之后,或者在shell上直接执行,或者由system对相关命令进行调用,前者一般用于调试,后者一般用于版本中由业务流程进行触发。
- 之前MTK和本篇NXP所使用的方式,基本上涵盖了绝大多数WLAN驱动使用的方式,比如intel一般也是使用hostapd的。