openKylin 嵌入式版本构建工具开源,手把手教你制作嵌入式镜像
为便利开发者基于openKylin开源操作系统二进制软件包构建嵌入式操作系统镜像,社区Embedded SIG组开发了openKylin嵌入式版本构建工具V1.0。基于此工具,各位开发者可以灵活构建适合自己的openKylin嵌入式版本操作系统。
一、 构建工具介绍
openKylin嵌入式版本构建工具V1.0基于开源debootstrap命令进行封装,可基于openKylin的apt源制作嵌入式操作系统镜像。目前openKylin 1.0版本支持通过参数控制分别生成四款开发板的镜像:ARM64架构(双椒派、树莓派)、RISC-V架构(VisionFive2、Lotus2)镜像。
该工具在debootstrap基础上进行封装,并在制作镜像过程中预留参数,供开发者自行修改现有配置,或者新增配置,便于通过脚本生成所需要的系统镜像。
同时,该工具使用debootstrap生成基础rootfs,由于此时的rootfs是一个基础chroot环境,还不具备在上述4种开发板直接运行的能力,因此Embedded SIG组在此基础上增加了对文件系统定制修改的功能,主要是针对不同类型开发板,向文件系统中安装相应的软件包,并对系统做好相关配置,使制作好的文件系统可以直接在上述4种开发板上运行。
二、 构建工具特性
1.易用性强。openKylin嵌入式版本构建工具V1.0使用shell实现,结合实际项目经验设计构建接口。构建人员可快速构建,验证,发布嵌入式操作系统。
2.扩展性强。openKylin嵌入式版本构建工具V1.0依赖openKylin软件源构建嵌入式操作系统基座,构建人员可通过叠加额外软件源,定制系统文件等方式扩展嵌入式操作系统功能。可扩展性主要体现在以下三个方面:
- 参数扩展:制作镜像用到的参数都预置在prop文件中,用户可以在制作命令后添加与prop中同名的参数覆盖原有参数,也可以自定义参数,参数格式以VK_开头,例如VK_VARNAME=foobar,此参数会在宿主机制作环境及chroot环境中全局生效,用户可以在脚本任意位置获取该变量的值,并进行相应的处理。
- 任务扩展:默认情况下,任务变量的值为:VK_TASKS=rootfs,config,img,用户可以继续以逗号分隔,添加其他任务,如设置任务参数为:VK_TASKS=rootfs,config,img,funcname,并在functions.sh中添加函数do_funcname,即可实现对文件系统的修改。
- 组件扩展:组件其实就是一组包的集合,目前默认集成的组件都写在order执行顺序的文件里,主要有工具组件,网络组件,ukui组件,用户可自行新增自定义组件,并将组件加到order文件中,即可将需要的包集成到系统中。
3.支持多架构。目前已支持ARM64架构(双椒派、树莓派)、RISC-V架构(VisionFive2、Lotus2)开发板的镜像生成。
三、 构建工具原理
主脚本:okbuild.sh
参数配置:prop文件
系统制作:shells目录下的脚本
镜像封装功能函数:functions.sh脚本
四、 构建工具使用说明
1.获取源码
git clone https://gitee.com/openkylin/openkylin-embedded-builder.git
2.检查系统环境
安装必要的命令工具,并将okbuild.sh主脚本软链接到/usr/bin/okbuild.sh,方便后续制作镜像时使用
cd openkylin-embedded-builder ./check-env.sh
3.制作镜像
$ okbuild.sh --help USAGE: okbuild.sh -p prop_chilliepi # 双椒派 okbuild.sh -p prop_rpi4b # 树莓派 okbuild.sh -p prop_vf2 # VisionFive2 okbuild.sh -p prop_lotus2 # Lotus2开发板
五、开发板烧录、启动方法
用户名: openkylin, 密码: openkylin
1.双椒派开发板
1.1 镜像烧录
sudo tar xf openKylin-1.0-chilliepi-arm64.img.tar.gz -O | sudo dd of=/dev/ status=progress
双椒派开发板上推荐使用金士顿SDCard。1.2 启动系统
- 插上电源, 快速按任意键, 使其到U-boot命令行界面。
- 设置U-boot启动参数。
setenv bootargs console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=/dev/mmcblk1p2 rootdelay=3 rw; setenv bootcmd 'mmc dev 1;fatload mmc 1:1 0x90000000 e2000d-chilli.dtb;fatload mmc 1:1 0x90100000 Image;booti 0x90100000 - 0x90000000;' saveenv
- 拔掉电源,拔掉SDCard,插上SDCard,再插上电源,即可启动系统。
2.树莓派和VisionFive2开发板
2.1 镜像烧录
sudo tar xf openKylin-1.0.img.tar.gz -O | sudo dd of=/dev/<your sdcard> status=progress
2.2 启动系统
将烧录好的SDCard插入树莓派,插上电源即可启动。
3.Lotus2开发板
3.1 镜像烧录
首先将SD卡分区格式化,然后将文件系统解压到SD卡即可,以SD卡设备节点为/dev/sdb 为例:
# 分区、格式化 sudo parted -s /dev/sdb mktable gptsudo parted -s /dev/sdb mkpart primary 1 100% sudo mkfs.ext4 -L system /dev/sdb1 sudo mount /dev/sdb1 /mnt # 拷贝文件系统 sudo tar xf openKylin-1.0-embedded-lotus2-riscv64.tar.gz -C /mntsync sudo umount /mnt # 弹出SD卡 sudo eject /dev/sdb
3.2 启动系统
Lotus2开发板没有图形显示接口,因此需要通过串口连接操作,使用双公头USB线将USB转串口与电脑连接,加电后可通过串口登录系统。
六、后续工作
Embedded SIG致力于打造openKylin嵌入式操作系统,提供常见工控总线、软实时、硬实时、虚拟化、web管理、轻量级、安全性等多种特性,繁荣openKylin系统生态。
非常感谢 Release SIG组zhangtianxiong、RISC-V SIG 组li-zhuohengq、Embedded-SIG组kylin-mayukun在开发过程中给予的帮助。后续,Embedded SIG将在以下方向继续开展工作:
- VisionFive2 开发板图形版本支持
- 其他开发板支持
欢迎感兴趣的小伙伴加入我们!
Embedded SIG主页地址:
https://gitee.com/openkylin/community/tree/master/sig/Embedded
openKylin嵌入式版本构建工具V1.0仓库地址:
https://gitee.com/openkylin/openkylin-embedded-builder
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 14 Beta 4 发布
Android 14 发布了第 4 个 Beta 测试版。Beta 4 除了支持 Pixel 系列设备,还可以在 Pixel Tablet 和 Pixel Fold 上运行。 Beta 4 也是 Android 14 Platform Stability 阶段的第二个版本,这意味着开发者 API 和所有面向应用的行为都是最终版本,可集成到应用中。因此开发者现在可以为发布到 Google Play 上且面向 Android 14 的应用设置官方 API level。 Android 14 主要变化包括: 更新了手势导航 更新后的后退箭头将帮助用户更好的理解 Android 14 的预测性返回手势体验,用户在应用内导航将能预览屏幕 新的系统分享表,用户在打开的页面可以通过触点分享内容 新的变形图形特效,在每个应用的基础上自动配置偏好的语言 应用可以限制辅助服务对敏感数据的访问 …… Android 14功能和 API 概览: https://developer.android.google.cn/about/versions/14?hl=zh-cn https://developer.an...
- 下一篇
IntelliJ IDEA 新增 Kotlin Notebook 插件
IntelliJ IDEA 宣布推出 Kotlin Notebook 插件,现已发布第一个实验版本。 Notebook 是一种交互式工具,能够将代码、可视化和文本组合到单个文档中。在 Notebook 中,开发者可以在一个地方编写并运行代码段(单元)、查看结果,以及记录思维过程。Notebook 已在快速原型设计、分析和数据科学领域得到广泛采用和信赖。 Kotlin Notebook 插件为 IntelliJ IDEA 带来了交互式开发的强大功能,补充了 IDE 对 Kotlin 语言支持的全部功能,并结合了浏览器的灵活可视化。 插件下载地址:https://plugins.jetbrains.com/plugin/16340-kotlin-notebook Kotlin Notebook 还提供了大量库集成选项。开发者可以方便地使用它们: %use libraryName 对于库作者来说,这个命令可以作为跳板,使其能够: 从任何 Maven 仓库下载库二进制文件。 包含初始导入。 在初始化期间执行代码。 在每个单元执行之前和之后运行代码。 预处理每个单元的代码。 创建某些类型的变...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- 设置Eclipse缩进为4个空格,增强代码规范
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Mario游戏-低调大师作品
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- MySQL8.0.19开启GTID主从同步CentOS8