为便利开发者基于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软件源构建嵌入式操作系统基座,构建人员可通过叠加额外软件源,定制系统文件等方式扩展嵌入式操作系统功能。可扩展性主要体现在以下三个方面:
3.支持多架构。目前已支持ARM64架构(双椒派、树莓派)、RISC-V架构(VisionFive2、Lotus2)开发板的镜像生成。
主脚本:okbuild.sh
参数配置:prop文件
系统制作:shells目录下的脚本
镜像封装功能函数:functions.sh脚本
git clone https://gitee.com/openkylin/openkylin-embedded-builder.git
安装必要的命令工具,并将okbuild.sh主脚本软链接到/usr/bin/okbuild.sh,方便后续制作镜像时使用
cd openkylin-embedded-builder ./check-env.sh
$ 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
sudo tar xf openKylin-1.0-chilliepi-arm64.img.tar.gz -O | sudo dd of=/dev/ status=progress
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
2.1 镜像烧录
sudo tar xf openKylin-1.0.img.tar.gz -O | sudo dd of=/dev/<your sdcard> status=progress
2.2 启动系统
将烧录好的SDCard插入树莓派,插上电源即可启动。
首先将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将在以下方向继续开展工作:
欢迎感兴趣的小伙伴加入我们!
Embedded SIG主页地址:
https://gitee.com/openkylin/community/tree/master/sig/Embedded
openKylin嵌入式版本构建工具V1.0仓库地址:
https://gitee.com/openkylin/openkylin-embedded-builder
(文/开源中国)