本帖最后由 交叠的暗黑 于 2017-7-23 12:30 编辑
鉴于坛子编辑器太挫了,所以我都写在了 macdown 里了,转成 pdf 传上来了。本文内容有极大缺漏,内容极不完整,经过多次编辑,坛子的吞贴特性让人震惊!不知道后续如何~
二楼有 EFI 存档以及整篇教程的完整 pdf ,无法设置回复可见,只能设置 pb 一枚了,机智如我~最大的感受是,论坛的编辑器之渣渣,实所罕见,决定以后再也不会浪费时间在坛子里写这种长的分享教程了。真的
1. 简要概述 1.1 娱乐大师
1.2 配置一览- * i7 7500u
- * Intel HD Graphics 620
- * Intel ALC269 vc
- * Bcm94352z NGFF stupid_much_Dell
- * DDR4 2400MHz 8G Samsung
- * 120G NGFF_SSD-cm871a + 240G SATA_SSD-sandisk_plus
- * 1080p 72% ntsc display
- * Usb Type-c、Type-a——3.1 * 2、BisonCam_NBPro、BlueTooth-BCM20702A0
复制代码
1.3 果果自述
2. 安装介质
2.1 u盘安装大法(超级推荐)http://bbs.feng.com/read-htm-tid-7057977.html
2.2 硬盘安装大法- 前提:拥有 windows 环境、硬盘安装助手软件
复制代码https://bbs.pcbeta.com/viewthread-1679070-1-1.html
2.3 虚拟机安装大法(推荐)
https://bbs.pcbeta.com/viewthread-1695906-1-1.html
2.4 dd 命令安装大法(推荐)
http://bbs.feng.com/forum.php?mod=viewthread&tid=9131601&extra=page=1&typeid=157&typeid=157
3. 动员准备
3.1 了解 clover维基
https://clover-wiki.zetam.org/Home
参数解释 https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1551482
3.2 提取ACPI files
这个有个大兄弟已经写得一个很好的详细提取教程了,可以直接看这个: [教程] [授权翻译] 使 补丁修改DSDT/SSDT [DSDT/SSDT综合教程]
https://bbs.pcbeta.com/viewthread-1571455-1-1.html
3.2.1 ubuntu提取 参照帖子: Create a bootable USB stick on Windows https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0
ctrl+alt+t 快捷键打开终端:
- $ sudo cp -R /sys/firmware/acpi/tables /opt/
复制代码
接着把系统根目录 /opt/tables 这个文件夹拷贝到你的u盘里(下面是命令,不会的就手动找到目录进行复制吧~有点多此一举的感觉。。。) 或者直接运行这个命令: - $ sudo cp -R /sys/firmware/acpi/tables /media/$(whoami)/"u盘的名字"/
复制代码
文件就是这样的
接着把 DSDT 和 SSDT 文件,重命名所有文件,加上 .aml 扩展名,然后把所有的 aml 文件单独放在一个目录里。比如 hack。。。
3.2.2 clover F4 提取
在 Clove 那个选择引导磁盘的界面,按 “F4”(联想(都是渣渣)的渣渣键盘貌似还需要 +FN 一起按),Clover 会把原始 ACPI 文件提取到 EFI/Clover/ACPI/origin 目录。
3.2.3 patchmatic 提取(不建议,忘记吧)
如果前面两个办法还不能满足你,就看下面这个吧。。。里面有介绍:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
3.2.4 win下软件提取(百度吧~)
3.3反编译
3.3.1 获取工具
3.3.1.1 MaciASL(至少 1.3.1 版本的)
RehabMan / OS-X-MaciASL-patchmatic / Downloads — Bitbucket
https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/
MaciASL 源码链接,需自己编译 https://github.com/RehabMan/OS-X-MaciASL-patchmatic
解压 zip 后将 MaciASL 移入应用程序文件夹内。 3.3.1.2 Iasl 获取源码 - $ mkdir ~/tools && cd ~/tools
- $ git clone https://github.com/RehabMan/Intel-iasl.git iasl.git
- $ cd iasl.git
复制代码
编译安装 - $ make -j5
- $ sudo make install
复制代码
将最新 iasl 移入 maciasl 保持更新同步 - $ sudo cp /usr/bin/iasl /Applications/MaciASL.app/Contents/MacOS/iasl61
复制代码
https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/
添加 Sources 源 - http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master
复制代码
3.3.2 开始反编
终端进入之前存放所有 acpi 文件夹里,比如我刚才说的 hack 文件夹。 接着运行命令,就会出现对应的 dsl 文件了: - iasl -da -dl DSDT.aml SSDT*.aml
复制代码 之后的修改啥的,直接参考前面已经给出的教程吧,遇到啥问题,就搜索:
[教程] [授权翻译] 使用补丁修改DSDT/SSDT [DSDT/SSDT综合教程] https://bbs.pcbeta.com/viewthread-1571455-1-1.html
3.3.3 ssdtPRGen 获取变频 aml https://github.com/Piker-Alpha/ssdtPRGen.sh
打开终端:
进入桌面目录: - $ cd /Users/$(whoami)/Desktop
复制代码 获取源码: - $ curl -o ssdtPRGen.zip https://codeload.github.com/Piker-Alpha/ssdtPRGen.sh/zip/Beta
复制代码 解压: 运行: - $ cd ssdtPRGen.sh-Beta/; chmod +x ssdtPRGen.sh; ./ssdtPRGen.sh
复制代码
最终得到 ssdt.aml 文件,将其改名复制到 "/EFI/CLOVER/ACPI/patched" 文件夹下面,即可,不要和别的 aml 文件冲突。
4. 安装初装
4.1 初装
需修改 ig-platform-id 为 0x12345678,否则卡停:
参照这个帖子:
[Guide] Laptop backlight control using AppleBacklightInjector.kext
https://bbs.pcbeta.com/viewthread-1744406-1-1.html
这帖子讲得挺不错的,海尔 s4 的话最后就直接用我的 config 配置就行了~我就不讲那么详细了,直接拿我的配置文件改一下 ig-platform-id 即可进入安装界面。
4.2 次装
安装的时候会执行两遍,建议不要拔掉u盘,初装之后会有两个黄色的图标,你需要分辨一下哪个是继续安装。
进入系统之后,修改回来 ig-platform-id,重启,你会发现显卡、有线网卡、声卡已经驱动了,但是无线网卡如果你没有换的话是没办法驱动的,建议更换 BCM94352z(DW1560),运气好的话,你会像我一样买到一个103大洋的~
5. 驱动
5.1 显卡&&太阳
5.1.1 硬件加速
直接使用我的配置即可完成驱动,起作用的设置如下: - config.plist
- Device: FakeID IntelGFX 0x19168086
- Graphics: inject intel + ig-platform-id 0x19160000
- kext
- IntelGraphicsFixup
- Lilu.kext
- IntelGraphicsDVMTFixup.kext
- FakePCIID.kext
- FakePCIID_Intel_HD_Graphics.kext
复制代码
5.1.2 亮度 [Guide] Laptop backlight control using AppleBacklightInjector.kext https://www.tonymacx86.com/threads/guide-laptop-backlight-control-using-applebacklightinjector-kext.218222/
打开终端:
进入桌面目录: - $ cd /Users/$(whoami)/Desktop
复制代码 获取源码: - $ git clone https://github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch probook.git
- $ git clone https://github.com/RehabMan/OS-X-Clover-Laptop-Config.git guide.git
复制代码
编译: - $ cd guide.git/
- $ make -j5
复制代码
拷贝成果: - $ cp Build/SSDT-PNLF.aml "你 patched 目录下"
- $ cp -r ../probook.git/kext/AppleBacklightInjector.kext /Library/Extensions/
复制代码
重建缓存:
DSDT-Patches- <dict>
- <key>Comment</key>
- <string>change GFX0 to IGPU</string>
- <key>Find</key>
- <data>
- R0ZYMA==
- </data>
- <key>Replace</key>
- <data>
- SUdQVQ==
- </data>
- </dict>
复制代码
KextsToPatch
5.1.3 HDMI 输出 Devices
5.2 声卡
5.2.1 万能声卡(不推荐)
A:按照如下教程仿冒声卡(反正我是没有成功): [教程] 完美原生加载AppleHDA
https://sourceforge.net/projects/voodoohda/ B:直接使用我的配置即可完成驱动。(不建议,无法自动侦测耳机插入切换)
起作用的设置如下: - kext
- VoodooHDA.kext
- Application
- VoodooHdaSettingsLoader
- System Preference
- VoodooHDA
复制代码
直接下载安装 VoodooHDA 2.8.9 Clover.pkg 安装即可,直通车:
https://sourceforge.net/projects/voodoohda/
略作修改:
为何修改、如何修改,可见:
https://bbs.pcbeta.com/viewthread-958157-1-1.html
5.2.2 ALC 仿冒声卡(建议+推荐) Devices - <key>Audio</key>
- <dict>
- <key>Inject</key>
- <string>1</string>
- </dict>
复制代码
Acpi-Boot kext - EFI/CLOVER/kext/AppleALC.kext
复制代码
放入我 EFI 资源里的 AppleALC.kext即可。具体不赘述。 5.3 网卡 BCM94352z:参照这个帖子(需要解决usb问题): 分享BCM94352HMB macOS Sierra(10.11.12.13系统都能用 https://bbs.pcbeta.com/viewthread-1693529-1-1.html) 起作用的设置如下: clover/kext
5.4 usb + BisonCam_NBPro + sleep + find bluetooth 5.4.1 10.12 去除USB端口限制补丁(不建议使用) https://bbs.pcbeta.com/viewthread-1697656-1-1.html - To unlock 31 Ports at Intel 1000 Series Chipset at macOS Sierra use this patch
复制代码
使用端口限制补丁不是一个长期的解决方案。对于可靠的USB(假设 ACPI 实现的 _PLD 和 _UPC 已损坏,而又不想修复它),则必须为 USBInjectAll.kext 实现自定义 SSDT,以在 XHC 上配置端口,使端口限制补丁不被需要,每个端口的每个 UsbConnnector 值都该是正确的。 而下面的定制 SSDT 不仅可以避免端口限制补丁,禁用未使用的 USB 端口,还具有一些省电属性,并避免睡眠,重新启动或关闭的这一类错误。 5.4.2 SSDT(for USBInjectAll.kext)(推荐) 因为这台机器只有一个 usb3.1 的控制器,没有 2.0 的接口所以你懂的。。。另外,开心于 Skylake 以上的没有 EHCI 控制器,因此只需要定制 XHC。 ACPI-DSDT-Patches KernelAndKextPatches-KextsToPatch Boot-Arguments- 去除 USBInjectAll 的 SSDT(SSDT-UIAC)
复制代码 working 打开 IORegistryExplorer.app: Download IORegistryExplorer http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html 查看所有 usb 接口分别插 2.0 和 3.0 设备下的 usb 信息: 由于手上没有 type-c 接口的设备,因而就没有记录这个 type-c 的接口了: 获取 SSDT-UIAC.dsl 模板: https://raw.githubusercontent.com/RehabMan/OS-X-USB-Inject-All/master/SSDT-UIAC-ALL.dsl 接着修改模板,通过 IORegistryExplorer 找到 device-id: Haier s4 —— 0x9d2f
得到最终的 SSDT-UIAC.dsl:
5.4.3 最后 MaciasL 保存文件格式为 ACPI Machine Language Binary,复制 “SSDT-UIAC.aml” 到 EFI/Clover/ACPI/patched 目录,并在 config.plist 中的 SortedOrder 加入 SSDT-UIAC.aml(作用是配合 USBInjectAll.kext,消除用不到的接口并让其更好识别 usb)。 删除前面的 端口限制解除补丁、boot 参数 -uia_ignore_rmcf 以启用 SSDT-UIAC.aml,重启即可。 以上主要参照: [[Guide] Creating a Custom SSDT for USBInjectAll.kext] https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/ 补充参照:
[如何修复机器内部USB端口属性] http://www.yekki.me/how-to-fix-internal-usb-port-properties/ 起作用的设置如下:
5.4.4 补充 将 SSDT 复制到 ACPI/patched 后,即可进行测试。如果不起作用(端口丢失,端口错误,模板错误等),可随时使用 config.plist 里的 boot 参数:**-uia_ignore_rmcf** 来禁用 SSDT 中的替代代码,然后好好检查。 若是 SSDT-UIAC.aml 工作正常,可以删除或禁用端口限制的补丁。 成果 5.5 电源管理 5.5.1 原生变频 当初我试着直接安装,发现自然变频。。。就是听说电源管理不太灵活,发热量和频率会大高些。据说 6 代以上已经不需要提取 SSDT 的变频文件了,😄 5.5.2 ssdtPRGen 变频 好奇之下,使用了 ssdtPRGen 生成的 SSDT.aml 文件,尝试了一下使用,发现基本没区别,不知道是不是错觉,发热量貌似还大了一丢丢。 从第 4 节内容:动员准备- ssdtPRGen 获取变频 aml 里,我们已经得到变频的讯息文件 SSDT.aml,也说明了如何加入使生效。 config.plist 配置 我把 ssdtPRGen 生成的文件改名为 SSDT-6.aml,在 “<string>SSDT-5.aml</string>” 下面加 “<string>SSDT-6.aml</string>”
5.5.3 Energy Control 直接上教程
[原创内容] 开启完整HWP(SpeedShift)电源管理特性 https://bbs.pcbeta.com/viewthread-1737021-1-1.html
5.5.4 电池 当初我试着直接安装,发现自然就有电池显示,应该是 ACPIBatteryManager.kext 起的作用。查看了下 dsdt 文件,像是没有需要拆解的字段,hah~ kext:
6. hotpatch 配置 ACPI-DSDT-Fixes: - FIX_RTC_20000
- Excludes IRQ(0) from RTC device.
- 从 RTC 装置中删除 IRQ(0)。
- FIX_WAK_200000
- Adds Return(Package(0)) into method _WAK if absent. This patch eliminates a warning, but we don't know if it affects anything else on a working system.
- 如果方法 _WAK 缺少返回,添加 (Package(0)), 该补丁消除了警告,但不知道是否会对运行的系统产生其它什么影响。
- FixIPIC_0040
- Deletes IRQ(2) from device IPIC. Helps with a non working Power button.
- 从 DSDT 的 IPIC 项中删除 IRQ(2),解决电源键问题.
- NewWay_80000000
- If you set this bit then your old bit will work restrictedly for one purpose each.Without this bit the rest of these bits will be useless
- 新补丁开关,开启此项,旧的补丁方式(“FixDarwin”、“AddMCHC” 补丁)将失效。
复制代码6. 感受 最大的感受是,论坛的编辑器之渣渣,实所罕见,决定以后再也不会浪费时间在坛子里写这种长的分享教程了。真的
|