Sukka's Blog

童话只美在真实却从不续写

ThinkPad E480 黑苹果踩坑和黑苹果常用操作备忘

Sukka's Avatar 2020-02-06 笔记本

  1. 1. ThinkPad 黑苹果无线网卡
  2. 2. AppleALC 驱动声卡
  3. 3. 触摸板、键盘、ThinkPad 小红点驱动
  4. 4. 电量百分比显示
  5. 5. 显卡驱动
  6. 6. ThinkPad 黑苹果休眠、睡眠和唤醒
  7. 7. SATA SSD 固态硬盘开启 TRIM
  8. 8. 如何获取黑苹果相关资料
  9. 9. 常用工具
  10. 10. 使用 HackinTool 重建 Kext 缓存、修复权限
  11. 11. 使用 HackinTool 升级驱动
  12. 12. 升级 Clover
  13. 13. 生成三码以使用 iMessage、FaceTime、iCloud
  14. 14. 双系统时间同步
  15. 15. 笔记本完美黑苹果八项检查
  16. 16. 小版本系统的直接更新

由于囊中羞涩,只好一部 ThinkPad 商务本凑合一年有余。最近赋闲在家无事可干,打算更新一下开发环境。Windows 搭配 Cygwin 的选择毫无疑问被排除在外、WSL 的 IO 性能无法直视、开源拖拉机 Linux 的生态一时半会无法适应。想来想去,不如装个黑苹果(Hackintosh)过把用 macOS 的瘾。

本文前半部分会记录我在 ThinkPad E480 上踩过的几个坑和解决方法,后半部分则是我自己备忘的黑苹果的相关知识。我不是专业安装黑苹果的玩家,在短期内 我也不会考虑开源我的 EFI。

ThinkPad 黑苹果无线网卡

ThinkPad E480 出厂时搭载的无线网卡是 Realtek 8821CE Wireless LAN 802.11ac PCI-E NIC,目前没有办法驱动。

e480-hackintosh/e480-internal.jpg

目前最好的选择是换装 DW1560,在 macOS 下毫不费力就可以驱动,在 Windows 下也能轻易驱动。不推荐用 DW1820A,在 ThinkPad 系列机型上都需要屏蔽识别针脚、在系统中容易引发冻屏。而且 DW1820A 有的批次可以轻易驱动、有的则难如登天。如果你执意要趟坑 DW1820A,请参考 黑果小兵的这篇文章

AppleALC 驱动声卡

ThinkPad E480 的内置的声卡是相对罕见的 Conexant CX20753/4。但是好消息是,MacPeet 为 AppleALC 添加了 CX20753/4 支持(layout-id: 15),而且 MacPeet 的机型是 ThinkPad E580、是 ThinkPad E480 的姊妹机型。在实际测试中,layout-id3 或者 15 都可以驱动 ThinkPad E480 的声卡,3.5mm 耳机接口和外放都可以正常使用。

触摸板、键盘、ThinkPad 小红点驱动

建议使用 Rehabman 版本的 VoodooPS2Controller 而不是 acidanthera 的 VoodooPS2Controller。Rehabman 版本的驱动可以直接不加修改和配置即可在黑苹果中直接驱动键盘、触摸板、ThinkPad 标志性的 TrackPoint(小红点)和 ThinkPad 触摸板上部的三个按键(ThinkNav)。
如果睡眠唤醒以后,触摸板无法使用、而小红点和 ThinkNav 三个实体按键可以使用,那么可以尝试重建 Kext 缓存。

使用 acidanthera 的 VoodooPS2ControllerVoodooInput 成功驱起来了触摸板、ThinkPad 小红点(TrackPoint)和触控板的三个实体按键(ThinkNav)。可能需要额外打一个 SSDT-ThinkPad_Clickpad 的 hotpatch,我直接找了网上姊妹机型 E470 现成的 SSDT-ThinkPad_Clickpad.aml 扔进去。

电量百分比显示

优先使用 VirtualSMCSMCBatteryManager 驱动。使用 FakeSMC 搭配 Rehabman 的 ACPIBatteryManager 虽然也可以实现电量百分比显示,但是电源状态显示不准确(插着 AC 仍然显示电池供电、反之亦然)。

显卡驱动

ThinkPad E480 2018 款使用的是 Intel Core (Kaby Lake) i7-8550U,核显型号是 Intel UHD Graphics 620,通过修改 platform-id 伪装成 Intel HD Graphics 620,相关资料有黑果小兵的 Intel 核显 platform ID 整理及 smbios 速查表Hackintool(原Intel FB-Patcher)使用教程及插入姿势 中关于缓冲帧补丁的相关章节。以下是我的缓冲帧信息:

