SUSE 推出树莓派 5 支持

2025-11-30 | Fangzhou Liu | CC-BY-SA-4.0

SUSE 推出树莓派 5 支持

这一天终于到来了。树莓派 5 用户现在可以期待 openSUSE Tumbleweed 提供的完善支持。

这不仅仅是 U-Boot 层面的支持,远比这更多。这得益于多方的辛勤付出——包括 SUSE 硬件适配团队、树莓派、Ideas on Board、Linaro 等机构的众多工程师,以及 Linux 和 U-Boot 子系统维护者,还有许多耐心审核我们补丁的工程师。

很多人可能会疑惑,为何树莓派 5 设备迟迟未能在树莓派 OS 之外的系统上获得支持;现在,他们无需再为此困惑了。

关于启动流程

首先,我们来重点说明简化后的系统级启动架构差异。

在树莓派 OS 中,设备 EEPROM 中存储的固件会直接运行厂商开发的 Linux 内核。

在 openSUSE 中,我们使用 GRUB2。但 GRUB2 本身需要机器具备 UEFI 固件接口才能定位启动文件。因此,openSUSE 采用了广泛使用的 Das U-Boot 引导程序来提供这些接口。

这种软件组合在 (open)SUSE 产品中运行良好,但这也意味着我们必须为 U-Boot 和 Linux 内核添加树莓派 5 缺失的相关功能。

树莓派 5 新硬件增强特性

在硬件方面,树莓派 5 与前几代设备相比存在一些显著差异。

树莓派 5 之前的所有型号中,所有控制器(如 USB、以太网、SPI、I2C、GPIO、CSI 等)均集成在主 SoC(BCM2835、BCM2836、BCM2837、BCM2710、BCM2711)中,且不同代际 SoC 中的这些控制器大致相同。因此,在 U-Boot 和 Linux 中为它们添加支持相对直接简单。

而树莓派 5 则发生了重大变化:新增了一款名为 RP1 的“南桥”芯片,上述所有控制器均集成于该芯片中。RP1 通过 PCIe 总线与主 SoC(BCM2712)相连。

幸运的是,有一点保持不变:MicroSD 卡控制器仍属于主 SoC 的一部分。因此,除了 SD 控制器内部的一些细微差异外,在 U-Boot 和 Linux 中为其添加支持相对容易。

BCM2712 SD 控制器的初始 U-Boot 支持

添加树莓派 5 的最小化启动支持

这让人们认为 openSUSE 已可在该设备上运行。

但这仅仅是漫长征程的开始。

让我们回到 PCIe 部分。旧款树莓派也具备 PCIe 根复合体,但与树莓派 5 的根复合体存在细微差异。因此,为了让 U-Boot 或 Linux 能够访问所有关键控制器设备,我们必须在 U-Boot 和 Linux 内核中添加相关支持。这一功能通过以下补丁集实现:

为 BCM2712 添加 PCIe 支持

Linux 内核中还纳入了其他几项重要内容:

当 PCI Express 驱动能够正常工作,且 Linux 可以识别连接到 PCIe 根复合体的设备后,我们还需移植用于处理全新 RP1 芯片的驱动——该芯片集成了 USB、以太网等控制器。但这项工作难度不小,因为各方对于该驱动的实现方式存在诸多不同看法。但最终,我们成功将该驱动合并至内核:

新增对树莓派 RP1 PCI 设备的支持

至此,Linux 已能识别挂载在 RP1 芯片后的各类设备。 当然,这些控制器(例如以太网控制器)与 BCM2711 上的同类控制器存在些许差异,因此需要一套全新的补丁来适配:

新增对树莓派 RP1 以太网控制器的支持

显然,要让该设备达到可用状态,还需要大量其他补丁。 以下仅列出其中极小一部分:

目前,openSUSE Tumbleweed 可从 SD 卡正常启动,直至通过 HDMI 输出进入图形化桌面环境。

启动至 Tumbleweed 后,你可正常使用以下功能:

  • 以太网
  • 无线网络(WiFi)
  • 蓝牙
  • USB
  • HDMI
  • ……

后续规划

