制作rk3588可以刷的opencloudos的rootfs方法

背景

我们需要给rk3588 rock5b制作一个opencloudos的rootfs,让opencloudos能够在rock5b上面运行

制作方法

准备一个arm的打包环境,这个环境就是使用的与准备制作的rootfs的相同版本的iso安装的,这样兼容性会最好,避免架构问题,版本问题,mac m1是arm架构,正好可以安装arm版本的opencloudos操作系统

下载操作系统

首先下载一个操作系统

https://mirrors.opencloudos.tech/opencloudos-stream/releases/23/images/aarch64/OpenCloudOS-Stream-23-20240304-minimal-aarch64.iso

因为操作系统安装的时候实际上是启动了一个临时的小系统环境,然后把系统盘挂载到临时分区,通过安装包的方式构建起来一个完整的操作系统的

我们需要的也是类似的操作,这里我们构建一个rootfs,基于的是这个操作系统的iso,这个操作系统采用小的minimal iso即可,这个rootfs是越小越好,后续根据需要进行包的安装即可

把iso挂载起来,我们需要用到的是里面的rpm源

[root@buildos iso]# mount OpenCloudOS-Stream-23-20240304-minimal-aarch64.iso /media/
mount: /media: WARNING: source write-protected, mounted read-only.

安装基础的软件包

[root@buildos iso]# mkdir /rootfs
[root@buildos iso]# rpm --root /rootfs --initdb
[root@buildos iso]# rpm -ivh --nodeps --root /rootfs --package /media/Packages/opencloudos-stream-release-23-18.ocs23.noarch.rpm
[root@buildos iso]# rpm -ivh --nodeps --root /rootfs --package /media/Packages/python3-dnf-4.16.2-2.ocs23.noarch.rpm
[root@buildos iso]# rpm -ivh --nodeps --root /rootfs --package /media/Packages/dnf-data-4.16.2-2.ocs23.noarch.rpm
[root@buildos iso]# rpm -ivh --nodeps --root /rootfs --package /media/Packages/python3-3.11.6-2.ocs23.aarch64.rpm

准备本地源

[root@buildos iso]# cat /rootfs/etc/dnf/dnf.conf
[main]
gpgcheck=0
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
zchunk=False
[all]
name=all
baseurl=file:///media

修改好了后安装一些其它的包

[root@buildos iso]# dnf --installroot=/mnt/ install python3-rpm python3-gpg  python3-libcomps chrony cloud-utils
[root@buildos iso]# dnf --installroot=/rootfs group list -v
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, kpatch, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.16.2
cachedir: /rootfs/var/cache/dnf
User-Agent: constructed: 'libdnf (OpenCloudOS Stream 23; generic; Linux.x86_64)'
repo: using cache for: all
all: using metadata from Mon 04 Mar 2024 02:27:38 PM CST.
Last metadata expiration check: 0:00:42 ago on Wed 21 Aug 2024 03:57:51 PM CST.
Available Environment Groups:
   Minimal Install (minimal-environment)
[root@buildos iso]# dnf --installroot=/rootfs group list -v

安装os环境

[root@buildos iso]# dnf --installroot=/rootfs group install minimal-environment

系统安装好了以后,我们对rootfs进行一些修改

设置用户名密码

[root@buildos ~]# chroot /rootfs/

设置用户名密码
这里默认用户名密码我们设置为 root 123456

修改时区

[root@buildos media]# cp /rootfs/usr/share/zoneinfo/Asia/Shanghai /rootfs/etc/localtime

这个rootfs的大小是

[root@buildos ~]# du -sh /rootfs
1.0G	/rootfs

处理fstab

[root@buildos ~]# cat /rootfs/etc/fstab
UUID=8778328d-277f-4608-a2bb-e24095c335b0 / ext4 defaults        0 0

上面的这个是从

[root@buildos mnt]# cat boot/armbianEnv.txt
verbosity=1
bootlogo=false
console=both
overlay_prefix=rockchip-rk3588
fdtfile=rockchip/rk3588-rock-5b.dtb
rootdev=UUID=8778328d-277f-4608-a2bb-e24095c335b0
rootfstype=ext4