e480-hackintosh/hackintool-framebuffer.png

在 Clover 的 config.plist 中可以修改核显显存为 2048MB,推荐使用 Plist Edit Pro,定位到 Root -> Devices -> Properties -> PciRoot(0x0)/Pci(0x2,0x0) -> framebuffer-unifiedmem,数据类型为 Number,修改数值为 2147483648(2048 MB 转换为字节数),效果如下图所示:

e480-hackintosh/macos-info.png

ThinkPad E480 内置一块 Radeon (TM) RX 550 (2GB) 独立显卡,只能屏蔽掉。屏蔽掉独显以后风扇竟然不会乱转,应该说运气不错。

ThinkPad 黑苹果休眠、睡眠和唤醒

EFI/CLOVER/kexts/Other 下面扔一个 HibernationFixup.kext,然后在启动参数里加上 -hbfxbeta,就可以实现 hibernatemode 3 休眠了。

如果合盖后遇到偶发性的随机唤醒,禁用 proximitywake 即可:

sudo pmset -a proximitywake 0

「合盖后随机唤醒」指,合盖后 ThinkPad A 面的红色指示灯开始闪烁、表示设备已经睡眠;一会以后指示灯进入常亮,但此时开盖屏幕不会点亮。

如果还遇到各种奇奇怪怪的休眠唤醒问题,建议直接禁用掉休眠相关选项:

sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0

SATA SSD 固态硬盘开启 TRIM

在终端中使用下述命令强制开启第三方 SSD 的 TRIM。

sudo trimforce enable

执行完上述命令后会自动重启。如果重启后「关于本机 - 系统报告」中还显示 TRIM 未开启,则需要通过 Clover Configurator 打个补丁。在 Clover Configurator 中打开 config.plist,左边侧边栏选择 Kernel and Kext Pathches,添加下述补丁:

  • Name*: IOAHCIBlockStorage
  • Find*[HEX]: 4150504C452053534400
  • Replace*[HEX]: 00000000000000000000

e480-hackintosh/ccg-ssd-trim.png


如何获取黑苹果相关资料

国内黑苹果的社区寥寥无几,威锋相关板块冷冷清清,而远景论坛(PCBeta)非常封闭、注册门槛也很高。而且国内黑苹果社区中知识都非常零散、并不系统,大部分帖子中的经验都主要针对特定机型和驱动,不具备普适性。

我在获取安装黑苹果的相关知识时,首先将目光放在了国外的几个著名的黑苹果社区。而国外最有名的黑苹果社区莫过于 tonymacx86insanelymac。除此以外,r/hackintosh 上也有不少相关交流。除此以外,一些中文博客上也有详细而实用的黑苹果相关的知识,我自己比较常看的是 黑果小兵的部落阁XJN’s Blog

GitHub 和 BitBucket 是获取黑苹果相关资源的一个好去处。GitHub 上可以获取到大部分驱动的最新版本——AppleALC、VoodooPS2Controller、HoRNDIS 等等,而且也有很多黑苹果玩家在 GitHub 上分享自己的 EFI。

常用工具

截至本文写就,OpenCore 和 Clover 是目前最常用的黑苹果引导工具。虽然 OpenCore 优势多多,但是 OpenCore 相关资料较少,而 Clover 相对更加成熟、资料也充足。虽然 Lilu、AppleALC 等插件已经优先兼容 OpenCore,但是也有很多实用驱动如 FakeSMC 和 VoodooPS2Controller (Rehabman) 仍然是面向 Clover 开发的。

Clover 和黑苹果常用的工具有:

使用 HackinTool 重建 Kext 缓存、修复权限

可能是最简单的重建 Kext 缓存的方法、不需要 Kext Utility、也不需要在 Terminal 里敲命令。

打开 HackinTool 中的「Tool」选项卡,点击底部操作栏最右边的按钮(如果将光标悬浮在这个按钮上,你可以看到这个按钮的注释是「Rebuild KextCache and Repair Permissions」),输入密码即可。

e480-hackintosh/hackintool-rebuild-kext.png

使用 HackinTool 升级驱动

打开 Hackintool,找到 Installed 选项卡,点击下面控制栏最左边的按钮,检查驱动版本:

e480-hackintosh/hackintool-kext.png

红色的是存在更新版本的驱动。勾选需要升级的驱动,点击下面控制栏中间的按钮开始下载。

e480-hackintosh/hackintool-kext-download.png

驱动会保存在桌面上 HackinTool_Kexts 目录中。手动挂载 EFI 分区,并在 Finder 中将 kext 文件手动覆盖进 EFI/CLOVER/kexts/Other 目录中即可。

升级 Clover

