为Nitrogen i.MX6开发板构建一个Ubuntu Core 18的镜像
by liam zheng on 6 July 2020
本篇博文由Taiten Peng编写
您有i.MX6硬件吗?并且想知道如何在其上面运行Ubuntu Core?在这篇博客中,我们将为一款基于i.MX6的边缘设备构建一个带有Ubuntu通用内核的Ubuntu Core 18镜像。
上游对边缘设备中Nitrogen6X硬件支持很友好,并且内核补丁已经合并到Ubuntu 4.15 LTS内核中。这使得你可以创建一个Ubuntu Core 18的镜像,和体验Canonical官方的内核。
准备工作
参考硬件:2G内存版本Nitrogen6X
工具——构建环境
- 主机OS:Ubuntu 18.04 LTS 64位
- 工具:ubuntu-image, snapcraft
通过以下的命令安装ubuntu-image和snapcraft。
sudo snap install --classic ubuntu-image sudo
snap install --classic snapcraft
基础理解概览
为了构建一个Ubuntu Core镜像,需要准备一些例如gadget snap或者已签名的型号申明文件的基础组件。内核snap也是需要,从技术角度来说,在Nitrogen6X平台上没有必要一定是自定义内核snap。
为i.MX6构建一个自定义Ubuntu Core镜像
用Nitrogen6X硬件为例。
构建一个gadget snap
带有上游u-boot源代码的Nitrogen6q2g板子的示例gadget snap可参考
创建一个型号申明和签名
Example model json file
{
"type": "model",
"authority-id": "YOUR_ID",
"brand-id": "YOUR_ID",
"series": "16",
"base": "core18",
"model": "nitrogen6x",
"architecture": "armhf",
"gadget": "nitrogen6",
"kernel": "pc-kernel=18",
"timestamp": "2019-06-21T08:56:10+00:00"
}
更多关于创建型号申明文件和签名的内容可阅读此教程。
构建一个Ubuntu Core 18镜像
sudo ubuntu-image --snap YOUR_GADGET_SNAP.snap -o nitrogen6x.img YOUR_MODEL_ASSERTION.model
对应的命令如下:
ubuntu-image --snap nitrogen6x-gadget-snap/nitrogen6_18-0.1_armhf.snap -o nitrogen6x.img nitrogen6x.model
安装和启动
刷写bootloader
Nitrogen6X不会从SD卡或者USB启动booloader,您需要执行下面步骤来更新SPI Flash。
开机,然后使用下面命令进入u-boot:
fatload mmc 0:1 0x13000000 u-boot.imx;sf probe;sf erase 0 0xc2000;sf write 0x13000000 0x400 ${filesize}
更新u-boot环境变量……
此脚本从gadget snap中的uboot.env文件加载了一个所需的环境设置来引导启动Ubuntu Core。
在重置后,系统将会启动并进入Ubuntu Core 18。


初始化启动控台需要您创建一个网络和您的Ubuntu账号。请注意,您需要创建一个Ubuntu SSO账号和上传您的SSH公匙以确保能访问Ubuntu Core设备。
进阶:构建一个自定义Ubuntu内核
需要注意的是,在构建镜像时使用自定义内核。内核snap将不能收到snap商店的任何更新。
如您想要在Ubuntu内核上尝试一些实验性的内核补丁。(例如为其他的i.MX6板子添加支持)
获取源代码:https://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
您也许需要添加下面的补丁来整合额外的内核模块到内核snap的initrd.img文件中。
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 2452c4031066..e4a94c3059fd 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -17,6 +17,24 @@ parts:
kconfigflavour: generic
kconfigs:
- CONFIG_DEBUG_INFO=n
+ kernel-initrd-modules:
+ - usb-storage
+ - nls_iso8859-1
使用下面命令构建内核snap:
snapcraft --target-arch=armhf
下一步
订阅博客文章
查看更多内容
Canonical 与 Ubuntu RISC-V – 2025 年回顾及 2026 年展望
2025 年:从 RISC-V 技术支持到实际执行 2025 年是 RISC-V 从准备就绪转向实际应用的一年。这段历程实属不易。多年前始于早期架构探索与技术支持的工作,如今已成熟落地为真实的芯片、系统与部署应用。特别是,RVA23 提供了一个稳定且可预期的基准,我们能够与更广泛的合作伙伴生态系统保持一致。 在 Canonical,我们致力于让 RISC-V 成为所有希望采用它的用户的可行选择。我们审慎采取措施,与生态系统及合作伙伴保持一致,成为值得信赖的软件合作伙伴,让 RISC-V 实用、可扩展且具备生产就绪能力。 我们的目标是提供一个稳定、可预期、生产级的 Linux 平台,让芯片厂商、原始设备制造商、原始设计制造商和开发者能够放心地在此基础上进行开发。 接下 […]
8.8 万亿美元的成本优势:开源软件如何降低 IT 成本
众所周知,开源软件可降低 IT 成本。但在 2025 年,高性价比只是其价值的一部分。Linux Foundation 最新报告《开源技术的战略演进》显示,开源技术已从一项战术性的成本节约举措,发展成为支撑企业级投资的关键任务基础设施,并由此为企业带来更优异的业务成果。 这一转型的背后有学术研究佐证:研究估算,若没有开源技术,企业开发支撑业务运转的软件所需成本将增加约 3.5 倍,额外支出高达 8.8 万亿美元。[1] 开源技术:从“免费替代方案” 到核心基础设施 Linux Foundation 2025 年开源生态现状调查显示,开源技术已深度融入企业技术栈的各个层面,成为全球 IT 运营的核心基石。事实上,在受分析的技术栈中,超 55% 采用了基于 Linux 的操 […]
Canonical 推出适用于 WSL 的 Ubuntu Pro
适用于 WSL 的 Ubuntu Pro 为 Windows 系统中运行的 Ubuntu 24.04 LTS WSL 实例提供一站式安全维护与企业级技术支持。该订阅服务还能为系统管理员提供全面的管理功能。 今日,Canonical 公司宣布适用于 WSL 的 Ubuntu Pro 服务正式全面上市,用户可通过 Microsoft Store 进行安装。源代码及测试版也可在 GitHub 获取。 Canonical 公司与 Microsoft 建立了良好的合作关系,携手打造优质的 WSL 使用体验。本次合作成果将惠及那些借助 WSL 开发生产级 Linux 解决方案的企业开发者。 Craig Loewen,Microsoft WSL 产品经理 Ubuntu Pro 为桌面端 […]