机型Macmini8,1 陆陆续续折腾了半个月,终于完美了。
原本家里有台Ryzen 1600的台式机装了黑苹果用了几年,嫌它占地方,磁盘256G的也不太够用了。而且AMD的CPU升级系统比较麻烦,补丁如果不注意更新就有可能升挂。而且显卡是K2000的N卡,12开始已经不支持了,于是有了更换的念头。
淘宝开始采购 Dell OptiPlex 7060小机器 i9-9900T 16G 2666内存x2 BCM94360Z4网卡 京东采购 500G m2 西数蓝盘(装系统) 2T sata 西数机械蓝盘(一半做TimeMachine,一半存资料)
结果收到机器就翻车了,cpu插上机器点不亮,黄灯一闪加风扇转几圈停机。 卖家写的是支持8/9代u,但是查了资料7060只支持8代u,需要改造bios加入9代u的代码(早知道加几十元买7070了)
好吧,买都买了,网上找了改好的bios自己刷 临时从其他机器拆了一颗8700的u换上,装上win,主板跳线到service模式开始刷机
结果刷完又翻车,这次直接黄白灯交替闪烁,风扇彻底不转,8700的8代U都点不亮。 意识到,这下彻底变砖了。。。。
现在回想要么是fptw64刷写程序版本弄错了,要么是固件有问题,要么是偏移地址弄错,因为是部分刷写。
为了救砖,又开始在淘宝下单 CH341a土豪金编程器 SOP16烧录夹(因为主板上sip芯片是16脚32M的) XTW100编程器(因为网上有人说ch341a不支持32M的芯片,所以一并买了这个)
收到编程器,首先处理烧录夹,因为编程器是针对sop8的8脚封装的芯片,找到芯片资料,把16脚烧录夹按照每个脚的功能对应到8脚芯片对应脚位(其实16脚芯片也只用到了8个脚)
找了个win笔记本装上XTW100驱动,usb插上设备,嗯,认不到。问卖家,win10需要另外找驱动。。。好吧,难不倒 7060机器断电,拆掉电池。用线夹小心地夹住芯片 编程软件里检测芯片,不认识,没关系,找个25系列32M的应该也可以吧。 开始读取,哎…,读出来怎么全是00 再读,怎么都是FF 看来XTW100也翻车了,找了一些说法,XTW100线刷不太行,主要对拆下来的芯片比较好使。
那换CH341a,打开卖家送的软件,果然芯片列表里找不到32M的芯片支持,不过选了一个16M的居然能读出数据来。看来这个靠谱一点,起码能线刷读出数据。 继续研究了一下这个东西,发现它只是负责读写数据,不应该有容量限制,应该是芯片数据库不完整。 开始找更高版本的编程器软件,测试了无数个版本后,终于找到一个CH341A V2.2.1.0,直接能识别到芯片型号。
经过多次读取并比较每次读取的文件,内容都是一致的,说明这个设备和程序版本比较稳定。
因为这次要完整写入整个bios,所以找了完整的改好的支持9代u的7060 bios镜像文件。32M大小,和主板上芯片容量一致。
准备妥当,开始刷入bios。其实比较简单 第一步:擦除,因为XOR芯片都要求写入前要擦除数据,让内容都变成FF 第二步:打开镜像文件,写入 第三步:校验
大概5分钟后,一切正常,显示成功。
拆除线夹,插电,开机。 正常白灯,风扇转起。过一会屏幕显示DELL logo,成了!
正常情况下,下面应该是安装系统了。
不过我是想把老系统从250G的磁盘上复制到新买的500G硬盘上,也就是系统迁移并扩容。 网上找了资料说要什么软件,反正试了没一个靠谱的。
打开macos自己的 磁盘工具,发现有 创建镜像、恢复… 的功能,嗯,大概可行。
我的老机器上已经没有第二个M.2插槽了,还好,之前淘宝上买过一个M.2转接USB的小设备。 找出来,装上新买的500G NVME,然后插到老机器的USB口,直接能认到U盘设备。
打开磁盘工具,对新硬盘进行抹除,选择GPT,APFS分区。
然后选中新建的apfs分区,右键菜单选择 恢复…,弹出对话框选择来源镜像。 选择当前老系统盘,发现无法恢复到新盘。 具体错误忘了,反正正在运行的系统盘无法恢复过来。这和我想象中的剧情貌似不符。。。
难不倒,重启进入Recovery模式,在恢复模式打开磁盘工具 再操作一遍恢复步骤,这次没问题,把系统成功恢复到新硬盘,容量也调整好了。发现他的恢复是按照目标分区大小进行的内容复制。nice
顺便,找出一个移动硬盘盒,插上新买的2T机械盘,同样的方法,把老电脑里面的TimeMachine盘也恢复到新硬盘上。
下一步是调整EFI,适配新机器了。这个黑果小兵上有现成的机型EFI,找到替换好。
把2个新硬盘拆下装到7060里面,bios里作些常规调整。开机 先进modGRUBShell.efi,setup_var解锁cfg和64M dvmt
重启后成功进系统。 4K,声音,wifi,蓝牙,睡眠 完美。
我以为完美了。。。。
直到,我从睡眠中唤醒机器,更严重的翻车开始了。
具体症状是:从睡眠唤醒后,核显加速会失效。表现为所有需要核显加速的应用都会卡死,界面空白。 比如Hackintool打开空白,鼠标转圈。 Chrome打开内容空白,鼠标转圈。 系统设置,打开显示器,鼠标转圈。 VDADecoderChecker,卡死。 。。。。。
这一切,只要重启机器又会恢复正常。
我以为是framebuffer的问题,结果尝试了不同device-id,不同机型后,问题依旧。更新oc到最新,也不行。 这尼玛,就诡异了。。。。
翻遍了OpenCore手册,所有和Sleep/iGPU相关的,该补的都补上了,除了一个叫做IMEI的东西。这个东西和核显的电源管理相关。
按照OpenCore的说法,IMEI (Intel Management Engine Interface),如果DSDT里面能找到HECI/IMEI,一般不需要处理。 我用MaciASL看了系统DSDT,确认存在HECI的,而且我打上HECI->IMEI的改名补丁后,故障依旧。
ioreg | IMEI 找不到任何信息,而在我的其他黑苹果系统上是能找到这个设备的。
这就很神奇了,DSDT中明明定义了这个设备,但是用Hackintool查看PCIe设备列表,却发现没有这个设备。 它应该出现在 PciRoot(0x0)/Pci(0x16,0x0) 这个位置才对。
继续搜索,发现一些和我类似的案例,问题都指向BIOS的 ME 没有开启。 因为有个HP机器的案例,也是同样的症状,而且PCI列表中没有IMEI设备。BIOS里找到并打开 Intel Management Engine (ME)后,就能恢复正常。 ( https://github.com/acidanthera/bugtracker/issues/990#issuecomment-671273436 )
我在7060的BIOS设置里找遍了也没找到怎么开启ME。
好了,问题变成了我怎么打开BIOS里的ME开关。
继续找了几天资料,得到几个结论。 1.Dell的很多机器出厂就禁用了 ME,而是开启了 AMT 。 这叫做 Intel Active Management Technology 啥玩意一时半会咱也搞不懂,貌似是更高级的东西,但是核心是基于ME的,也就是必然存在ME,只是没对系统暴露。 2.好像没有设置项可以调整设置,需要魔改BIOS。 3.有国外的Dell网友也在咨询怎么关掉AMT,打开ME,来使黑苹果睡眠更好工作。
这次我没找到现成的给7060打开了ME的bios固件,但是找到了一些修改的方法步骤和工具。 好歹我现在也算是成功救过砖的人,再多刷几次就要成熟练工了。
现在我有 7060_9thCPU.bin 基础BIOS文件(之前找到的7060打了9代u代码的,完整镜像)
找来ME Analyzer工具,分析当前固件文件里的ME相关信息
根据固件中的ME版本,找到大版本一致的Intel CSME 工具。 我的是12.0.40.1433,于是找到CSME System Tools v12 r38下载回来 解压后,里面有个Flash Image Tool工具,他可以对ME固件作修改设定 用它打开bios文件,切换到 Intel(R) AMT 把下面三项改成No Intel (R) AMT Supported: No Intel (R) ME Network Services Supported: No Manageability Application Supported: No
这样就禁用了AMT
下一步保存(xml格式的文件) 接着开始build镜像 但是提示信息显示一堆警告,提示固件从运行系统dump出来的,修改没法保存。
重新仔细阅读操作说明后,发现漏了一个步骤,不能用bios里面的me固件来打包,需要替换一个干净的me固件来打包。
下载CSME 12.0 Repository r32,从中找到原始固件 12.0.40.1433_COR_H_BA_PRD_RGN.bin (这个需要根据 ME Analyzer读取的信息来选择版本和SKU一致的) 改名ME Sub Partition.bin后替换。
重新进Flash Image Tool,打开之前保持的xml文件,再次Build镜像。这次顺利生成一个outimage.bin文件
具体情况比较复杂,可以看完整指南 https://www.win-raid.com/t1658f39-Guide-Clean-Dumped-Intel-Engine-CS-ME-CS-TXE-Regions-with-Data-Initialization.html
从柜子里再次起出刷机神器 CH341a,拆机断电,线夹连接,刷入这个新的outimage.bin
开机点亮,老规矩,进bios常规设一下,然后进modGRUBShell重新cfg和dvmt调整,reboot
重启进系统,Hackintool查看PCIe列表,已经成功出现IMEI设备了,ioreg|grep IMEI也显示有驱动了
试一下睡眠后唤醒 核显加速依然正常,故障现象全部消失,这就很nice
总结下来一个字: 累,瞎折腾
|