使用 Clover Configurator 可以直接下载执行 Clover Installer。打开 Clover Configurator,在左边侧边栏点击 TOOLS 下的 Install/Update Clover,然后点击右下角 Check Now 开始获取你现在使用的 Clover 版本以及可以下载到的最新版本。

e480-hackintosh/ccg-update.png

勾选 Package(下载 Installer)和 Save to Desktop,然后点击右下角的 Update。耐心等待一会,下载成功后会自动打开安装界面(如果没有,去桌面找找 pkg 文件)。

如果觉得打开软件太麻烦,可以前往 SourceForgeGitHub 直接下载安装器 pkg 文件或 CLOVERX64.EFI 文件。

安装器可能会提示 This package will run a program to determine if the software can be installed.,点击 Continue 即可。在安装界面,连续点击右下角的 Continue 直到到达「安装类型」(Installation Type),选择「自定义」(Customize)。

e480-hackintosh/clover-installer-1.png

在自定义界面,手动勾选 仅安装 UEFI 开机版本Clover for UEFI Booting Only) 和 安装 Clover 到 EFI 系统区Install Clover in the ESP),如下图所示。

e480-hackintosh/clover-installer-2.png

现在可以点击右下角的 安装 了。

生成三码以使用 iMessage、FaceTime、iCloud

  1. 使用 Clover Configurator 打开 config.plist 。左侧边栏选择 SMBIOS,复制 Serial Number 前往 Apple 官网查询序列号 ,如果显示有购买日期和机型等保修信息,说明这个序列号别人在用,不建议使用,点击 Generate New 生成新的 Serial Number ,直到出现提示:「很抱歉,这个序列号无效。请检查您的信息并再试一次」。
  2. 左侧边栏选择 System Parameters,生成一个 UUID,系统生成或随机生成都可以。

e480-hackintosh/ccg-uuid.png

  1. 复制生成的 UUID 粘贴到 SMBIOSSmUUID 里(位于 Serial Number 右边),保存。
  2. 复制 SMBIOS 里的 Board Serial Number ,粘贴到 Rt VariablesMLB 里,保存之后,点击 ROM 的获取,确保下方三码正常匹配自己生成的,保存重启即可。

e480-hackintosh/ccg-parameter.png

双系统时间同步

Windows 把系统硬件时间当作本地时间,即操作系统中显示的时间跟 BIOS 中显示的时间是一样的。而 Linux / macOS 把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是 GMT+8,则系统中显示时间是 硬件时间 + 8

解决方法是修改 Windows 对硬件时间的对待方式,让 Windows 把硬件时间当作 UTC,在 CMD 中执行下述命令即可:

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

笔记本完美黑苹果八项检查

  • 使用 CPU-S 进行「变频测试」,二档够用、八档以上优秀。

e480-hackintosh/cpu-s-test.png

我这个 12 档全都是睿频是怎么回事(

  • 分辨率和显存显示正常,支持 DP、HDMI 外接显示,风扇不持续高速旋转,原生亮度调节正常
  • VoodooHDA 能响,如果是 AppleALC 就优秀
  • 以太网需位于 en0;无线支持 2.4G/5G 双频,支持 AirDrop 和 Handoff 优秀
  • USB 接口 2.0/3.0/3.1 均能识别,3.0 及以上接口的识别速度应有 5G/s

e480-hackintosh/hackintool-usb-speed.png

上述五项是黑苹果使用的最低需求。

  • 系统偏好设置正常识别电池电量状态
  • 合盖睡眠,开盖唤醒后正常点亮不黑屏
  • 自带键盘和触摸板都能正常使用

如果满足上述三项,则这台黑苹果已经可以满足主力使用需求了。打开「关于本机 - 系统报告」检查其他几项:

  • NVMExpressSATA/SATA Express 中均显示 TRIM 支持已开启

小版本系统的直接更新

一般的小版本更新,如 macOS 10.15.2 升级 10.15.3 可以直接在系统内升级。在「系统偏好设置」或「关于本机」中进去系统更新检查。当进度条走完后点击重启,在 Clover 引导界面会出现 Boot macOS install from xxxxx ,方向键选中并按空格,勾选 Verbose(-v)nv_disable=1 后再启动。跑完日志和进度条后会开始升级、自动重启,如果重启后 Clover 中的 Boot macOS install from xxxxx 没有消失则重复上述操作(一般系统更新也需要二次安装)。升级成功后 Clover 引导界面下的 Boot macOS install from xxxxx 会消失。选择 Boot macOS install from xxxxx 进入系统即可。

本文作者 : Sukka
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议!
本文链接 : https://blog.skk.moe/post/thinkpad-e480-hackintosh/

本文最后更新于 天前,文中所描述的信息可能已发生改变