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

TP-LINK WN722N无线USB设备被macOS识别为以太网设备,macos,driver,kernel-extension,Macos,Driver,Kernel Extension,我正在为TP-WN722N-v1开发一个内核扩展(kext),因为它不受支持。 我成功地将固件上传到设备上,它被系统识别,并且,它正在使用Veery基本支持。 我可以在“设置”面板的“网络”下找到它,但它被识别为以太网设备,因此我还不能使用它。 我应该从哪里开始使系统将其视为无线接口?我是从合适的班级继承来的吗 我的课是这样开始的: class TL_WN722N : public IOEthernetController 苹果自己的Wifi驱动程序基于IO80211Controller类,它

我正在为
TP-WN722N-v1
开发一个内核扩展(
kext
),因为它不受支持。 我成功地将固件上传到设备上,它被系统识别,并且,它正在使用Veery基本支持。 我可以在“设置”面板的“网络”下找到它,但它被识别为
以太网设备
,因此我还不能使用它。 我应该从哪里开始使系统将其视为无线接口?我是从合适的班级继承来的吗

我的课是这样开始的:

class TL_WN722N : public IOEthernetController

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

不幸的是,这不是公共KPI。曾经有一个“泄露”的头文件,黑客们已经做出了一些努力来对其进行反向工程。我不知道是否有人真的让一个司机根据这个工作

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


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

更新:我在答案中添加了一个事实,即不推荐使用USB网络驱动程序KEXT。您可能想使用DriverKit而不是实现kext。我昨天刚刚读到这篇文章,我想我很快就会转向DriverKit,但我首先要集中精力让它工作。感谢您指出。它的USB以太网设备kext驱动程序已被弃用。从macOS 11开始,DriverKit中还不支持80211设备驱动程序支持。@WeiShen在
IONetworkingFamily
中从未直接支持802.11设备。正如我在回答中所说,我见过的子类
IOEthernetController
io801controller
的所有工作的第三方wifi驱动程序都是私有的。如果还不够好,我强烈建议您直接与苹果公司联系,讨论建议的行动方案。我不建议等待DriverKit获得本机802.11支持,因为它很可能永远不会出现。@WeiShen上周发布的macOS 11测试版已经拒绝加载USB网络适配器KEXT。如果您负责网络驱动程序kext,则需要立即将其移植到DriverKit,否则在2020年(可能)后期发布macOS 11时升级到该驱动程序的用户将无法再加载您的驱动程序。