Miix 720 安装小记 for 10.12.6 [WIP]
本帖最后由 gongzhen 于 2017-9-26 13:55 编辑由于和某人白话了10.12.6发布后原生支持Kaby Lake就写篇教程,本想着按10.13发布的进度还能再拖一阵,没想到今天两点多突然就推送了。。。Sad,先把手里有的东西发了一点点再完善(GitHub repo都还没整理好。。。先把坑填了过两天开始搬砖就没时间了)
1L 懒人包 & 安装2L 内容简介 & 致谢3L Wacom I2C4L 电池logic error & patch5L 占楼备用
配置
i5-7200U / i7-7500U with HD 6208 GB RAM PM951 NVMeQHD 触屏 (Wacom I2C)Intel 8265 (更换BCM94352z)Thunderbolt 3 4*PCIEALC 236
再发点牢骚可以跳过前一台本是Yoga 3 14,啃黑果的过程还算理想,装得差不多之后在tonymacx86看见篇教程,补了几个patch就咸鱼去了。然而黑果用了一年半之后机器出了点故障,送修之后扔家里了。在这次选购本的时候,也由于之前触屏(Elan USB的)用的比较爽就找同类型的,yoga腻了看看Elite X2还没出最后入了Miix 720。
然后就是一连串坑。。。二月底狗东和联想官网价差1000。。。由于家里人的劝阻和前一台本被良心想授权经销商坑了3k的惨痛遭遇咬咬牙在官网原价买的。。。拿回来没两天触屏就失灵了。。。维修站换屏,然后一连串风扇坑主板坑换了三次。。。多次维修换机。。。换回来新机键盘就是挂的,想着换个键盘就完了吧。。。转天屏幕又挂…又挂。。。然后手里的就是第三台了。。。测试触屏驱动的时候屏幕还挂了好几次不过已经没脾气了。。。明明是靠触屏当作买点的机器。。。anyway
客观上说机器本身设计没什么毛病(单风扇还有电源键略坑还有明明是4096级压感配的旧2048级不带蓝牙的笔),有雷电有一个3.0一个2.0开发什么都不是问题。品控就那样了再这样下去就砸招牌了。然而BIOS锁RAID(去年出过这事还发了新闻稿又打自己脸)…去良心想国内外论坛发帖(或许是个错误的决定并没有人看),最后好像是看着装安卓的人多反馈上去了解锁AHCI选项。。。并没有什么人用Linux,更别说黑果
回正题
拿到机器之后就F4 dump了DSDT SSDT,按经验patch完毕配了Clover,每次等二三十分钟进原版懒人版安装盘都找不到内置硬盘,换NVMe Patch加RAID驱动之后发现根本不是那回事。。。别的机器锁RAID貌似NVMe还能显示(某人信誓旦旦告诉我Intel往Linux上游push RAID相关代码了),然而lspci看固态被屏蔽了。。。摸鱼到六月,中间Windows 蓝屏(绿屏)无数次,Linux装U盘上滚滚挂了,差不多开始想念前一台黑果的时候,新BIOS发布了(到现在快满一个月了)熬了两天到周五下午开始折腾。。。感觉才过了两三个月怎么就多了那么多东西。。。Lilu, class code spoof…我怎么又跑题了
安装
Windows压缩个分区,先格式化成fat32以免新磁盘工具找不到,安装文件放在硬盘上的话还可以再分6个G
简要写下Mac下基于原版安装程序创建安装盘的步骤:https://support.apple.com/zh-cn/HT201372U盘用磁盘管理工具格式化,选GPT应该会自动建个EFI分区,没有的话自行在前面分一个。sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ macOS\ Sierra.app再扔个.IAProductInfo到安装盘根目录避免二次安装(直接装可能会出现unmount error)没了(估计也没什么人看)。DMG/cdr 参见论坛相关教程,10.12.6今天好像还没出;)
把附件的Preinstall扔fat32分区根目录
进BIOS(F2或电源&音量+)Configuration - RAID改成AHCI 如果之前没改过的话windows下需要修复一下才能正常启动,自行百度Security - Secure Boot关掉Boot - sequence 可以把U盘往上提保存并重启
选择U盘启动,Clover界面选安装分区,应该两三分钟能看到图形界面,如果出现禁行标志的话按下空格把verbose选上再启动记下log(这套配置应该没什么问题了,坑我大概都踩过了)
上方选实用工具(Utilities) - 磁盘工具(Disk Utility)格式化win下压缩出来的磁盘分区,Mac OS Extended, journaled,分区名记住,反正我直接填的Sierra。退出磁盘工具,选上一步生成的分区,安装。上方工具里面选择日志(log),保持日志窗口在最前,这样安装后不会立即重启。~15min后安装完成,不要点安装界面,否则倒计时开始10秒后自动重启
上方选实用工具(Utilities) - 终端(Terminal),敲
perl -pi -e 's|\x89\x4D\xC8\x41\x39\xCD\x76\x53|\x89\x4D\xC8\x41\x39\xCD\xEB\x53|g' /Volumes/分区名/System/Library/Extensions/AppleIntelKBLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelKBLGraphicsFramebuffer
善用Tab补全
第一行应该没有提示,第二行返回4e34开头的一串数字就对了字小忍着。。。当初折腾好显卡之前眼睛瞎了一周,没有驱动的时候macOS把这块屏幕当48寸的显示。。。4倍
安装后
重启,把Postinstall里面内容的扔fat32分区根目录,两套配置主题做了区分。
中间可能会有一次自动重启,然后正常分辨率(缩放)的向导就应该显示了,先不要登录AppleID,账户相关的都跳过,Find My Mac别想。
之后将Clover/Kexts/Other下面的kext安装到/Library/Extensions,可以使用Firewolf的KCPM Utility https://www.firewolf.science/2016/09/kcpm-utility-pro-v6-brand-new-kexts-ezinstaller-macos-sierra-supported-repairing-permissions-configuring-rootless-and-more/
账号相关的可以参见https://bbs.pcbeta.com/viewthread-1557392-1-1.html
附件更新。。。少放了一个Kext。。。
Update(07/27)
Lilu 1.1.6 & AppleALC 1.1.4可以使用AudioID=3,长时间闲置后会有一声微弱爆音,mic正常,等官方更新或者自己编译一份。ACPI/patched/ssdt-HEDF.aml可以扔了,用clover注入
Update(09/26)
10.13整合: https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1759657
本帖最后由 gongzhen 于 2017-7-20 16:17 编辑
文件简介
语死早。。。感觉写英文会轻松点。。。
SSDTs
SSDT-ALS0.aml 亮度传感器(伪),保存亮度SSDT-BATT.aml 电池修复SSDT-Config.aml RehabMan编写hotpatch部分参数设定SSDT-DeepIdle.aml 固态硬盘省电模式SSDT-DMAC.aml DMA控制器SSDT-HDEF.aml 注入声卡属性SSDT-LPC.aml LPC总线SSDT-MCHC.aml 内存控制器SSDT-NVMe-RP09.aml NVMe驱动SSDT-PluginType1.aml HWPSSDT-PNLF.aml 亮度调节SSDT-PRW.aml 修复睡眠后立即唤醒SSDT-PTSWAK.aml 修复关机/睡眠问题SSDT-SMBUS.aml 注入SMBus属性SSDT-UIAC.aml USB端口注入SSDT-USBX.aml USB电流大小SSDT-XHC.aml 注入USB属性SSDT-XOSI.aml 系统版本判断
KextsAppleALC 声卡,10.12.6好像好得差不多了?CodecCommander 声卡修复AppleBacklightInjector 亮度调节BrcmPatchRAM2 蓝牙修复(BCM94352z)BrcmFirmwareData 蓝牙修复(安装到CLOVER)BrcmFirmwareRepo 蓝牙修复(安装到/L/E)FakePCIID 硬件ID注入FakePCIID_Broadcom_WiFi 无线网卡注入 (BCM94352z)FakePCIID_Intel_HD_Graphics 显卡属性注入FakePCIID_Intel_HDMI_Audio HDMI音频输出FakeSMC 机型信息,RehabMan修改版HackrNVMeFamily-10_12_5_spoof NVMe驱动(IONVMeFamily升级后版本号没变)IntelGraphicsFixup 显卡属性修复NvidiaGraphicsFixup 显卡属性修复,包含部分IOGraphics的修复Lilu 动态注入(NvidiaGraphicsFixup.kext, CoreDisplayFixup.kext, and AppleALC.kext)SATA-100-series-unsupported 100系SATA控制器注入Shiki DRM修复USBInjectAll USB端口遮罩VoodooPS2Controller 音量按钮(
config.plist主要就是一些常见KextToPatch和SSDT hotpatch的一些对应binpatch,都有注释
总结一下情况CPU HWP开启,变频应该正常了然而看最低频率没到0.8...显卡正常,有加速,不用FakeID了亮度可调可保存 调节用的是AppleBacklightInjector配合hotpatch,保存通过一个虚假的ALS0亮度传感器设备配合修改的FakeSMC完成tb3接口用转接器HDMI输出正常,HDMI音频没设备没试,可热插拔声卡貌似有一些唤醒之后无声的问题,插拔耳机可以解决,升10.12.6之后貌似好了?有空细看下PathMap无线网卡&蓝牙 没戏,换BCM94352z吧,原本想上BCM943602BAED来着但是超宽。。。28mm vs 22mmSD卡貌似都无解,有人在搞mod AppleSDXC还是VoodooSDHCI有空试下关机貌似还有点坑,不接电源正常关机,插电源关机之后过几秒又亮了睡眠待修复?Wake Reason有时Power Button(User)有时XHC。。。但是电源键还亮风扇也在转键盘通过USB连的,所以键盘没毛病,触摸板由于只能输出PTP或模拟鼠标输入因此可能无解。不过现在PTP的那么多说不定有人会做驱动呢。。。前几天reddit看见一个触屏实验性支持见3楼Thunderbolt 3 不支持热插拔,有个把tb3模拟成firewire的hotpatch有空试下好像差不多了?
致谢:AppleblankmacClover EFI bootloaderJogleLewjqqqqqqqqqqKNNSpeedPMHeartRehabMantonymacx86vit9696
本帖最后由 gongzhen 于 2017-7-27 00:52 编辑
I2C Wacom驱动 for WCOM 5099 (实验性)触屏驱动来自blankmac(jhax01) 为HP Elite X2改造的VoodooI2C驱动:https://www.tonymacx86.com/threads/guide-hp-elite-x2-1012-the-ultimate-os-x-tablet-pretty-close.212995/简单修改适配了WCOM 5099的ID以及压感范围,然而压感还没能识别,有空再修。基本上是把触屏模拟成一个大号触摸板。多指手势见原帖描述,手掌检测正常,睡眠时可能导致失灵。VoodooI2C与AppleHPM AppleIntelLpssI2CController AppleIntelLpssI2C冲突,使用前需要删除相关驱动,已包含在install.sh中另外此驱动不建议安装到LE或者Clover,会导致-verbose kp。写了个LaunchAgents实现开机启动,使用前请确认其他驱动正常,运行install.command安装。
Update: 安装脚本更新*2
本帖最后由 gongzhen 于 2017-7-20 23:55 编辑
电池的一些事情
电池patch无非就是拆字节了,16bit拆成两个8bit的,更大的调用method读取。相关patch/hotpatch应该都有不少例子了。先说下走过的弯路,电池没反应我猜测是拆分的锅,就去啃了点ACPI Spec。对hotpatch的内容一行行加注释,把_BST和_BIF的方法都读明白了。不扔笔记了原文都有说的也比我详细。于是用ACPIDebug一个个测,由于没有ACPI的亮度键,只能把读取的语句挂在盖子_LID上面。
于是成功地调出了必要的电池信息。。。
default 20:38:23.206972 +0800 kernel ACPIDebug: "LID0._LID enter"
default 20:38:23.209015 +0800 kernel ACPIDebug: "Env Test"
default 20:38:23.209844 +0800 kernel ACPIDebug: { "OSYS", 0x7df, }
default 20:38:23.210673 +0800 kernel ACPIDebug: { "ECAV", 0x1, }
default 20:38:23.211494 +0800 kernel ACPIDebug: "PASS"
default 20:38:23.212322 +0800 kernel ACPIDebug: "8-Bit Register"
default 20:38:23.213122 +0800 kernel ACPIDebug: { "B1TY != 1 for LiP", 0x0, }
default 20:38:23.220845 +0800 kernel ACPIDebug: { "B1ST Battery State?", 0x0, }
default 20:38:23.222640 +0800 kernel ACPIDebug: "16-Bit Register"
default 20:38:23.223472 +0800 kernel ACPIDebug: { "B1AC Current", 0x0, }
default 20:38:23.224332 +0800 kernel ACPIDebug: { "B1DA Method GSBI", 0x4a33, }
default 20:38:23.226104 +0800 kernel ACPIDebug: { "B1DC Design Capacity", 0x1004, }
default 20:38:23.228159 +0800 kernel ACPIDebug: { "B1DV Design voltage", 0x1e28, }
default 20:38:23.237362 +0800 kernel ACPIDebug: { "B1FC =Last Full Charge Capacity", 0xfc6, }
default 20:38:23.238105 +0800 kernel ACPIDebug: { "B1FV Present Voltage", 0x2235, }
default 20:38:23.239563 +0800 kernel ACPIDebug: { "B1SN Serial number", 0x3a9, }
default 20:38:23.240151 +0800 kernel ACPIDebug: { "B1RC Remaining Capacity", 0xfc6, }
default 20:38:23.253817 +0800 kernel ACPIDebug: { "B1UD Method GSBI", 0x4ad4, }
default 20:38:23.254378 +0800 kernel ACPIDebug: "32-Bit and over"
default 20:38:23.254995 +0800 kernel ACPIDebug: { "BMN0/BMNX OEM Information", { 4c 47 43 20 31 31 00 00 00 }, }
default 20:38:23.267006 +0800 kernel ACPIDebug: { "BDN0/BDNX Model number", { 4c 31 35 4c 34 50 43 33 }, }
default 20:38:23.267834 +0800 kernel ACPIDebug: { "FWBT/FWBX Device VPC0", { 4c 47 43 20 31 31 00 00 00 }, }
default 20:38:23.268661 +0800 kernel ACPIDebug: { "SMDA/SMDX Method MHPF", { 4c 47 43 20 31 31 00 00 00 }, }
default 20:38:23.269465 +0800 kernel ACPIDebug: { "LID0._LID returning", 0x1, }
摔这不是好好的吗。。。然后就没什么头绪了。。。拖了半天发帖求助,发了几份文件后RehabMan回复解决了问题。(ACPIBatteryManager也是他写的)
BAT0存在一个逻辑问题:_STA中引入了ECON进行判断
Method (_STA, 0, NotSerialized)// _STA: Status
{
If (LEqual (ECON, One))
{
If (ECAV)
{
If (LEqual (Acquire (LFCM, 0xA000), Zero))
{
Store (BA1P, Local0)
Release (LFCM)
}
}
If (And (Local0, One))
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Else
{
Return (Zero)
}
}
当ECON为缺省值时,_STA将返回0,导致系统不将其计入ACPI范围,因而电池驱动也无法挂载。而ECON在调用_REG后才初始化
Method (_REG, 2, NotSerialized)// _REG: Region Availability
{
...
Store (One, ECON)
而_STA判定在_REG前,导致死循环。所以需要使_STA返回值非零,将Return (Zero)改为Return (0x0F)
GitHub上的patch也已经更新https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/battery/battery_Lenovo-Miix-720.txt
对于这种patch如何改编成hotpatch,我开始认为_STA过多,不能直接替换,就重命名了整个BAT0重新注一个修改过的进去,当然挂了。顺着气氛接着问了一下这种hotpatch的写法。。。
_STA并没有想当然那么独特
Method (_STA, 0, NotSerialized)// _STA: Status
{
F865: 14 3E 5F 53 54 41 00 // .>_STA.
If ((ECON == One))
{
F86C: A0 33 93 45 43 4F 4E 01 // .3.E
因此还是可以找到一段足够独特的hex 14 3E 5F 53 54 41 00,对应的hotpatch也相当简洁(参见RehabMan的GPRW hotpatch)
External(_SB.PCI0.LPCB.EC0.BAT0, DeviceObj)
External(_SB.PCI0.LPCB.EC0.BAT0.XSTA, MethodObj)
External(ECON, FieldUnitObj)
Method(_SB.PCI0.LPCB.EC0.BAT0._STA)
{
if (!ECON) { Return(0xf) }
Return(XSTA())
}
为什么会这么熟练啊。。。
翻了翻Tonymacx86上面patch笔记本电池的帖子也有400多页了,可怕。。。
本帖最后由 gongzhen 于 2017-9-24 00:24 编辑
5L占楼。。。看看还有什么可以修的一点点update
08.29
最近忙死,拖了好久更新下。。。08.30
更新SD卡相关
把附件扔Clover/ACPI/patched之后TYPE-C热插拔应该能用了,TB3应该还是无解只能插着启动。如果还有什么问题试试把SSDT-UIAC.aml移走。
Credit: KNNSpeed; dpassmor
Clover config可能还要加以下到DSDT/patch里面(貌似不加也正常过) <dict>
<key>Comment</key>
<string>(RP01 only) Rename _RMV to XRMV and use with SSDT-TYPC.aml for USB-C hot plug support</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
MDFbghdIUlVTCF9BRFIAFAtfUk1WAA==
</data>
<key>Replace</key>
<data>
MDFbghdIUlVTCF9BRFIAFAtYUk1WAA==
</data>
</dict>
顺便要装10.13的话把SSDT-PluginType1.aml挪走,都装好之后再挪回去。用ig-platform-id=0x12345678安装/升级,把clover的DVMT patch换成10.13那段,alternative patch我以前没成功过也没功夫试了,minstolen换好之后重启重建缓存再换回0x59160000。
PS:10.13如果用apfs文件系统记得往driver64uefi下面丢一个apfs.efi,可以去这里找下:
https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1755235
别的应该都没什么问题,无法睡眠像是USB的锅,可以把SSDT-PluginType1.aml删掉,能正常睡眠就是没有HWP和原生电源管理。。。不过没感觉有什么区别
SD卡一样,一部分是给RP05.PXSX一个包含compatible的_DSM,另一部分是RP05.PXSX到RP05.SDXC的更名
Credit: Hervé
Clover config DSDT patch
<dict>
<key>Comment</key>
<string>(RP05 only) Rename RP05.PXSX to RP05.SDXC and use with SSDT-SDXC.aml for SDXC</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
UlAwNS5QWFNY
</data>
<key>Replace</key>
<data>
UlAwNS5TRFhD
</data>
</dict>
<dict>
<key>Comment</key>
<string>(RP05 only) Rename RP05PXSX to RP05SDXC and use with SSDT-SDXC.aml for SDXC</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
UlAwNVBYU1g=
</data>
<key>Replace</key>
<data>
UlAwNVNEWEM=
</data>
</dict>
<dict>
<key>Comment</key>
<string>(RP05 only) Rename Device(PXSX) to SDXC and use with SSDT-SDXC.aml for SDXC</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
UFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQU
LUhQTUUIoCaQkpNWRElEDP////+TUE1TWAGG
UFhTWAoCcAFQTVNYcAFQU1BYFA9fUFJXAKRH
UFJXCmkKBBQWX1BSVACgClBJQ02kQVIwNKRQ
UjA0W4JLN1JQMDY=
</data>
<key>Replace</key>
<data>
U0RYQwhfQURSABQPX1BSVwCkR1BSVwppCgQU
LUhQTUUIoCaQkpNWRElEDP////+TUE1TWAGG
U0RYQwoCcAFQTVNYcAFQU1BYFA9fUFJXAKRH
UFJXCmkKBBQWX1BSVACgClBJQ02kQVIwNKRQ
UjA0W4JLN1JQMDY=
</data>
配置和我的差不多,现在连安装界面都进不去... 等楼主三楼的教程。我酷比魔方i7手写本的触摸屏没搞定。马克下 触屏在10.12.6正常么? 电量显示怎么整呢?这个帖子有上传附件么? 10.12.6 nvme u盘安装后用u盘能引导进入系统,系统安装clover hid legacy shim 2,爬坑中 多谢大神!大神辛苦了 夜雨声烦丶薇 发表于 2017-7-20 16:12
10.12.6 nvme u盘安装后用u盘能引导进入系统,系统安装clover hid legacy shim 2,爬坑中
这条log应该不是故障原因…… 前排留名,围观大神 gongzhen 发表于 2017-7-20 16:55 https://www.pcbeta.com/static/image/common/back.gif
这条log应该不是故障原因……
不太清楚,u盘可以引导 这个必须看了 这对黑苹果小白的我,就雪中送炭!超赞!{:5_280:} 不错的教程,先了解了解 已经安装成功,谢谢🙏 谢谢了,希望可以使用 分一个fat32分区出来这个不明白,这个分区是单独用的分区还是安装mac os的分区,如果是安装mac os的分区的话,安装的时候格式化磁盘那扔进里面的Preinstall岂不是那就没了???后面又说把Postinstall里面的东西扔进fat32分区,那这个分区是不是应该是单独的一个分区,不是用作安装mac os的???还有下面那个敲代码那个不明白,,说什么第一行第二行的看不懂。。望楼主解释一下,小白好不懂~~~~ 楼主,我换了BCM94352z,但在执行完perl -pi -e 's|\x89\x4D\xC8\x41\x39\xCD\x76\x53|\x89\x4D\xC8\x41\x39\xCD\xEB\x53|g' /Volumes/分区名/System/Library/Extensions/AppleIntelKBLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelKBLGraphicsFramebuffer 后,没有任何显示
进入系统后,蓝牙可以使用,wifi不能用,这个能帮帮忙吗,谢谢!!