谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭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

下一步

订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

Ubuntu 正式支持 NVIDIA Jetson

Ubuntu 正式支持 NVIDIA Jetson:助力边缘 AI 未来发展 Canonical 宣布推出支持 NVIDIA® Jetson Orin™ 的 Ubuntu 正式发布版本,该版本专为边缘 AI 和机器人领域打造,为全球 AI 开发者带来优化的性能、开箱即用的兼容性以及实现高性能 AI 解决方案的便捷途径。 Ubuntu 发行商 Canonical 宣布正式支持 NVIDIA Jetson 平台,标志着其与 NVIDIA 的合作迎来重要里程碑,为加速边缘 AI 领域创新再添动力。此次正式发布(GA)版本为 Ubuntu 与 NVIDIA Jetson 系统级模块解决方案的强大组合赋予了企业级的稳定性与技术支持。 为各行各业 AI 创新赋能 此次通过 Canon […]

Ubuntu 20.04 LTS 标准支持周期终止 — 激活 ESM

ESM 确保设备集群的安全与运行性能 Focal Fossa 的标准支持周期将于 2025 年 5 月终止,也称生命周期终止(EOL)。Ubuntu 20.04 LTS 已然成为全球数百万物联网和嵌入式设备的关键组件,广泛应用于自助服务终端、数字引导牌、工业设备以及机器人系统等设备。该版本是医疗保健到制造业等各行业的企业进行创新的基础。与其他所有迎来标准支持周期终止的 Ubuntu LTS 版本一样,Focal Fossa 将转为扩展安全维护(EOL)模式。本文将为开发者和企业介绍相关选择,并说明如何启用 ESM 以持续获得支持。 在深入探讨之前,我们先来回顾一下 Ubuntu 版本为何存在生命周期终止(EOL)。 Ubuntu 版本为何存在 EOL? 每个 Ubuntu […]

Canonical 和 Renesas 宣布将合作加速企业 AI 创新

Ubuntu 的发行商 Canonical 宣布,半导体解决方案的全球领导者 Renesas Electronics Corporation 已加入 Canonical 的硅合作伙伴计划,以提供量身定制的尖端解决方案来满足边缘计算和 AI 应用不断增长的需求。随着行业越来越多地采用 AI 驱动的解决方案,对高效、可扩展和安全维护的边缘计算平台的需求前所未有地高涨。此次合作将结合 Renesas 在嵌入式处理方面的专业知识和 Canonical 全面的物联网(IoT)软件堆栈。 可扩展的生产级解决方案 Canonical 和 Renesas 的合作旨在为原始设备制造商(OEM)和原始设计制造商 (ODM)提供可扩展的生产级解决方案,从而缩短上市时间(TTM)。Renesas […]