04-02-2020, 10:52 AM
HP EliteBook 是我最常用的笔记本系列之一。由于 ThinkPad 在 Haswell 低压处理器和 Broadwell 开始的平台上都启用了 Boot Guard,于是我再次考虑 EliteBook 系列。在 laboneinside 下了几份 EliteBook 的固件,惊喜地发现里面都没有 Boot Guard profile,也就是说没有 Boot Guard,于是我就考虑入手了。这次先入一台 Haswell 低压处理器的 12 寸笔记本 EliteBook 820 G1,这个机型的配置相对固定,没有独显型号。
在这之前,其实我还是有点担心。因为最近 coreboot 邮件列表上讨论某款 HP 的笔记本的 coreboot 移植问题,有人提到了 HP 有一个叫 Sure Start 的类似 Boot Guard 的技术,它是在 EC 固件里面实现的。不过我看了一下 Sure Start 的白皮书,似乎是种类似 measured boot 的机制,不见得会让改过固件的机器无法启动。值得一提的是,HP EliteBook 的 Haswell 和 Broadwell 两代型号的固件都用 MEC1322 作为 EC,而 Chrome EC 恰好支持这个芯片,说不定以后能把这个自由的 EC 固件移植上去。
拿到机器后先检查外观,然后打开后盖,装上一块硬盘启动。HP EliteBook 的官方固件的引导逻辑比较不友好,以前我就体验过了。这次是因为硬盘里面没有设置活动分区,导致固件认为它不是启动设备,于是我先用 USB 启动用 fdisk 设了活动分区,然后正常启动。
用 lscpu 和 dmidecode 看 CPU 和内存的情况。然后用 lspci 看硬件。我收到的这台机装的是 HP 祖传的 Broadcom 无线网卡。820 G1 的无线网卡用的还是半高 mini PCIe 卡槽,因此不需要再买一块 M.2 的卡。
最后说一下大家最关心的 Boot Guard. 此前没考虑 EliteBook,是因为我在中关村疏解之前,现场在一台 EliteBook 上用 intelmetool 检查过,发现有 Verified Boot. 但是后来我发现这工具的检查并不准确。这次我使用了 win-raid.com 论坛上的 MEInfo,在 ME 9.5 的这个版本上还没有 GNU/Linux 的版本,但是有 UEFI 版本。用法很简单,从 Arch 的启动盘里复制一份 shellx64_v1.efi (v2 在这台机上用不了) 到 U 盘,再把 MEInfo 的 EFI 版本复制到 U 盘,设置笔记本用 UEFI 启动,重启后选择启动设备,选择从 EFI 文件启动,启动 EFI shell,然后运行 MeInfo.efi 就行了,EFI shell 也支持重定向输出到文件。MeInfo 报告 Boot Guard 是禁用状态。至于 Boot Guard 是个什么状况,只有之后尝试修改了固件之后才知道了。
另外还有一项挑战,就是这台机子没法用 EHCI 调试了,因为上面的 USB 只有 USB 3.0 接口,在网上找了几张这个机器底座的图片,底座也没有 USB 2.0. 于是只能使用 SPI console 调试了,spkmodem 也许可以,但可能 8254 timer 在新的机器上不好用了,可以尝试一下。
在这之前,其实我还是有点担心。因为最近 coreboot 邮件列表上讨论某款 HP 的笔记本的 coreboot 移植问题,有人提到了 HP 有一个叫 Sure Start 的类似 Boot Guard 的技术,它是在 EC 固件里面实现的。不过我看了一下 Sure Start 的白皮书,似乎是种类似 measured boot 的机制,不见得会让改过固件的机器无法启动。值得一提的是,HP EliteBook 的 Haswell 和 Broadwell 两代型号的固件都用 MEC1322 作为 EC,而 Chrome EC 恰好支持这个芯片,说不定以后能把这个自由的 EC 固件移植上去。
拿到机器后先检查外观,然后打开后盖,装上一块硬盘启动。HP EliteBook 的官方固件的引导逻辑比较不友好,以前我就体验过了。这次是因为硬盘里面没有设置活动分区,导致固件认为它不是启动设备,于是我先用 USB 启动用 fdisk 设了活动分区,然后正常启动。
用 lscpu 和 dmidecode 看 CPU 和内存的情况。然后用 lspci 看硬件。我收到的这台机装的是 HP 祖传的 Broadcom 无线网卡。820 G1 的无线网卡用的还是半高 mini PCIe 卡槽,因此不需要再买一块 M.2 的卡。
最后说一下大家最关心的 Boot Guard. 此前没考虑 EliteBook,是因为我在中关村疏解之前,现场在一台 EliteBook 上用 intelmetool 检查过,发现有 Verified Boot. 但是后来我发现这工具的检查并不准确。这次我使用了 win-raid.com 论坛上的 MEInfo,在 ME 9.5 的这个版本上还没有 GNU/Linux 的版本,但是有 UEFI 版本。用法很简单,从 Arch 的启动盘里复制一份 shellx64_v1.efi (v2 在这台机上用不了) 到 U 盘,再把 MEInfo 的 EFI 版本复制到 U 盘,设置笔记本用 UEFI 启动,重启后选择启动设备,选择从 EFI 文件启动,启动 EFI shell,然后运行 MeInfo.efi 就行了,EFI shell 也支持重定向输出到文件。MeInfo 报告 Boot Guard 是禁用状态。至于 Boot Guard 是个什么状况,只有之后尝试修改了固件之后才知道了。
另外还有一项挑战,就是这台机子没法用 EHCI 调试了,因为上面的 USB 只有 USB 3.0 接口,在网上找了几张这个机器底座的图片,底座也没有 USB 2.0. 于是只能使用 SPI console 调试了,spkmodem 也许可以,但可能 8254 timer 在新的机器上不好用了,可以尝试一下。