编辑
2025-09-15
记录知识
0

目录

什么是从头构建
仓库
使用步骤
注意事项
板卡二进制
默认配置
总结

Debian系列的操作系统默认使用apt来进行包管理,而apt安装软件包是基于某个固定的apt源来拉取包的。那么合理的产生一个疑问:

有没有办法让Debian系列的系统从零开始,通过apt构建一个定制的版本出来呢?

答案是肯定的,我详细分析过livebuild的运行机制,结论是只要是基于livebuild发行的操作系统,那么只要提供你apt源地址,你就有办法复刻一个操作系统,例如Debian13,Ubuntu2404等。

基于本文内容,可以根据麒麟提供的外网源地址从头构建一个适用于RK3588芯片的麒麟系统。

什么是从头构建

什么是从头构建,一般来说,例如android,openharmony, gentoo这类从源码构建的肯定叫做从头构建, 那如果能够将一个二进制发行的系统,如debian系统,从零构建组装,从而生成一个操作系统,是否也称为从头构建呢。

个人认为是可以的,因为从头构建并没有告诉你一定要从源码构建。即使通过二进制安装的方式构建,只要能够让整个系统是从零开始诞生的就行。

与gentoo这类源码构建的系统不同的是,debian系统默认是预先发布二进制,然后在集成阶段由集成人员通过livebuild机制进行组装发行。这样的好处有如下:

  1. 稳定性高 由操作系统发行方预编译,验证的二进制,相比于源码发行来说运行更稳定
  2. 适用性强 操作系统人员给你匹配好了软件版本之间的依赖关系,无需关心源码编译的api兼容
  3. 软件丰富 所有开发者基于平台构建的二进制,能够轻松的发布给系统使用者,无需提供软件源码
  4. 易用性好 对于非研发人员,如果为操作系统添加功能,只需要安装软件,无需从源码构建

所以我们经常能够看到ubuntu这种系统,默认按照2004,2204,2404发布稳定版本提供出来。

但是在嵌入式领域,如果大部分系统使用ubuntu,如果想要进行定制化操作,非常不方便,因为ubuntu提供的是完整的二进制, 此时如果需要为此系统进行功能定制,那么就需要先安装一个完整的系统版本,然后再在这个版本上做加法。

所以针对Linux嵌入式操作系统而言,基于二进制发行的操作系统厂商,提供可模块化,通过组积木来构建系统的方式还是有一定意义的。

仓库

为了完成RK3588的从零构建,我开源了一个仓库,可以如下克隆获取

git clone https://github.com/tangfeng-648/unibuilder.git

当然,如果不想定制麒麟的系统,那么推荐一个开源仓库定制ubuntu,建议可以试试

git clone https://github.com/mvallim/live-custom-ubuntu-from-scratch.git

使用步骤

下载后,直接运行build.sh

# ./build.sh

此时选择麒麟发行版。

image.png

然后选择适用于rk3588的apt源地址

image.png

选择第三方安装包,这里什么都可不选择

image.png

选择芯片平台,这里是rk3588

image.png

选择根文件系统(rootfs)的输出格式

image.png

选择主板型号

image.png

到这里,交互式界面就完成了,可以看到选择了如下环境内容

# cat .config # # Automatically generated file; DO NOT EDIT. # BOARD: roc-rk3588s-pc ARCH: arm64 CHIP: rk3588 SUITE: 10.1-rk3588b03 PLATFORM: rockchip ROOTFSTYPE: squashfs DISTRO: kylin

此时日志大概信息如下

[🦄] create-rootfs.sh [ Creating a new chroot for kylin ] ii debootstrap 1.0.118kylin2 all Bootstrap a basic Debian system ii mtools 4.0.24-1 arm64 Tools for manipulating MSDOS files

等待30分钟,系统构建完成,大概信息如下

[🦄] create-rootfs.sh [ Make update.img successfully. file: /path/to/out/Kylin-Desktop-V10-RK3588-date-arm64-rc1-update.img ] [🦄] unibuild.sh [ The kylin distribution build has been completed!!! ] real 52m5.787s user 0m0.296s sys 0m0.770s

这里自动生成了update镜像,直接点击升级烧录即可

image.png

注意事项

板卡二进制

因为RK平台的启动镜像不一定一致(板子不一样,我只开源了一款),但是我在config/board/rk3588/roc-rk3588s-pc/README.md 也说明了处理办法。

简单来说,建议自行在config/board/rk3588上新建自己板卡的目录,将自己的开机镜像打包成boardname-binary_all.deb的deb包放置此目录即可。构建时会主动获取其内容,进行打包update.img用于启动

deb包的打包方法在script/binary_to_deb.sh提供了脚本

默认配置

系统启动之前,会主动为FOTA进行一次同步,可以看到屏幕上转圈大概1分钟,这个不需要奇怪。当转圈完成之后自动登录进入界面如下

2025-09-16_09-20-23.png

如果需要手动登录,其账号密码如下

account: kylin
password: qwer1234

总结

通过上述步骤,能够轻松的从零构建RK3588的麒麟版本,后续定制系统就会变得非常轻松,只需要针对此脚本修改,就能完成操作系统的定制化工作。