概述

前几天转发了 macOS 10.13 High Sierra 的 IO80211Family.kext,发现有这个需求的同学还是挺多的,而且有需求的本人似乎都不太明白为什么需要这个。好吧,这里重开一文明确一下。

在旧版本的 macOS 系统中,内置了 IO80211Family.kext 驱动,主要用于驱动无线网卡。苹果公司总是因为这样那样的原因(其实还是市占率低没有历史包袱)几乎每几年就要放弃一大批硬件的向后兼容,因此重新注入驱动可在新版本 macOS 中找回老硬件的原生支持,对于 IO80211Family.kext 来说,那就是能提供老款无线网卡的支持啦。

 

安装

  • 文件包中提供了从 10.11 到 10.15 的 IO80211Family.kext,基本使用方法是放到 Clover 或 OpenCore 对应目录(OpenCore 还需要在 config 中启用),不要放到 S/L/E 目录;
  • 「注意」当你在引导工具中注入了此类老款驱动时,如果要运行老版本系统时,一定要关闭注入,或在 config.plist → Kernel → add 添加 MinKernel 的限制,具体值如下。如不按此操作会因 kext 冲突导致系统功能不正常或无法引导;
Sierra 及以上 = 16.0.0
High Sierra 及以上 = 17.0.0
Mojave 及以上 = 18.0.0
Catalina 及以上 = 19.0.0
Big Sur 及以上 = 20.0.0

 

支持的设备 ID

  • IO80211ElCapitan.kext
    • 推荐持有老博通芯片的用户在 macOS 10.14 及以上使用
    • 设置 MinKernel 为 16.0.0
    • 支持的设备 ID
      • 博通 - AppleAirPortBrcm43224
      • pci106b,4 = 未公开的设备
      • pci14e4,4311 = BCM4311
      • pci14e4,4312 = BCM4311
      • pci14e4,4313 = BCM4311
      • pci14e4,4318 = BCM4318
      • pci14e4,4319 = BCM4318
      • pci14e4,431a = 未知设备
      • pci14e4,4320 = BCM4306
      • pci14e4,4324 = BCM4309
      • pci14e4,4325 = BCM4306
      • pci14e4,4328 = BCM4328
      • pci14e4,432c = BCM4322
      • pci14e4,432d = BCM4322

 

  • IO80211HighSierra.kext
    • 推荐持有老高通 Atheros 芯片的用户在 macOS 10.12 及以上使用
    • 设置 MinKernel 为 18.0.0
    • 支持的设备 ID
      • Atheros - AirPortAtheros40
      • pci168c,30 = AR93xx
      • pci168c,2a = AR928X
      • pci106b,86 = 未公开的设备
      • pci168c,1c = AR242x / AR542x
      • pci168c,23 = AR5416
      • pci168c,24 = AR5418

 

  • IO80211Mojave.kext
    • 推荐持有老博通 BCM4322 芯片的用户在 macOS 10.15 及以上使用
    • 设置 MinKernel 为 19.0.0
    • 支持的设备 ID
      • 博通 - AirPortBrcm4331
      • pci14e4,432b = BCM4322

 

  • IO80211Catalina.kext
    • 推荐持有老博通 BCM4331 和 BCM43224 芯片的用户在 macOS 11.0 及以上使用
    • 设置 MinKernel 为 20.0.0
    • 支持的设备 ID
      • 博通 - AirPortBrcm4360
      • pci14e4,4331 = BCM4331
      • pci14e4,4353 = BCM43224

 

其它信息

博通 BCM4331

使用 BCM4331 芯片组的用户需要注意,macOS Big Sur 其实仍然部分程度上支持这个无线网卡,但是需要使用仿冒设备 ID。与注入修改过的 IO80211.kext 相比,使用仿冒 ID 是一种更靠谱的解决方法,但是由于仿冒设备 ID 的效果会始终存在于 macOS 中,因此可能会破坏老版本的 macOS(由于 Windows 或 Linux 中不存在 DeviceProperties,无需担心)。

我们需要使用 gfxutil 来完成这个部分(点击下载),解压 gfxutil 到桌面,然后打开 终端.app,输入以下命令:

~/Desktop/gfxutil | grep -i "14e4:4331"

如果你的终端无法定位 gfxutil,可直接把 gfxutil 拖进终端自动补全路径,然后输入后续部分内容。

运行后,你将得到类似下面的结果:

00:1f.6 14e4:4331 /PC00@0/PXSX@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)

其中 PciRoot(0x0)/Pci(0x1F,0x6) 就是设备的具体位置,把 Pci 位置这个添加到:

  • OpenCore:config.plist → DeviceProperties → add
  • Clover:config.plist → Devices → Properties → add

然后,添加具体值,如下:

  • compatible
    • 类型 String
    • "pci14e4,43ba"
  • device-id
    • 类型 Data
    • BA430000

最后重启生效(Clover 未验证是否有效)。

 

不支持的高通 Atheros 芯片组

对于部分 AR9285/7 和 AR9280 芯片组,需要在无线网卡上仿冒设备 ID。这是由于 AirPortAtheros40.kext 具有内部 PCI ID 复检功能,手工修改扩展设备 ID 列表无法生效。

我们需要使用 gfxutil 来完成这个部分(点击下载),解压 gfxutil 到桌面,然后打开 终端.app,输入以下命令:

~/Desktop/gfxutil | grep -i "pci168c:002b|pci168c:002e"

如果你的终端无法定位 gfxutil,可直接把 gfxutil 拖进终端自动补全路径,然后输入后续部分内容。

运行后,你将得到类似下面的结果:

00:1f.6 pci168c:002e /PC00@0/PXSX@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)

其中 PciRoot(0x0)/Pci(0x1F,0x6) 就是设备的具体位置,把 Pci 位置这个添加到:

  • OpenCore:config.plist → DeviceProperties → add
  • Clover:config.plist → Devices → Properties → add

然后,添加具体值,如下:

  • compatible
    • 类型 String
    • ""pci168c,2a""
  • device-id
    • 类型 Data
    • 2A000000

最后重启生效(Clover 未验证是否有效)。

 

声明:本站部分资源来自网络,目的在于给想体验黑苹果的人一个方向,节约大家的时间,本站所有收费及捐赠仅用于网站运营以及维护资金,如无特殊说明或标注,仅限学习交流,不能用于商业用途,软件类目如用于商业用途,请到官方购买正版,追究法律责任与“A7MAC”无关!
注明:所有文件均归属于原作者,本网站只提供下载。如果您不希望你的文件被本网站收录,请发送邮件到shaengli@163.com,我将移除文件