关于 System76 的开源固件项目,你需要了解的内容

System76 首席工程师 Jeremy Soller 在本次问答中讨论了该公司针对开源嵌入式控制器的项目。
129 位读者喜欢这个。
Person using a laptop

当你打开电脑电源时,会发生比你想象的要多的事情。其中最重要的元素之一是嵌入式控制器 (EC)。它负责为电池、充电系统、键盘、触摸板、挂起/恢复和散热控制等提供抽象。这些控制器通常是专有的,并且通常运行专有固件。

System76 即将改变这种模式。最近,该公司在其 Galago Pro 和 Darter Pro 笔记本电脑型号中采用了 coreboot。现在他们打算将开源方法扩展到 EC。有一个与 Chrome OS 设备相关的项目,名为 Chromium EC,它是开源的;但是,它仅适用于 Chromebook 和特定的 EC 芯片。System76 也希望为其客户提供开源嵌入式控制器固件。

他们必须从头开始一个项目,该项目可以为他们笔记本电脑中的 EC 架构 Intel 8051 进行编译。他们的 开源 EC 项目,System76 EC,是 System76 笔记本电脑的 GPLv3 许可的嵌入式控制器固件。它旨在可移植到使用多个 8 位微控制器的板卡。该项目已经发展到可以启动 System76 Galago Pro 并拥有前面提到的电池、键盘、触摸板、挂起/恢复和散热控制。

为了渴望了解更多信息,我给 System76 首席工程师 Jeremy Soller 发送了电子邮件,以进行更深入的探讨。以下是我们对话的一些亮点。

问:Intel 8051 的重要性是什么?所有笔记本电脑都使用该芯片组吗?

答:我们笔记本电脑中的嵌入式控制器 ITE IT8587E 使用 Intel 8051 指令集。并非所有笔记本电脑都使用此指令集,但很多都使用。这很重要,因为我们需要一个工具链,该工具链可以为 8051 指令集编译固件,以及为该工具链编写的固件。

问:编写开放代码以利用 Intel 8051 涉及哪些方面?

答:主要我们需要定义寄存器以利用嵌入式控制器上的硬件。存在诸如 SMBus 和 PECI 之类的协议,这些协议在硬件中实现并且需要它们的驱动程序。这些驱动程序通常必须为每个嵌入式控制器编写,以抽象其硬件,因此存在一个通用接口。我们的 EC 固件对某些 Arduino 以及我们笔记本电脑中的 EC 进行了抽象,因此我们可以编写可移植的固件。

问:谷歌开发了一个开放式 EC。为什么不 fork 该项目?

答:我们最初的概念是为我们的开放式 EC 固件使用 Chromium EC,但这不可能。在与谷歌团队中从事该项目的人员进行讨论后,很明显该固件无法移植到 8 位微控制器(如我们 EC 中使用的 8051 或许多 Arduino 中使用的 AVR)。它主要针对 ARM 微控制器。我们一致认为,最好启动一个针对 8 位微控制器的新项目,这是一个新的代码库,它采用 GPLv3 许可证,而不是 Chromium EC 使用的 BSD 许可证。

问:System76 开源代码有多重要?

答:唯一具有开源 EC 固件的 x86_64 笔记本电脑是某些使用 Chromium EC 的 Chromebook。但是,这些笔记本电脑对 Ubuntu 等完整桌面 Linux 发行版的支持很差。我们为笔记本电脑用户提供了重要的功能,可以查看和修改笔记本电脑的行为以满足他们的需求,同时运行完整的桌面操作系统。当它与我们的开放系统固件配对使用时,用户几乎可以对这些笔记本电脑做任何事情。

问:开放代码对固件和其他开发人员有何影响?

答:我坚信,开放式 EC 固件对于硬件定制的重要性将与开放式系统固件一样。用户可以调整键盘映射、更改风扇曲线、修改电池充电设置等等。关于这一变化最令人兴奋的事情是,我无法预测所有可能发生的事情。系统中的许多组件都与 EC 固件相关联。能够更改 EC 和系统固件意味着这些组件可能会以大量不同的、不可预测的方式进行修改。

问:开发此 EC 的软件真正重要的是什么,它有何独特之处?

答:特别重要的是,我们正在使用的 EC 是 IT8587E,其指令集架构是 Intel 8051。Chromium EC 无法为 8051 编译,因为它针对的是 32 位微控制器。我们的项目旨在支持来自许多供应商的无处不在的 8 位微控制器,以及 Arduino 以方便原型设计。此外,这统一了我们在 Thelio Io 上所做的工作与我们在笔记本电脑固件方面所做的工作。

接下来阅读什么
标签
User profile image.
教育家、企业家、开源倡导者、终身学习者、Python 教师。教育心理学硕士,教育领导学硕士,Linux 系统管理员。

1 条评论

好!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.