安装部份:
安装部份比较简单,如果您和我一样需要驱动独显,为了出现不必要的情况,请选择High Sierra 10.13.6(17G2208)
进行初始安装,相关Clover USB Install
文件、系统安装后的EFI
替换文件文末会提供(这也正是我目前使用的EFI
),您需要做的步骤如下:
下载以下Clove EFI
文件;
**Clover USB Install下载:
**安装完成后 EFI 下载:
- 下载映像并制
macOS
的U盘安装映像; - 解压
Clover USB Install
文件,得到Clover
文件并替换U盘EFI
引导分区下的Clover
; - 启选择U盘启动,进行常规
macos
安装,这之前都需要从U盘引导,直到完全进入macOS
系统; - 您已经在
SSD
上建好了EFI
分区,请挂载该分区,复制您下地并解压EFI文件下的Clover
,并替换原Clover
文件; - 启,拔下U盘,从固态硬盘启动
macOS
,如果您的机型与我的一样,您现在应该已经可以正常使用集显、有线网、亮度控制,音频和所有USB
端口、甚至触控板,电池状态也都正常了。
DSDT补丁
但由于硬件不同、出厂、操作等方面的问题,或许我的DSDT
文件无法在您的笔记本上生效,那么就需您自己对您的DSDT
文件重打补丁,只有正确的DSDT
,才能使触控板和电池状态正常工作,方法如下:
- 首先请下载下面的文件并解压:
**iasl下载:
**MaciASL下载:
- 挂载
EFI
分区,打开EFI-Clover-ACPI
,删除Origin
文件下的所有文件,删除patched
文件下的DSDT
文件; - 接下来我们需要提取您自己的
DSDT
,请重新启动电脑,在四叶草界面,依次按F2键、F4键
,然后再次按FN+F2键、FN+F4键
,然后进入您的macOS
; - 继续重复挂载步骤
EFI-Clover-ACPI
,此时Origin
文件下应该有很多文件,为了方便操作,请把整个Origin
文件拷贝到您的桌面; - 然后打开终端,进入我们刚刚下载的
iasl
文件目录,然后按Enter
,比如iasl
文件我们已解压在下载目录,那么我们可以输入命令:cd ~/Downloads
- 然后将
iasl
文件拷贝至/usr/bin
,输入命令:sudo cp iasl /usr/bin
- 再输入您的密码,然后按
Enter
,接下来,键入cd
(在cd
后面放置一个空格),然后将Origin
文件夹从桌面拖放到当前的命里窗口中,然后按Enter
; - 继续输入命令:
iasl -da -dl DSDT.aml SSDT*.aml
; - 现在我们打开前面下载的
MaciASL
程序,依次Flie-open
,选择桌面上的Origin
文件夹并找到文件:DSDT.dsl
(有2个DSDT
文件,您需要的文件末尾必须带有.dsl
); - 在
MaciASL
中打开后,单击应用程序顶部中间的补丁Patch
按钮。 将以下触摸版补丁复制并粘贴到补丁文本
Patch Text
窗口中,然后单击Apply
into method label _STA parent_label GPI0 replace_content begin Return (0x0F) end; into_all method label _CRS parent_label TPD0 replace_content begin ConcatenateResTemplate (SBFB, SBFI) end;
然后将电池状态补丁同样复制并粘贴到补丁文本
Patch Text
窗口中,然后单击Apply
into method label B1B2 remove_entry; into definitionblock code_regex . insert begin Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n end; into device label EC0 code_regex BIF1,\s+16, replace_matched begin IF10,8,IF11,8, end; into device label EC0 code_regex BIF2,\s+16, replace_matched begin IF20,8,IF21,8, end; into device label EC0 code_regex BIF3,\s+16, replace_matched begin IF30,8,IF31,8, end; into device label EC0 code_regex BIF4,\s+16, replace_matched begin IF40,8,IF41,8, end; into device label EC0 code_regex BST0,\s+16, replace_matched begin ST00,8,ST01,8, end; into device label EC0 code_regex BST1,\s+16, replace_matched begin ST10,8,ST11,8, end; into device label EC0 code_regex BST2,\s+16, replace_matched begin ST20,8,ST21,8, end; into device label EC0 code_regex BST3,\s+16, replace_matched begin ST30,8,ST31,8, end; into method label _BIF code_regex \^\^EC0\.BIF1, replaceall_matched begin B1B2(^^EC0.IF10,^^EC0.IF11), end; into method label _BIF code_regex \^\^EC0\.BIF2, replaceall_matched begin B1B2(^^EC0.IF20,^^EC0.IF21), end; into method label _BIF code_regex \^\^EC0\.BIF3, replaceall_matched begin B1B2(^^EC0.IF30,^^EC0.IF31), end; into method label _BIF code_regex \^\^EC0\.BIF4, replaceall_matched begin B1B2(^^EC0.IF40,^^EC0.IF41), end; into method label _BST code_regex \^\^EC0\.BST0, replaceall_matched begin B1B2(^^EC0.ST00,^^EC0.ST01), end; into method label _BST code_regex \^\^EC0\.BST1, replaceall_matched begin B1B2(^^EC0.ST10,^^EC0.ST11), end; into method label _BST code_regex \^\^EC0\.BST2, replaceall_matched begin B1B2(^^EC0.ST20,^^EC0.ST21), end; into method label _BST code_regex \^\^EC0\.BST3, replaceall_matched begin B1B2(^^EC0.ST30,^^EC0.ST31), end; # added for Razer Blade 15 (2018), per JomanJi into device label EC0 code_regex BIF0,\s+16, replace_matched begin IF00,8,IF01,8, end; into method label _BIF code_regex \(\^\^EC0.BIF0, replaceall_matched begin (B1B2(\^\^EC0.IF00,\^\^EC0.IF01), end; # utility methods to read/write buffers from/to EC into method label RE1B parent_label EC0 remove_entry; into method label RECB parent_label EC0 remove_entry; into device label EC0 insert begin Method (RE1B, 1, NotSerialized)\n {\n OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n Return(BYTE)\n }\n Method (RECB, 2, Serialized)\n // Arg0 - offset in bytes from zero-based EC\n // Arg1 - size of buffer in bits\n {\n ShiftRight(Add(Arg1,7), 3, Arg1)\n Name(TEMP, Buffer(Arg1) { })\n Add(Arg0, Arg1, Arg1)\n Store(0, Local0)\n While (LLess(Arg0, Arg1))\n {\n Store(RE1B(Arg0), Index(TEMP, Local0))\n Increment(Arg0)\n Increment(Local0)\n }\n Return(TEMP)\n }\n end; # buffer fields into device label EC0 code_regex (ECCM,)\s+(256) replace_matched begin ECCX,%2,//%1%2 end; into method label _BIF code_regex \(\^\^EC0.ECCM, replaceall_matched begin (^^EC0.RECB(0x60,256), end;
- 打完两个补丁后,单击关闭
Close
按钮 接下来操作非常重要,这关系到
Razer Blade 15(2018)
基本版本是否能正常使用触摸板,返回MaciASL
窗口,点击Edit-Find
,查找SSCN
,您会看到上方50638
行(这里是我
DSDT文件
SSCN的位置,并不一定和您的一样,仅做为参考,更多的需要您通过下面的图片去对比,找到正确的行数位置)
的Scope (_SB.PCI0.I2C0)
,I2C0
即为我的设备,接下来复制下方的SSCN及FMCN
部份(确认无误后删除该位置代码,也可以直接剪切,我们需要把它粘贴在其它合适的位置,注意语法符号):} Method (SSCN, 0, NotSerialized) { Return (PKG3 (SSH0, SSL0, SSD0)) } Method (FMCN, 0, NotSerialized) { Return (PKG3 (FMH0, FML0, FMD0)) }
- 为了安全其见,您可以把这代剪切的代码粘贴至其它处,如记事本等,以下两张图分别
DSDT
的文件SSCN、FMCN
的原始位置及剪切后的页面内容,可做以参考:
- 接下来我们需要把
SSCN、FMCN
放到正确的位置,查找TPDO
这有很多处,您可以参考下面的截图找到具体要修改的位置,它位于Device
块之外,但位于Scope内
(确保Scope
和Device
相同,例如I2C0
和TPD0
)我的位置在47569行
在其上方粘贴以上代码,请参考以下修改前后的图片:
- 确认无误后后单击编译
Compile
按钮,并确保没有出现错误error
; - 然后返回
MaciASL
,选择File-Save AS
,然后将DSDT
文件保存目标更改为您的桌面,将“文件格式”更改为ACPI Machine Language Binary
。确保名称仅为DSDT
,然后单击保存。 - 最后再次打开
EFI-Clover-ACPI-Patched
,然后将刚刚保存的新修补的DSDT
粘贴到Patched
文件夹中。重新启动笔记本电脑,现在,您应该具有可用的电池状态和触控板了!
2 comments
请问您是2018标准版还是精英版(1060,1070)?
标准版,I7-8750H+GTX1060