我正在尝试弄清楚如何创建 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:我有点放弃弄清楚了。我不知道实际脚本位于何处,但从上下文来看,我相信系统的工作原理如下:
- 基础映像是使用和
pi-gadget
组合创建的。据我所知,这会产生一个内核、设备树和一个(空的?)根文件系统。据我所知,Raspberry Pi 不需要映像中的引导加载程序,但对于其他“小工具”,此步骤也会生成引导加载程序。snapcraft
ubuntu-image
- 接下来,使用种子填充实际的根文件系统并发芽。
尽管我付出了多方努力,但我还是无法成功运行该snapcraft prime
操作。我能够将其配置为在 Raspberry Pi 上运行(使用 LXD 而不是 Multipass,后者存在自己的问题)。所以我陷入了困境。
即使在那之后,我也不知道如何使用它germinate
来构建文件系统。我能找到的所有信息似乎都过时了。我只能猜测它会以germinate
某种方式生成需要复制到文件系统中的包和文件列表。但我怀疑它是否会真正下载并构建那些所需的文件,可能还有其他工具可以做到这一点。
我目前正在研究ELBE
和CustomPiOS
。它们使用现有图像并将其与所需内容重新打包。这不是我喜欢的方法,但至少看起来这些工具确实有效。我还将研究 Ubuntu MATE YT 解释器视频。
答案1
Ubuntu ISO 由发射台来自储存在那里的种子。
例如https://people.canonical.com/~ubuntu-archive/seeds/ubuntu.jammy/你会发现果酱或 Ubuntu 22.04,其中包含桌面raspi种子告诉启动板在构建桌面时要包含什么内容,以及服务器-raspi对于服务器。
这适用于口味Ubuntu 也是如此。