黑苹果从入门到精通 篇七:XPS 9360完美黑果实战
追加修改(2019-12-23 19:39:18):
触控板问题就是I2C驱动没成功,可以用sudo kextcache -i /也可以用kext Utility,如果这样还不行,说明I2C有问题
追加修改(2019-10-27 20:30:43):
今天想试试Sidecar,就把Catalina也升级上去了,很顺利,什么问题都没有,有些人经常询问我触控板失效怎么办,其实就Inject with Kext一次就行,很简单。升级注意事项看我X99的补充说明就行了。
硬件配置
CPU: Intel i7 8550U
Mem: LPDDR3 2133Mhz 8G*2
Display: Sharp 1449 FHD 1080p Non-TouchScreen
M.2: Toshiba NVME XG5 512G
Wireless: DW1560/BCM94352z
本次采用1080P非3K触摸屏国行顶配版本,因为HiDPI会对睡眠唤醒造成一定影响,暂时不推荐3K版本。
可用功能
显卡
声卡(耳机外放自动切换)
无线网卡
蓝牙
USB定制
雷电热拔插
睡眠唤醒(盒盖正常)
CPU变频
触控板(支持多种手势)
屏幕亮度可调节
键盘灯两级可控
键盘快捷键定制
摄像头可用
综合体验非常完美,I2C触控板远超其他版本,当然略逊于原生触控板,盒盖睡眠开盖唤醒也很正常。
BIOS
由于该机器现有的BIOS版本为2.11.0,所以我们需要对BIOS进行降级,降级为2.9.0,BIOS文件可以从Dell官网下载,请注意,降级需要在BIOS的Maintenance-BIOS Downgrade中勾选Allow BIOS Downgrade。
General-Boot Sequence-Boot List Option [UEFI]
System Configuration-SATA Operation [AHCI]
-SMART Reporting [Enable SMART Reporting]
-Thunderbolt Adapter Configuration [Disable Thunderbolt Boot&Pre-Boot]
-Thunderbolt Adapter Configuration [Security level - No Security]
-USB PowerShare [Enable USB PowerShare]
-Unobtrusive Mode [Enable Unobtrusive Mode]
-Miscellaneous Devices [Disable SD Card& SD Card Boot& Read-Only Mode]
Security-Computrace [Deactivate]
-CPU XD Support [Enable CPU XD Support]
Secure Boot-Secure Boot Enable [Disabled]
Intel SGE-Intel SGE Enable [Disbaled]
Power Management-USB Wake Support [Disable Wake on Dell USB-C Dock]
-Primary Battery Charge Configuration [Standard]
Post Behavior-Numlock Enable [Enable Numlock]
-Fn Lock Options [Lock Mode Disable/Standard]
-Fastboot [Minimal]
Virtualization Support-Virtualization [Enable]
-VT for Direct I/O [Disable]
Wireless-Wireless Switch [Disable WLAN&Bluetooth]
SupportAssist System Resolution-Auto OSRecovery Threshold [Off]
创建Clover EFI
首先我们需要下载the-darkvoid/XPS9360-macOS,解压开后如下图所示:
这个Repo创建的非常精巧,利用XPS9360.sh我们可以实现整个仓库的update和各种定制不定。我们现在需要用到的就是CLOVER文件夹,将其整个复制到U盘EFI目录下,接下来我们需要对config.plist进行操作。
使用Clover Configuration打开config.plist后显示如下
第一步要做的还是三码,我们需要替换掉原有的三码。即SMBIOS/System Parameters-Custom UUID/RT Variable-ROM三块。
其余我们均不需要改动,但是我可以这里简单为大家介绍一下相应的功能。
通过观察ACPI的DSDT Hot Patch我们发现了除了一个叫change SAT0 to SATA, optionally pair with SSDT-SATA.aml的热修复被关闭外,其余都启用,并且搭配了对应的SSDT,由于还没开启,我们暂时不去动它,等装完后再根据IORegistryExplorer的输出来判断功能和调整。Generate Option中PluginType已启用,搭配CPU HWPEnable应该理论上可以实现正确的变频。
在Boot Section中我们可以看到Boot Argument有两个很奇怪的参数,其中igfxcflbklt=opcode貌似是WhateverGreen.kext的,通过查阅github repo上的参数,类似的有一个igfxcflbklt=1和背光相关,具体不清楚。
而darkwake则是和power nap相关,但是=4我从来没见过,对应的功能未知,关于darkwake的参数说明如下。
darkwake=0 -> Power Nap 禁用
darkwake=1 -> Power Nap 开启 (机器完全唤醒:风扇打开,显示器打开。每小时一次。)
darkwake=2
darkwake=3
darkwake=4
darkwake=5
darkwake=6
darkwake=7
darkwake=8 -> Power Nap 开启 (机器完全唤醒:有时候显示器打开,有时候不会。)
darkwake=9
darkwake=10 -> Power Nap 开启 (机器部分唤醒:风扇,显示器不打开,系统日志记录唤醒时间。 时光机备份在睡眠模式进行,每小时一次。)
darkwake=11
除此以外为了便于调试,我们添加-v、keepsyms=1、debug=0x100参数,但实际上我有九成九的把握是可以正常安装的,所以其实加不加都无所谓。
在比较重要的Kernel and Kext Patch中,除了DellSMBIOSPatch外基本全空,没什么好讲的。
在EFI/Clover/ACPI/patched下也已经有大量SSDT准备好了,但实际上这个SSDT是存在问题的,除非你和darkvoid一模一样,不然之后仍然需要XPS9360.sh进行修复。
通过观察Kext文件夹我们可以知道,这个EFI使用了VirtualSMC替代FakeSMC,这个东西我没用过,所以不知道有哪些问题,除此以外VoodooI2C是用来控制触屏、触控板和摄像头的驱动,我也没用过。VoodooPS2Controller则是控制键盘和PS2触控板的,实际体验有待之后观察。
还需要注意,这里缺少关于蓝牙的驱动,所以安装完后不要忘记蓝牙修复。
接下来很重要的一点,就是在EFI/Clover/tools中,我们需要将Shell64U.efi改为Shell64U.efi.bak,而DVMT.efi改名为Shell64U.efi,我们之后需要使用它来对BIOS中一些无法修改的选项进行修改。
安装macOS Mojave
在进入Clover引导界面后,通过左右键移动到Shell64U.efi,启动DVMT.efi
首先我们要使用DVMT.efi修改一些BIOS选项
修改命令如下
setup_var 0x4de 0x00
setup_var 0x785 0x06
setup_var 0x786 0x03
需要注意!由于不同机型甚至不同BIOS都有可能作出一些修改,所以在修改前请setup_var 0xxxx的方式查看对应的返回值,如果无返回值,请不要贸然修改。
最后输入exit返回Clover界面,回车引导macOS安装程序
进入安装界面后发现了一个问题,触控板貌似失灵了,这其实在我预料之中,毕竟I2C是和DSDT相关的驱动。由于Install界面也没办法调试,先接上USB鼠标,装完再说。
然后又碰到了Windows磁盘两个分区Disk Utility无法进行格式化为APFS,使用Terminal输入
diskutil eraseDisk apfs Macintosh HD /dev/disk0
接下来正常进行macOS安装即可。
Mojave完善过程
键盘映射
安装完后最大的一个感受是发现键盘已经被完美映射,F1静音 F2音量减小 F3音量增大 F4-F6控制播放 F10键盘两级背光 F11-F12控制显示器亮度。完美符合XPS键盘原生功能。赞!
开启所有来源
上一篇文章忘记跟大家说了,有人问我打开APP有问题,实际上是没有开启所有来源,在Terminal中输入
sudo spctl --master-disable
输入密码即可。在darkvoid文件中的 XPS9360.sh --enable-3rdparty 也可以解决这个问题
触控板VoodooI2C
装完后首当其中的就是触控板的问题,这里我看了下VoodooI2C的官方文档。发现这个驱动做的不错但是需要配合DSDT使用,所以实际上应该是DSDT部分出现了问题,后来我又看了XPS9360.sh,惊奇的发现原来有一个 --compile-dsdt 的参数,会将本机的ACPI表重编译一遍放到./Clover/ACPI/patched目录下,我们只要将这部分重编译的aml复制到EFI/Clover/ACPI/patched目录下即可。
由于darkvoid根本没有教程,所以到现在为止我才完全明白darkvoid这个Repo的更新思路,所有的必备软件都被保存在这个位置,同时借助XPS9360.sh可以实现大部分的排错和配置,并且 XPS9360.sh --update 可以基于git的版本控制可以让这个Repo始终保持最新。
这里放出我的触控板设置,供大家参考。
三指拖移
由于老Macbook Pro留下来的习惯,我比较喜欢三指拖移而非ForceTouch那种按压拖移,所以前面我将部分三指操作改为了四指操作,这样可以减少误操作。
三指拖移现在被隐藏在系统偏好-辅助功能-交互-鼠标与触控板-触控板选项-启用拖移-三指拖移中。
关闭TouchID
再次感谢darkvoid,由于darkvoid杰出的工作,很多问题得以轻松解决。
./XPS9360.sh --disable-touchid
开启SSD Trim
如果你使用的不是M.2 NVME固态,而是M.2 SATA固态,那么我们安装完之后就需要手动启用SSD Trim,在之前上一篇X99的文章中我也有讲过如何使用KernalToPatch修复SSD Trim。
这里我们使用另一种不同的方法
./XPS9360.sh --enable-trim
或者也可以使用 sudo trimforce enable
耳机无声问题
如果这个时候你使用耳机,会发现接上耳机后XPS不再发声,但是耳机内也没有声音,这里我们就需要用ComboJack补丁,使用也很方便
./XPS9360.sh --combo-jack
此时输出结果告诉我们需要重启,并且在使用耳机输入的时候,最好关掉“使用环境噪音降低功能”。
重启后插入耳机,它会弹出提示,询问plug in的设备是Line in(麦克风)、Headset还是Headphones,Esc也可以使用默认方案,一般不会错。从因为角度,Headset和Headphones,前者是带耳麦的,而后者是不带耳麦的耳机(如果我没记错的话),但是根据我的实测,Headset耳麦输入会失效,Headphones则没有这个问题,但我很怀疑是我这个耳机耳麦坏了,所以一旦选择Headset切换为耳机输入音频,就会造成无音,希望有人能帮忙测试更多的。
额外检验是否成功的方法也很简单,我们只要在IORegistryExplorer中寻找HDEF,并查看com_XPS_SetVerb下是否具有VerbStubUserClient这个设备
蓝牙修复
在之前的文章中我们已经说过如何驱动蓝牙,我们只需要将BrcmPatchRAM2和BrcmFirmwareData放入kexts/Other目录下即可,我不太喜欢BrcmFirmwareRepo,因为我觉得每次升级都要重新注入比较麻烦,诸位可以根据自己的喜好进行选择。
CPU/GPU降压
在darkvoid Repo中写出了使用DVMT.efi对CPU/GPU进行降压的方法
Overclock, CFG, WDT & XTU enable
0x4DE -> 00
0x64D -> 01
0x64E -> 01Undervolt values:
0x653 -> 0x64 (CPU: -100 mV)
0x655 -> 01 (Negative voltage for 0x653)
0x85A -> 0x1E (GPU: -30 mV)
0x85C -> 01 (Negative voltage for 0x85A)
经过尝试,-100mV和-30mV在我的机器上可以正常运作,如果你不是这个数值,需要将十进制转变为十六进制,替代上面的0x64和0x1E。
注意!请先用XTU对这个降频幅度进行测试,然后再使用这个降压方法,不恰当的降压将会使CPU欠压损坏。
开启声修复
如果诸位前面正确操作了,那么相信大家已经发现了,在Clover引导最初,机器会发出一声咚~~~的启动声,我非常喜欢这个设定,让我回忆起了我第一台电脑——Macbook Pro MD101。但是这个声音个人觉得有点大,最好调小点。在-v模式最初我发现了一行输出,它表示声音大小的控制由BootChimeCfg.efi决定,我们将之前DVMT.efi仿冒的Shell64U.efi重新改回原名,Shell64U.efi.bak改为Shell64U.efi,重启重新进入Shell64U.efi界面。
依次输入以下命令
fs0:
cd EFICLOVERtools
BootChimeCfg.efi
在这里不仅能选择输出音量,输出线路,还能进行声音测试甚至清空NVRAM参数。
我们可以看到V是用来改变声音大小的,然后我们可以输入0-100的数来调节音量,最后我们还可以用T来测试声音具体大小。根据我的测试,我感觉这个音量百分比并不是线性的,我选择了70作为输出的音量。
如果希望完全关闭开机提示音。只需要直接删除EFI/Clover/drivers64UEFI中的AudioDxe.efi和BootChimeDxe.efi即可。
但是有一点让人不爽的是在启动Clover的时候还会发出一声奇怪的声音,留待以后解决。
HiDPI
这一部分请大家慎重考虑!
xzhih给出了一键开启原生HiDPI的办法。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi-zh.sh)"
重启即可,但是根据我的实际体验,开启HiDPI会导致第二阶段苹果LOGO变大,最让人难以忍受的是睡眠醒来会导致屏幕只有左上角有一个小桌面,需要二次唤醒,所以我建议1080p的用户不要开启HiDPI,同时不推荐购买3K屏幕版本。
睡眠模式调节
一般来说我们都会关闭standby和autopoweroff,这两个功能主要针对长期睡眠会进入深度睡眠,但是据说黑苹果这个是有问题的,所以基本上都要求关闭,具体到这台机器,我没有进行测试。
sudo pmset -a hibernatemode 0
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
sudo rm /private/var/vm/sleepimage
sudo touch /private/var/vm/sleepimage
sudo chflags uchg /private/var/vm/sleepimage
当然这并不是说黑果都不能睡眠,而是我们不推荐使用深度睡眠,所谓的深度睡眠(Hibernate)需要和正常启动一样,而浅睡眠(Sleep)则可以很快唤醒,两者差别主要在于内存的信息保存上,浅睡眠耗费电量同样很小,深度睡眠还需要占用很大的一块硬盘空间,白苹果上同样几乎没有开启深度睡眠的时候。
如果有兴趣了解可以搜pmset电源管理,也可以使用pmset -g查看现在的电源管理设置。
总结
本文就到这里结束了,感谢darkvoid,我只是站在巨人的肩膀上,才能完成这篇小教程,如果觉得可以,希望各位能多多点赞!
这两天爆肝赶文章啥都没学,接下来要努力刷题看书了,本人的学习设备已经齐全,台式机+轻薄本+iPad平板+手机也是我认为最合适的装备配置,之后会正常更新关于黑苹果的通用驱动方法。
粉袍甘道夫
校验提示文案
bomber458170613
校验提示文案
foxhl
校验提示文案
可爱的排骨
校验提示文案
kak06
校验提示文案
穷逼买不起肉
校验提示文案
被剁掉的双手
校验提示文案
风之痕
校验提示文案
胖胖船长
校验提示文案
ClegeA
校验提示文案
sunignol
校验提示文案
神奇小青年
校验提示文案
arare123
校验提示文案
RaDisney
校验提示文案
吕氏王朝
校验提示文案
我看看我就不买
校验提示文案
螺旋肚
校验提示文案
jcwayyan
校验提示文案
噩梦飘雷
校验提示文案
贫僧法号不买
校验提示文案
charlierao
校验提示文案
宇星Lucas
校验提示文案
值友1823632624
校验提示文案
值友4966147060
校验提示文案
杀熊不眨眼
校验提示文案
恰个热乎饭
校验提示文案
Kingrd97
校验提示文案
值友2248490459
校验提示文案
gujinmingyue
校验提示文案
Kingrd97
校验提示文案
偶阵雨丿
patched复制了,命令也执行了,就是没好
校验提示文案
开不了口k
校验提示文案
musheng
校验提示文案
LuLuLu-
校验提示文案
值友4911203043
校验提示文案
perfect_mm
校验提示文案
perfect_mm
校验提示文案
一方通行此路不通
校验提示文案
兌怼
校验提示文案
勒紧裤腰带过日子
校验提示文案