如何构建适用于 Raspberry Pi 的 Ubuntu 服务器镜像?

如何构建适用于 Raspberry Pi 的 Ubuntu 服务器镜像?

我正在尝试弄清楚如何创建 Raspberry Pi 的 Ubuntu 服务器映像。您可以从此处下载:https://ubuntu.com/download/raspberry-pi

在我的搜索中,我发现了一些工具,例如 ubuntu-image 和 pi-gadget 的经典分支https://github.com/snapcore/pi-gadget/tree/classic

然而,我无法将这两者联系起来。

我能找到的所有信息都与 Ubuntu 核心或 snap 版本有关,这不是我想要的,我正在尝试弄清楚(并最终修改)经典图像。

更新:我做了一些实验,似乎缺少一个链接snapcraft prime。它将 pi-gadget repo 转换为 ubuntu-image 可以使用的东西。但是,它似乎不能跨平台工作。我试图在 amd64 上构建,Makefile:18: *** Build architecture is not supported. Stop.当我在 Raspberry Pi 上尝试相同操作时,问题是 core20 图像不受 multipass 支持。显然可以使用另一个构建环境,所以我现在正在研究它。

更新2:根据@guiverc 的回复,实际的构建系统可能仍然完全不同。

更新 3:我有点放弃弄清楚了。我不知道实际脚本位于何处,但从上下文来看,我相信系统的工作原理如下:

  1. 基础映像是使用和pi-gadget组合创建的。据我所知,这会产生一个内核、设备树和一个(空的?)根文件系统。据我所知,Raspberry Pi 不需要映像中的引导加载程序,但对于其他“小工具”,此步骤也会生成引导加载程序。snapcraftubuntu-image
  2. 接下来,使用种子填充实际的根文件系统并发芽。

尽管我付出了多方努力,但我还是无法成功运行该snapcraft prime操作。我能够将其配置为在 Raspberry Pi 上运行(使用 LXD 而不是 Multipass,后者存在自己的问题)。所以我陷入了困境。

即使在那之后,我也不知道如何使用它germinate来构建文件系统。我能找到的所有信息似乎都过时了。我只能猜测它会以germinate某种方式生成需要复制到文件系统中的包和文件列表。但我怀疑它是否会真正下载并构建那些所需的文件,可能还有其他工具可以做到这一点。

我目前正在研究ELBECustomPiOS。它们使用现有图像并将其与所需内容重新打包。这不是我喜欢的方法,但至少看起来这些工具确实有效。我还将研究 Ubuntu MATE YT 解释器视频。

答案1

Ubuntu ISO 由发射台来自储存在那里的种子。

例如https://people.canonical.com/~ubuntu-archive/seeds/ubuntu.jammy/你会发现果酱或 Ubuntu 22.04,其中包含桌面raspi种子告诉启动板在构建桌面时要包含什么内容,以及服务器-raspi对于服务器。

这适用于口味Ubuntu 也是如此。

相关内容