从这个里面拿到的,如果不写这个fstab,系统启动后就是只读的

这个就是制作好的rootfs了,我们来进行替换rootfs

替换rootfs

下载并挂载操作系统

wget https://dl.armbian.com/rock-5b/Jammy_vendor_server
mv Jammy_vendor_server Armbian_24.5.1_Rock-5b_jammy_vendor_6.1.43.img.xz

[root@buildos ~]# xz -d Armbian_24.5.1_Rock-5b_jammy_vendor_6.1.43.img.xz

[root@buildos ~]# kpartx -av Armbian_24.5.1_Rock-5b_jammy_vendor_6.1.43.img
add map loop1p1 (253:2): 0 5218271 linear 7:1 32768
[root@buildos ~]# mount /dev/mapper/loop1p1 /mnt
[root@buildos ~]# rm -rf  /rootfs/boot/*

替换rootfs

[root@buildos mnt]# shopt -s  extglob
[root@buildos mnt]# shopt extglob
extglob        	on
[root@buildos mnt]# rm -rf !(boot)
[root@buildos mnt]# ll
total 4
drwxr-xr-x. 3 root root 4096 May 25 07:44 boot
[root@buildos mnt]# cp -ra /rootfs/* /mnt/

删除掉除了boot分区以外的数据

重新压缩包

[root@buildos ~]# umount /mnt
[root@buildos ~]# kpartx -dv Armbian_24.5.1_Rock-5b_jammy_vendor_6.1.43.img
del devmap : loop1p1
loop deleted : /dev/loop1

mv Armbian_24.5.1_Rock-5b_jammy_vendor_6.1.43.img Opencloudos_Rock-5b_6.1.43.img


[root@buildos ~]# xz Opencloudos_Rock-5b_6.1.43.img

[root@buildos ~]# ll -hl Opencloudos_Rock-5b_6.1.43.img.xz
-rw-r--r--. 1 root root 619M Aug 22 09:22 Opencloudos_Rock-5b_6.1.43.img.xz
[root@buildos ~]# md5sum Opencloudos_Rock-5b_6.1.43.img.xz
34c51fbe2eca560b780494a176d6d16b  Opencloudos_Rock-5b_6.1.43.img.xz

刷机

获取os包

下载地址

https://github.com/zphj1987/rock5b-opencloudos/releases/download/v20240823-v1/Opencloudos_Rock-5b_6.1.43.img.xz

获取打包好的os

 xz -d Opencloudos_Rock-5b_6.1.43.img.xz

解压我们打好的包

用户名root
密码123456

刷os包

下载balenaEtcher工具,这个多平台的
balana

刷好以后尝试启动

查看系统信息

[root@localhost ~]# cat /etc/os-release
NAME="OpenCloudOS Stream"
VERSION="23"
ID="opencloudos"
ID_LIKE="opencloudos"
VERSION_ID="23"
PLATFORM_ID="platform:ocs23"
PRETTY_NAME="OpenCloudOS Stream 23"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:opencloudos:opencloudos:23"
HOME_URL="https://www.opencloudos.org/"
BUG_REPORT_URL="https://bugs.opencloudos.tech/"
[root@localhost ~]# uname -a
Linux localhost.localdomain 6.1.43-vendor-rk35xx #1 SMP Mon May 20 12:26:58 UTC 2024 aarch64 GNU/Linux

调整分区大小

[root@localhost ~]# growpart /dev/mmcblk1 1
CHANGED: partition=1 start=32768 old: size=5218271 end=5251038 new: size=122134495 end=122167262

[root@localhost ~]# resize2fs /dev/mmcblk1p1
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mmcblk1p1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 8
The filesystem on /dev/mmcblk1p1 is now 15266811 (4k) blocks long.

arm板卡的操作系统都是安装系统后再根据系统盘的大小调整的,上面的就是调整的方法

图形界面

如果需要安装图形界面的,可以自己安装一下

[root@localhost ~]#dnf group install graphical-server-environment
[root@localhost ~]# yum remove  kernel-core

重启后可以进入桌面,如果桌面的控件不对,可以切换个终端,执行startx即可
在这里插入图片描述

在这里插入图片描述

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武汉磨磨

打赏是写出更好教程的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值