在 X60 上安装 Libreboot,第一部分:设置
最近,我在 Linux Journal 网站上为 Purism Librem 15 笔记本电脑 写了一篇评测。这款笔记本电脑的目标是提供一款现代硬件,它不仅可以为操作系统,而且可以为所有设备驱动程序和固件(包括 BIOS)运行 100% 的自由软件。在我撰写本文时,该项目在这方面最后的主要障碍是 Intel Management Engine:一个专有的固件,是启动现代系统所必需的。在那篇评测中,我写了以下内容:
事实证明,拥有一台完全自由软件的笔记本电脑相当困难。即使您可以选择可以使用自由软件驱动程序的硬件,仍然存在着令人讨厌的 BIOS。虽然 coreboot 和 libreboot 是很棒的自由软件 BIOS 实现,但要在许多笔记本电脑上安装它们,需要使用 pomona 夹等硬件 BIOS 芯片刷写——这种事情我还没准备好为了尝试而把笔记本电脑搞坏。像其他隐私倡导者一样,我转向了旧的 ThinkPad X60 笔记本电脑系列。虽然它很旧,性能不足,并且按照今天的标准来看屏幕分辨率很低,但键盘很棒,更重要的是,您可以从 Linux 本身刷新其 BIOS,使用 coreboot 或 libreboot——无需硬件破解。所以我就这样做了。
虽然 Purism 15 笔记本电脑对于那些想要自由软件笔记本电脑的人来说似乎是一个可行的选择,但在我撰写本文时,众筹活动仍在进行中,即使在完成后,也需要一段时间才能发货。此外,像这样的新笔记本电脑并不便宜,许多可能想要运行 100% 自由软件的笔记本电脑的人可能没有 1600 美元以上的预算。我已经在拍卖网站上找到了二手 ThinkPad X60 笔记本电脑,价格低至 30 美元,因此,如果您愿意接受一些旧硬件的限制,那么这是一个以低廉的价格获得一台只运行自由软件的体面机器的途径。
我第一次尝试用 coreboot 刷写 X60 时,这是我用 Linux 做过的最困难的事情之一,以至于我从没打算在 Linux Journal 上写这篇文章。最近,我再次尝试,只是这次使用的是 Libreboot——一个 coreboot BIOS 发行版,它移除了所有专有软件。这个过程大大简化和自动化,以至于我觉得可以相对放心地推荐其他人尝试它(有一些我稍后会解释的注意事项)。
在接下来的几篇文章中,我将逐步介绍我如何走到现在正在用它来写这篇专栏文章的运行 Libreboot 的 X60。在第一部分中,我讨论了设置,包括 Libreboot 是什么,它目前支持哪些硬件,以及刷写 BIOS 周围的一些风险。如果到本文结尾我还没有吓跑您,那么在未来的文章中,我将介绍如何下载 Libreboot 并验证其完整性,如何在详细说明示例脚本输出的情况下刷新 BIOS 本身,以及如何修改默认的 GRUB 引导加载程序。如果您等不及下个月,我的很多过程都是基于 https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X60 上提供的优秀指南。
BIOS 中的自由要理解 Libreboot,首先了解 coreboot 会有所帮助。Coreboot 是一个开源的 BIOS 替代品。使用 coreboot,您可以在受支持的硬件上用开源软件替换专有 BIOS,其中包含最少量的专有固件,以支持 BIOS 中的视频硬件或较新硬件上的 Intel Management Engine 等功能。Coreboot 目前并不支持所有硬件,尽管列表在不断增长,您可能会惊讶地发现 Chromebook 默认情况下随附 coreboot。要在大多数受支持的硬件上安装 coreboot,您必须使用外部硬件,包括像 8 针 Pomona 夹这样的连接器来重新刷写 BIOS 芯片。这对很多人来说都相当麻烦,但幸运的是,包括 X60、X60s、X60 平板电脑和 T60 在内的一些硬件可以完全在软件中刷写。
几个月前,当我第一次尝试用 coreboot 刷写 X60 时,这个过程涉及到拆卸笔记本电脑,用放大镜检查主板的底面,以便确定我拥有的两种 BIOS 芯片类型中的哪一种。我使用这些信息手动修补 flashrom 软件,使用自定义代码,并编译了一个特殊版本,只是为了解锁我的 BIOS。然后我下载、配置并编译了一个适用于我的笔记本电脑的自定义 coreboot BIOS 映像,并经历了两个阶段的刷写。最后,我让它工作了;但是,我需要从我的专有 BIOS 中剥离并包含专有的视频固件,以便在启动时获得任何视频——当您想在硬盘和 USB 启动之间进行选择时,这很有用。
Libreboot 是 coreboot 的自定义发行版,它从 BIOS 中移除了所有专有软件。例如,Libreboot 没有专有的 BIOS 启动选择器,而是直接启动到它自己的 GRUB 菜单中,您可以使用该菜单加载您自己的底层操作系统。此外,Libreboot 还自动化了围绕安装 coreboot 的许多困难过程,并为其官方支持的硬件提供了自定义脚本和预构建的 ROM。
但是,您为什么要一个自由软件 BIOS 呢?对于那些完全支持自由软件基金会和自由软件原则的人来说,您不需要任何进一步的理由。虽然我传统上对自由软件与开源软件的辩论采取了更务实的态度,但正如我在 Librem 15 评测中所解释的那样,我最近更有动力在任何地方寻找自由软件:
支持的硬件过去,我不太在意我是否必须使用二进制 blob 才能使无线网卡或显卡工作,只要它能工作就行,而且我绝对不在意我的 BIOS 是专有软件。
然后斯诺登泄密事件发生了。隐私泄露的深度和广度促使我加强了整体安全并专注于隐私。过去,认为二进制 blob、固件或 BIOS 中可能存在某种 NSA 批准的间谍软件似乎相当偏执。在斯诺登泄密事件以及随后关于 ANT 目录的披露之后,这些事情不再显得那么牵强。我发现自己更倾向于斯托曼阵营。真正确保您的系统上没有后门的唯一方法是能够看到所有软件的源代码,从浏览器插件到内核驱动程序,一直到 BIOS。
由于 Libreboot 避免在 BIOS 中使用任何专有固件,因此其硬件支持在某种程度上受到限制。其中一个原因是,即使要启动,现代 Intel 硬件也需要专有的 Intel Management Engine 固件。虽然您可能可以让 Libreboot 在其他硬件上工作,但在这一点上,只有少数笔记本电脑在其 硬件兼容性列表 中被列为官方支持:
-
联想 ThinkPad X60/X60s
-
联想 ThinkPad X60 平板电脑
-
联想 ThinkPad T60
-
苹果 MacBook1,1
-
苹果 MacBook2,1
您可能会发现此列表上的所有笔记本电脑都有一个主要共同点:它们都很旧。在大多数情况下,我们谈论的是 32 位 Intel Core Duo 处理器,或者在某些情况下是 64 位 Core 2 Duo(并且 T60 的 CPU 显然可以更换为 64 位 CPU)。即便如此,X60 仍然是一款不错的硬件,配备了坚固的键盘和不错的电池续航时间,即使 CPU 速度较慢,屏幕分辨率按照今天的标准来看也很低。
即使在这个受支持的硬件列表中,也存在一些例外。虽然所有 X60s 都受支持,但只有使用 Intel GPU 的 T60s 受支持,而使用 ATI GPU 的 T60s 不受支持。Libreboot 硬件兼容性页面提供了更多信息,以帮助您了解哪些受支持,哪些不受支持。该页面还列出了推荐的 Wi-Fi 芯片组,这些芯片组已知可以与 Libreboot 和 Linux 很好地配合使用,因为它们不需要任何专有的二进制 blob 即可运行。
冒险的业务如果这还用不着说,那么用自定义软件重新刷写笔记本电脑上的 BIOS 是有风险的!虽然到目前为止,我在刷写几台不同的 X60 时都取得了成功,但当我突发奇想,尝试使用我自己的自定义 ROM 而不是 Libreboot 提供的 ROM 进行初始刷写时,我确实暂时搞坏了一台笔记本电脑。在大多数情况下,该过程是直接且自动化的,但正如您将在我的后续文章中看到的,其中描述了每个步骤,许多自动化脚本调用了其他软件,这些软件在过程中输出了一些非常可怕的警告和错误,您应该忽略这些警告和错误。
在此过程中,您主要可以通过两种方式搞坏您的笔记本电脑。首先,您可能在初始引导刷写阶段遇到坏的刷写。如果发生这种情况,但您使用的是 Libreboot 提供的 ROM 之一,那么您应该做的就是关闭机器,拔下 CMOS 电池几秒钟,重新连接并打开机器电源,以返回到原始 BIOS。
如果您在初始引导阶段使用自定义 ROM 进行刷写(就像我曾经尝试过的那样),在过程中断电,在不兼容的硬件上尝试此操作,或者以其他方式遇到最坏的情况,您可能会最终得到一台完全无法启动的机器。由于您无法启动回您的操作系统,因此您无法尝试重新刷写,因此您会被一台变砖的笔记本电脑困住,除非您购买可以刷写 BIOS 芯片的硬件,例如 BusPirate 或运行自定义软件的 Raspberry Pi。也就是说,如果您拥有该硬件,正确地连接它,并且您记得首先备份您的原始 BIOS,那么您应该能够将您的笔记本电脑恢复正常。
虽然到目前为止,当我严格按照说明操作时,我都成功了,但仍然有可能您会搞坏您的笔记本电脑,因此,如果您特别喜欢您的笔记本电脑,并且无法承担在您购买硬件刷写工具期间它无法使用的风险,您可能需要重新考虑走这条路。同样,如果您货比三家,您可以在网上以相对便宜的价格买到二手 X60,因此如果您担心,您可能想先用一台备用机器尝试一下。
结论好吧,如果我还没有吓跑您,我希望您查看本系列的下一篇专栏文章,我将在其中直接介绍有关如何使用 Libreboot 刷写 X60 的分步说明。虽然这个过程不像更新传统的专有 BIOS 那么简单,并且需要许多不寻常的步骤,但大部分困难的工作已经为您完成,最终您将拥有一台没有专有固件的可信机器。