经过几个月在 Raspberry Pi Compute Module 4 上测试各种 SATA 卡,默认的 Raspberry Pi OS 内核现在包括开箱即用的 SATA 支持。过去,如果您想使用 SATA 硬盘驱动器或 SSD 并获得本机 SATA 速度,并且能够将它们组合在一起以获得冗余或性能,则必须使用 SATA 和 AHCI 重新编译 Linux 内核。当然,您始终可以使用带有 SATA 到 USB 适配器的硬盘驱动器和 SSD,但是您牺牲了 10-20% 的性能,并且无法将它们组合在一起,至少在没有一些黑客的情况下是这样。这篇文章有一个视频版本:SATA 支持现已内置到 Raspberry Pi OS 中!重新编译内核不是火箭科学,我什至构建了一个交叉编译环境以使其变得容易。但它很烦人,而且需要一些时间,如果你想让你的 Pi 保持最新,你必须继续编译内核。但本月,Raspberry Pi OS 终于内置了对几乎所有 PCI Express SATA 适配器的支持。您所要做的就是运行 sudo apt upgrade 就可以了。这意味着任何拥有 Compute Module 4 的人都可以插入 SATA 卡,并插入硬盘驱动器或 SSD,并且它们应该可以正常工作,假设您为驱动器供电。
我对此特别兴奋,因为添加支持的一大动机来自我对 Pi PCI Express 卡网站的测试工作,而添加支持的代码是我对 Raspberry Pi Linux 内核的首次 PR。想想看,不到一年前,我以前从未编译过 Linux 内核!原生 SATA 支持意味着我们可以使用 OpenMediaVault 之类的东西来构建带有 Raspberry Pi 的 RAID NAS,而无需维护自定义内核或进行任何特殊设置工作。我的主要收获是它不像我想的那样为 Linux 内核编写补丁那么令人生畏(尽管公平地说,我不必查看内核邮件列表,因为我的补丁进入了 Pi OS 分叉的内核树) .而且我必须感谢不起眼的 Raspberry Pi 让我走到这一步——因为 Pi 很便宜,而且重新成像很容易,它不那么令人生畏,因为我知道一个错误不会让我付出太多代价。我认为很多习惯了笨重的台式机和服务器的人不明白使用像 Pi 这样的小型业余电脑是多么的自由。您还不能做的一件事是从 SATA 驱动器启动 Pi。您可以在最新的 Pi OS 上从 USB、microSD、eMMC 甚至 NVMe 引导,但目前 Raspberry Pi 引导加载程序不扫描 SATA 设备进行引导。至少现在还没有。