TP-LINK WN722N 无线 USB 设备被 macOS 识别为以太网设备

TP-LINK WN722N Wireless USB device recognized as Ethernet device by macOS

我正在为 TP-WN722N-v1 开发内核扩展 (kext),因为它不受支持。 我设法将固件上传到设备,它被系统识别,显然,它在 veeery 基本支持下工作。 我可以在设置面板的网络下找到它,但它被识别为 ethernet device,所以我还不能使用它。 我应该从哪里开始让系统将其视为wireless interface?我继承自正确的 class 吗?

我的class是这样开始的:

class TL_WN722N : public IOEthernetController

Apple 自己的 Wifi 驱动程序基于 IO80211Controller class,它是 IOEthernetController 的子class。

很遗憾,这不是 public KPI。曾经有一个 "leaked" 头文件,并且 Hackintosh 人群已经做出一些努力对其进行逆向工程。我不知道是否有人真的基于此得到了驱动程序。

我见过的任何制造商提供的第 3 方 wifi 驱动程序都跳过 IO80211Controller 并简单地直接子classed IOEthernetController,(重新)实现任何特定于 wifi 的东西直接在驱动程序中。任何用于选择 SSID 等的 UI 都需要通过自定义应用程序,并且不能在网络首选项窗格或菜单栏图标中使用 Apple 自己的 wifi UI。这可能需要大量工作,但绝对有可能。

请注意,从 macOS 10.15 Catalina 开始,已弃用 在 kexts 中实现 USB 网络设备驱动程序,任何此类 kext 都可能在 10.16 中停止工作。您应该使用 DriverKit 来定位未来版本的 macOS。