谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭Close

为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 Core 26

Ubuntu Core 26 推出精准化 Linux 构建、优化的 OTA 更新、实时内核补丁,以及面向关键任务部署的增强型硬件级安全防护。 2026 年 5 月 19 日,Canonical 宣布正式发布 Ubuntu Core 26。该系统为极简不可变操作系统,提供长达 15 年的安全维护支持。  Ubuntu Core 26 针对关键任务操作与低延迟 AI 工作负载实现重大系统改进:安装时长缩短、OTA 更新包体积缩减 90%,并借助 Chisel 工具实现精准化系统构建。与以往版本一致,所有组件均为经过沙箱隔离、加密签名的 Snap 软件包,构建可信启动链,仅允许运行经验证的软件。凭借这款全新长期支持(LTS)版本,Ubuntu Core 仍是适用于关键任务系统的 […]

快速推进 Renesas RZ 平台上的工业与 AI 部署

已认证的 Ubuntu 24.04 LTS 镜像现已可用 Canonical 欣然宣布,面向 Renesas RZ/G2L 和 RZ/G2LC 64 位微处理器(MPU)平台的已认证 Ubuntu 24.04 LTS 及 Ubuntu Core 24 镜像现已正式发布通用(GA)版本。借助可直接用于生产环境的 Ubuntu 版本,用户可获得企业级安全保障、长期技术支持,并充分启用 Renesas RZ/G 系列丰富的多媒体功能。 除面向 RZ/G2L 和 RZ/G2LC 的 GA 发布外,Canonical 同时推出适用于 Renesas RZ/V2L 平台的 Ubuntu 镜像,并提供 AI Snap 教程,用于在 Ubuntu 上部署 Renesas AI 应用。该镜 […]

Ubuntu Pro 部署 Nutanix 裸机 Kubernetes

Nutanix 与 Canonical 扩大合作,为容器化工作负载提供更多选择 企业级 Kubernetes® 正逐步发展为高度灵活的多架构模型。随着 AI/ML 及数据密集型工作负载对硬件吞吐量的要求不断提升,企业在追求裸机性能的同时,也希望兼顾云平台的运维一致性。 为满足这一需求,Nutanix 与 Canonical 已将 Ubuntu Pro 服务拓展至裸机环境下运行的 Nutanix Kubernetes 平台 (NKP) 实例,涵盖最新发布的 NKP Metal 解决方案。本次功能拓展基于双方 2025 年达成的合作,彼时搭载安全补丁的 Ubuntu 操作系统可支持虚拟机环境下运行的 NKP 实例。安全补丁服务隶属于 Ubuntu Pro,是 Canonica […]