树莓派UEFI+ACPI

我在 边缘云计算构建 上部署 Alpine Linux排查树莓派OpenRC:acpid crashed 发现,常规树莓派firmware并没有支持ACPI,无法实现ARM的Server Base Boot Requirement (SBBR)规范:

  • 由于系统没有 /dev/input/event0 设备而导致 acpid 服务 crashed

  • 缺少 /sys/class/backlight/ 设备目录及控制文件,无法通过 ACPI 接口调整 Linux屏幕背光

ARM SBSA和SBBR

随着ARM进入服务器市场,ARM需要实现不需要修改或hack系统就能够启动标准操作系统,就像x86服务器上启动操作系统一样。所以,在2014年,ARM公司发布了 Server Base System Architecture (SBSA) 规范来帮助所有单一操作系统镜像(single OS image)能够运行在所有ARMv8-A服务器上。

随后,ARM发布了服务器基础启动要求(Server Base Boot Requirement, SBBR )规格来描述服务器的标准firmware接口,包括了 UEFI, ACPI 和 SMBIOS 工业标准,并且在 2018 年引入了ARM服务器的ARM服务器就绪认证程序( Arm Serverready compliance program )。

树莓派UEFI firmware

上述规范都是面向ARM服务器,现在开发者也在实现将SBBR兼容引入ARM个人电脑,并且有一个 Making Pi ServerReady 项目专注于 树莓派Raspberry Pi 4 SBBR-compliant (UEFI+ACPI) AArch64 firmware 开发,为树莓派进入服务器领域提供支持。

这个树莓派UEFI firmware是从 64位 Tiano Core UEFI firmware port到 树莓派Raspberry Pi 4 的,目前持续活跃开发。不过,需要注意, 树莓派Raspberry Pi 4 UEFI firmware依然是试验行的,所以有可能还存在bug

树莓派Raspberry Pi 3 也有对应的 64-bit Tiano Core UEFI firmware for the Raspberry Pi 3B 。`

备注

Alternate Guide – Running Windows 10 on the Pi 4 介绍了在UEFI模式下树莓派可以用来安装Windows 10 ARM版本,详细的操作可以参考:

参考