【问题标题】:TP-LINK WN722N Wireless USB device recognized as Ethernet device by macOSTP-LINK WN722N 无线 USB 设备被 macOS 识别为以太网设备
【发布时间】:2020-05-19 08:49:55
【问题描述】:

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

我的课是这样开始的:

class TL_WN722N : public IOEthernetController

【问题讨论】:

  • 更新:我在答案中添加了 USB 网络驱动程序 kext 已被弃用的事实。您可能想要使用 DriverKit 而不是实现 kext。
  • 我昨天刚读到这篇文章,我想我很快就会转向 DriverKit,但我的重点是让它首先工作。感谢您指出。

标签: macos driver kernel-extension


【解决方案1】:

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

很遗憾,这不是一个公开的 KPI。曾经有一个“泄露”的头文件,Hackintosh 人群已经努力对其进行逆向工程。我不知道是否有人真的有一个基于此工作的驱动程序。

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

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

【讨论】:

  • 它的 USB 以太网 设备 kext 驱动程序已弃用。从 macOS 11 开始,DriverKit 中尚不支持 80211 设备驱动程序。
  • @WeiShen IONetworkingFamily 从来没有直接支持 802.11 设备。正如我在回答中所说,我看到的子类IOEthernetController 作为IO80211Controller 的所有工作的第 3 方 wifi 驱动程序都是私有的。如果NetworkingDriverKit 不足以满足您的目的,我强烈建议您直接与 Apple 联系,讨论推荐的行动方案。我确实建议等待 DriverKit 获得原生 802.11 支持,因为它很有可能永远不会到来。
  • @WeiShen 上周发布的 macOS 11 beta 已经拒绝加载 USB 网络适配器 kexts。如果您负责网络驱动程序 kext,您需要现在将其移植到 DriverKit,否则在 2020 年末(可能)发布时升级到 macOS 11 的用户将无法再加载您的驱动程序.
猜你喜欢
  • 2011-01-30
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多