有大佬成功安装13beta1,并且成功驱动I225-V这卡的吗?手里这块Rog Z690-A DDR4吹雪
在macOS12.4下面:直接用device-id:F3158680 可以驱动,系统显示加载为Appleintell210Ethernet,需要手动设置全双工。使用Disk Speed Test测试NAS网盘的时候写入可以达到100MB/s,读取速度会从100MB/s迅速掉到50MB/s。
但是在macOS13beta1下面:
发现下面4种方法驱动会出现不同现象:
a.直接加载编译好的DSDT.aml(这个文件我这块主板的),系统会自动安装AppleEthernetE1000 的驱动,网卡只能自动分配为100Mbps的速度,不会死机和自动重启。
b.使用device-id:F3158680 ,无法加载AppleEthernetE1000 的驱动,也无法识别到网卡,不会出现频繁死机重启的现象。
c.加入参数e1000=0,无法加载AppleEthernetE1000 的驱动,无法识别到网卡,不会出现频繁死机重启的现象。
d.如果不仿冒ID,不加任何参数,不加入DSDT.aml,系统会自动安装AppleEthernetE1000 的驱动,会出现频繁死机重启的现象。
如果出现频繁死机重启的现象的,可以通过 删除:网络-以太网服务后解决这种死机重启情况,缺点就是有线网卡就没法使用了。
如果想成功加载E1000驱动并且能正常稳定使用的话,在网上找到了一个方法,核心就是DMAR的修改:【来源:https://benjenq.pixnet.net/blog/post/47745510】
这个方法我今天测试过了,macOS12.4和macOS13beta1都能成功的自动驱动为AppleEthernetE1000,
使用Disk Speed Test测试NAS网盘的时候写入可以稳定达到100MB/s,读取速度也是稳定100MB/s。
macOS13beta1 也不再出现死机或者自动重启的显现了。可以说是基本完美了。
操作步骤如下:
1. 首先确认BIOS 的VT-d 有打开,OpenCore config 设定的 Kernel > Quirks > DisableIoMapper 为True 。(也就是BIOS 内VT-d 有启用,但是 OpenCore 遮蔽 VT-d 机制的状态)
2.系统设置-网络-以太网:TCP/IP:使用DHCP,硬件-配置:自动
3.使用DMAR.aml(方法:附加)
4.OpenCore 的config.plist 设定如下:
ACPI > Add > [n] >
Comment: DMAR TableEnabled <bool> : TruePath <String> : DMAR.aml (即上个步骤产生的档案)
DeviceProperties > PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) : 拿掉或加上# 做为备注NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82 > boot-args : 删除引导参数dk.e1000=0 e1000=0(如果有的话)Kernel > Quirks > DisableIoMapper调整为 FalseACPI > Delete >[n] 加入:
Comment : Drop OEM DMAR TableEnabled <boolean>:TrueOemTableId <data>:45444B3220202020TableLength <integer>:0TableSignature <data>:444D4152(注意:使用OCC添加的话直接将TableSignature <data>成DMAR就行了,最后用Proper Tree检查TableSignature <data>是否为444D4152)
将config.plist 存挡
原理:config.plist 的设定会依照ACPI > Delete 的描述,删除主机板载的OEM DMAR Table 资料,并载入自订修正后的DMAR.aml 资料。
修改项目的config.plist 如下:
最后重启开机。若Intel VT-d 启用且I225-V 有线网卡新版驱动成功载入的话,网卡的部分一样亮绿灯,且以太网卡驱动也是新版。
开启VT-d、修改DMAR,费了那么多功夫载入新版驱动,到底有什么好处?
若将来哪天新版 macOS 把旧版驱动拿掉,到时候还是得面对,所以趁现在学起来也好。
从macOS 11.4 开始,系统预设载入新的网卡驱动(com.apple.DriverKit-AppleEthernetE1000.dext),这导致本来的板载I225-V网卡用户使用11.3 以前的OpenCode config.plist 设定且不更改的话,会发生当机重启的现象,所以需在boot-args 加入参数 dk.e1000=0 (masOS 12.3 以后改为 e1000=0 )强迫载入旧版 AppleIntelI210Ethernet.kext 驱动来避免系统崩溃,后来也就一直这么使用旧驱动。直到近日得知并解决Intel I225-V 网卡于Monterey 系统的问题后,才大概知道新版驱动造成系统崩溃的原因:
新版网卡驱动依赖 Intel VT-d 功能(IO 虚拟化直接存取技术),而Intel VT-d 却是长期以来黑苹果的死穴。以往黑苹果解决VT-d 冲突的方式不外乎两种:(1) 到BIOS 设定关闭VT-d 功能(2) 若设备未提供VT-d 关闭选项且功能预设为开启,或是BIOS 将Intel VT-d 设定启用时,则必需在OpenCore config 设定的Kernel > Quirks 底下,将DisableIoMapper 设定 True 来绕过VT-d 机制。这两种方法都会让macOS 停用VT-d ,算是逃避问题的手段。
所以了,如果黑苹果要使用新版驱动,就意味着无法规避VT-d 机制,得面对处理这个死穴。而 VT-d 使用 DMA Remapping 的技术,必需有一组DMA Rempping Table 数据(名称为DMAR)储存在BIOS 的 ACPI 表内。因此有人研究出解决方案,只需适当修正DMAR 的内容,就能解除这个死穴,看来这又是Apple 一贯「软硬体深度绑定」的套路。
附加:
以Rog Strix Z690-A DDR4吹雪 来说,操作的方法如下:
(一)取得修正后的DMAR 数据表
DMAR 数据表跟USB Port Map 一样,不同主板就会有不同的内容。Rog Strix Z690-A DDR4吹雪可以直接拿来用,或者是自行从自己的主板提取,操作方式如下(参考来源https://www.hackintosh-forum.de/forum/thread/47303-probleme-mit-virtualbox-auf-dem-hackintosh/?postID=710720#post710720):
1. 首先确认BIOS 的VT-d 有打开,OpenCore config 设定的 Kernel > Quirks > DisableIoMapper 为True 。(也就是BIOS 内VT-d 有启用,但是 OpenCore 遮蔽 VT-d 机制的状态)
2. 执行MaciASL 工具,文件 > 从ACPI 获取> DMAR
则会开启系统内的DMAR 表。由于内容有点长,所以以下分成「上半部」、「下半部」两张图说明:
在上半部先注意到黄框内两个值:
Signature : "DMAR"Oem Table ID : "EDK2 " (注意右边有四个空格)
下半部是重点:
反白部分(即将两个[Reserved Memory Region] 区段)删除(我的吹雪这块板子就一个[Reserved Memory Region] 区段,有的主板是两个。)最下方Raw Table Data 的部分,跟右边绿色的部分对照得到:
"DMAR" 的HEX 值为44 4D 41 52"EDK2 " 的HEX 值为45 44 4B 32 20 20 20 20
也就是说,针对DMAR 的部分,要做两件事:
删除两个 [Reserved Memory Region] 区段记下以下资讯:
Signature : "DMAR",HEX 值为44 4D 41 52
- Oem Table ID : "EDK2 " HEX 值为45 44 4B 32 20 20 20 20
删除完两个区段后如下图,依照下图黄色标示空两行。
3. 修改后的DMAR 存挡到EFI/OC/ACPI/ 底下,档名不限,可取名为DMAR.aml。
其实说穿了,修正的DMAR 也只是删掉[Reserved Memory Region] 内容罢了。这个部分的介绍就是DMAR的获取方法。 |