本帖最后由 paladin4fan 于 2018-8-30 20:21 编辑
上周电脑突发故障,经过排查后发现是主板GG,一不做二不休换了最新的Coffee Lake平台,分体水冷主机拆装都够折腾,前后弄了一个星期终于有电脑用了,然后开始更折腾的玩意儿High Sierra。机子的整体配置见签名,这里简单说一下细节: ROG Strix B360 F 这块主板,声卡是ROG定制的ALC1220芯片,重命名为S1220A,网卡是Intel的I219-V,背板三个USB3.1 Gen2 (2TypeA+1TypeC),2个前置USB3.0,4个后置、2个前置的USB2.0。 先说各个部件的驱动,网卡是最简单的,下载最新版的IntelMausiEthernet.kext放入Clover文件夹中即可成功驱动,RehabMan提供的各个版本下载地址:https://bitbucket.org/RehabMan/os-x-intel-network/downloads/ USB同理,用USBInjectAll.kext即可成功使用(除了前置2.0我是接了风扇盒无法测试,其他口接鼠标、手柄均可正常使用)。依旧是RehabMan提供的下载地址:https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/。此外需要在Kext To Patch中添加解除USB限制补丁,否则所有3.0/3.1接口都只有2.0速度 Name | Find[HEX] | Replace[HEX] | Comment | MatchOS | com.apple.driver.usb.AppleUSBXHCI | 837D940F 0F839704 0000 | 837D940F 90909090 9090 | Remove USB port limit in XHCI kext | 10.13.x |
请注意,在10.13.6开始补丁数值发生变化,find字段变成了837D880F 0F83A704 0000,replace换成了837D880F 90909090 9090。
声卡也是很容易就驱动成功的。S1220A芯片基本上用Lilu.kext+AppleALC.kext配合原版驱动,在Config.plist中添加Layout ID(我是1,有的人是7)、勾选ResetHDA就可以加载AppleHDA.kext并成功识别声卡。然而H310/B360/H370/Q370系列最新的芯片组板载声卡的Device ID与其他芯片组不同,不被AppleHDAController.kext识别,需要添加kext补丁才能发声。在Config.plist的Kernel And Kext Patches里加入如下补丁:
Name | FIND[HEX] | Replace[HEX] | comment | AppleHDAController | 3D70A1 | 3D48A3 | Unsupported_Audio_Device_ID_Coffee_Lake | UPDATE:使用1.2.7以上版本AppleALC配合原版AppleHDA即可驱动,无需再打kext补丁
显卡比较特别,要分情况看待。我这里的情况是,High Sierra似乎不能同时让核显和独显一起输出画面。
使用单独显的情况最简单,A卡经历了10.11的唤醒黑屏到10.12初期部分型号需要插核显才能启动,到了10.13.4终于整顿了一下驱动,我这块FuryX在BIOS关闭核显的情况下什么都不做就能免驱直接进入系统,完全驱动。不完美的地方就是型号显示的是AMD R9 XXX,修复型号要么给kext打补丁,懒人直接在Clover文件夹里丢一个Lilu+Whatevergreen.kext即可,我加入该kext即可正确显示AMD Radeon FURY X。 单核显启动也比较容易,对于i5 8xxx和i7 8xxx的核显,先将SMBIOS文件修改为iMac 18.1机型,勾选Inject Intel,注入FakeID“59128086”和ig-platform-id"59120000"即可启动(我不使用这两项一样可以启动,Clover的Inject自动为我FAKE了),为了避免DVMT五国在Clover里加入IntelGraphicsDVMTFixup.kext,建议再加上IntelGraphicsFixup.kext(两个Kext都依赖Lilu)。但是会出现启动完黑屏,需要打kext补丁修改FrameBuffer(感谢坛友@x_scott的帖子) 这里特别提醒一下,部分用户使用特定的USB设备可能会出现睡眠立即唤醒问题,在开启Powernap的情况下可能表现为睡眠立刻进行darkwake唤醒,在一分钟后才进入正常睡眠,并且每次darkwake都要经过两次darkwake唤醒+继续睡眠过程。对于这类用户需要对USBInjectAll.kext打SSDT补丁。 英文原版教程传送门: 坛子里好像也有翻译过的教程,这里就不详细说了,主要就是用SSDT让USBInjectAll.kext只注入自己主板会使用的USB端口,对于某些端口较少的设备,该SSDT可以让你直接免除端口限制补丁,但是在B360 F上端口数量是多于15个,所以SSDT的作用主要就是来修复睡眠问题。原版SSDT-UIAC-ALL.dsl的下载地址:https://github.com/RehabMan/OS-X ... r/SSDT-UIAC-ALL.dsl 这里先放一份把其他平台内容删除、只保留B360(应该是Coffee Lake通用)的DSL: 然后是我编译过的本主板直接可用的AML: 我不知道端口序号的使用是不同型号不同还是同型号换一块主板也不同了,如果同型号使用这份AML有USB端口不能识别、使用,那么得下载整份的DSL自己修改了。简单来说就是下载、打开IORegistryExplorer这个程序,找到XHC(应该是300系列都只有这一个控制器了),然后插拔你的设备在其子类目下观察哪个端口有设备增减(USB2.0看HSxx其中包括插在3.0接口上的2.0设备,3.0看SSxx,3.1 gen2估计是看USR我没设备测试不了),把所有USB端口都测出来以后在DSL文件里删除其余没用到的端口部分。然后把原生2.0的端口链接值设置成0,3.0所用的2.0端口和3.0端口都设置成3。另外,如果使用了USB蓝牙的同学,也要自己找出蓝牙占用的USB端口号并把链接值设置成255(内建)。例子如下: - "HS01", Package() //此处是端口号,HSxx是2.0设备(无论物理接口是2.0还是3.0)
- {
- "UsbConnector", 3, //此处是链接值,物理接口2.0填0,3.0填3,内建是255
- "port", Buffer() { 1, 0, 0, 0 },
- },
复制代码另外,如果你和我一样用了TT Riining RGB的软件控制版风扇,或者是其他用内置USB口进行检测、设置的风扇、电源等类似设备,你可能会在系统中看到这个设备作为集线器,然而它们会导致睡眠立刻唤醒/powernap要darkwake两次的问题,SSDT里改成内建,睡眠正常但是唤醒后会在IORegistryExplorer中看到它们被移除,这时候重启到Windows后像TT Riining的控制软件则会报错找不到风扇控制器,必须重新插拔电源。因此这类设备直接把端口从SSDT里移除,让macOS系统直接识别不到它,只保持供电即可,睡眠正常了,Windows下的控制软件也能正常工作。 hibernate=3/25或者开启Standbydelay选项、需要用lilu的插件(我这里用休眠有50%几率唤醒后死机):https://github.com/lvs1974/HibernationFixup/releases。 附上上述所有kext文件: 顺便附上Drivers64UEFI的目录截图: 独显用Config: 核显用Config: 如果一直出现Hibernate选项则取消勾选Boot页下的StrictHibernate 均未填写三码,请自行生成或者填写。 |