U-Boot 有望很快新增对 BCM2712 PCIe 根复合体控制器的支持,这将为设备带来从磁盘启动的能力。以太网控制器的相关修复也在推进中。

增强树莓派 5 支持

由于 USB 是通过 PCIe 总线连接至 RP1 芯片的,目前 U-Boot 暂不支持 USB 功能。这意味着你无法在 U-Boot 或 Grub2 中使用 USB 键盘(因为 Grub 依赖 U-Boot 提供的 EFI 实现)。敬请耐心等待后续更新。

准备工作

在开启树莓派 5 运行 openSUSE 的体验之旅前,请确保你的设备已完成最新的 EEPROM 固件更新。

若你刚拿到的树莓派 5 尚未安装任何系统,可通过树莓派镜像烧录工具(Raspberry Pi Imager)制作一张包含 EEPROM 更新程序的 MicroSD 卡;也可直接在树莓派 5 已有的系统镜像中运行以下命令完成更新:

sudo rpi-eeprom-update -a
sudo reboot

切勿跳过 Debug Probe

若你在测试镜像时发现树莓派 5 卡在 U-Boot 阶段,遇到此问题的并非你一人。该已知问题正通过以下编号追踪:

boo#1250992。

当前的解决方案仅为临时规避措施,该问题预计很快会被修复。

在树莓派 5 上调试 openSUSE 时,使用调试探针能帮你节省大量时间,避免诸多麻烦。此外,它也是后续开展嵌入式项目时一款实用的常备工具。

树莓派 5 相关补丁极简清单

推荐尝试的镜像

现在,你可以在树莓派 5 上运行大多数与树莓派 4 兼容的 Tumbleweed 设备镜像;若你偏好不可变系统,也可选择 MicroOS。 openSUSE Leap 和 Leap Micro 目前暂未纳入适配范围,但预计将在后续版本(2026 年末发布的 16.1 和 6.3 版本)中获得完整支持。

开始前,请确保已连接 Debug Probe。 随后,从 openSUSE Tumbleweed 设备镜像库 中选择一款树莓派镜像写入 MicroSD 卡,即可启动使用。

若你不确定选择哪款镜像,Tumbleweed Arm 树莓派 GNOME 镜像 是稳妥之选。

xzcat image.aarch64.raw.xz | dd of=/dev/sda bs=1M status=progress conv=fsync; sync

若遇到任何问题,强烈建议通过 openSUSE Arm Matrix 频道 咨询,或 订阅 openSUSE Arm 邮件列表。此外,你也可以通过 forums.opensuse.org 咨询 general openSUSE 相关问题。 如需了解更多 ARM 平台相关信息,可访问 openSUSE ARM 门户。

为何在树莓派 5 上运行 openSUSE

官方树莓派 OS 提供了简洁的桌面体验,但它主要面向桌面使用场景,默认并未包含容器等功能。

借助 SUSE 的硬件适配工作,你现在可以在树莓派上获得完整的 openSUSE 体验。就我个人而言,我喜欢搭配使用 Cockpit 与自动更新功能,甚至还在我的树莓派上通过容器运行了私人 openSUSE 镜像和 Nextcloud AIO。

值得庆贺的时刻

rpi5winner

为庆祝 SUSE Hardware Enablement 团队的辛勤付出,我们已向好友 Dale from LowTechLinux 和 Liam from The Register 赠送了 Raspberry Pi 5 入门套件及 Debug Probe,邀请他们向社区分享初体验。

我们还为上周末 openALT.cz 活动的参会者 Tomáš 带来了惊喜——他在我们的 openSUSE Quiz 中脱颖而出,赢得了 Raspberry Pi 5 和 Debug Probe。 这款问答应用被全球 openSUSE 展位工作人员广泛使用,如今新增了“openSUSE Arm”专区,帮助参与者深入了解 openSUSE 在 Arm 领域的相关工作。

敬请持续关注我们的 Raspberry Pi 5 硬件兼容性页面。 待 Raspberry Pi 5 的 USB 启动和 PCIe 功能完全就绪后,我们将分享更多更新内容。


原文:SUSE delivers Raspberry Pi 5 support,作者:Ivan Ivanov 和 Lubos Kocman

分享帖子: