Iru Cai
Iru Cai
What about using stable/linux-stable of the official kernel repo? https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/?h=v3.18
ZBook G1应该有HP Sure Start. 你可以参考一下 https://review.coreboot.org/c/coreboot/+/45577 你当然可以先尝试删这个模块,如果HP Sure Start在这个机器上存在的话,估计会把整个PEI区域恢复回原样,你用编程器再读一次就可以验证。 如果这个办法在这个机器上能用的话,就意味着你会把机器的Machine Unique Data都去掉,同时由于你要改IFD缩小BIOS区域,你可能还需要用me_cleaner砍掉部分ME固件为BIOS留出空间。在这些事情做完之后,才能再考虑改BIOS区域的问题。
我手上那台Haswell的EliteBook直接就移植coreboot了,还没尝试这样改原厂固件。
你需要仔细找找有没有另外一块flash芯片。一个比较简单的做法是先用ifdtool -u解锁IFD(原厂固件一般都锁的),刷入解锁IFD的固件,之后启动计算机,再读一次flash,看看IFD区域(前4K)是不是没变。如果没变的话就说明IFD被恢复了,很可能就是从另一块flash恢复的。
不过直接改PEI区域也足够检验这件事了。
我也不知道怎么找。当初我是看名字觉得哪个可疑就删哪个。
那个所谓的EC ROM就是private flash. 我之前见过一些拆机图,看起来是在键盘下面。
另外感兴趣的话可以移植一下coreboot. 移植的时候可以用 Haswell autoport (https://review.coreboot.org/c/coreboot/+/30890) ,并参考一下 EliteBook Folio 9480m 怎样处理 EC 的初始化。 我现在发现有些 Haswell 的设备用现有的 coreboot 代码和 mrc.bin 初始化内存不太正常,不知道 ZBook 是不是这样。
那些微码PEI实际上是16M system flash的相应内容的一个备份,这是给Sure Start用的。 现在还不清楚Sure Start用了什么校验算法验证这些内容的有效性,所以最简单的方法是直接把整块2M的flash擦除。这是绕过Sure Start的第一步。(IFD, GbE, MUD, ucode, PEI 的校验和自动恢复) 第二步是改IFD,这是因为EC固件还会对PEI区域做数字签名校验,所以要把BIOS区域前移。要验证EC固件会不会校验PEI,可以尝试在第一步之后,再次修改PEI区域,如果这时候无法给机器上电,那就是EC固件检测了PEI区域被修改而拒绝启动。 目前我还不知道对原厂固件做这些修改的效果,理论上可以用me_cleaner缩小ME区域,留出空间用于把BIOS区域移到前面。 coreboot文档HP Sure Start: https://doc.coreboot.org/mainboard/hp/hp_sure_start.html HP EliteBook Folio 9480m的coreboot刷写流程: https://doc.coreboot.org/mainboard/hp/folio_9480m.html#programming
拆掉2M flash这个做法我没试过,不知道会不会改变EC固件的行为。 作为参考,Haswell这代的EliteBook有Sure Start,但是ProBook 640 G1没有,它们的EC固件很相似,而ProBook 640 G1只有一块flash.