0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ElfBoard技术贴|如何在【RK3588】ELF 2开发板上进行根系统的定制

ElfBoard 2025-07-02 16:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频最高可达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

wKgZO2e2hSaAbSfuADl6I3bw3ng522.png

ELF 2开发板已经适配了Linux 5.10及Elf2 Desktop 22.04操作系统,其中Elf2 Desktop 22.04系统是专为嵌入式设计的Ubuntu base。虽然其apt-get 等命令支持在线安装软件,但存在明显缺陷:重新烧写镜像后软件会丢失,需再次安装。 这在批量部署多块开发板时,工作量巨大。因此,将软件预先集成到镜像中,实现烧录后无需重新安装,成为亟待解决的问题。

本文将围绕如何在 【RK3588】ELF 2开发板上基于 Ubuntu 22.04 操作系统进行根文件系统的定制展开详细阐述。

1、 开发环境安装QEMU

QEMU 是一款轻量级硬件模拟器,支持多种架构,如 ARM、x86 和 x86-64。 它应用广泛,是 Xen 虚拟化平台和 Android 模拟器等项目的底层基础。在嵌入式领域,开发者常利用 QEMU 深入研究 Linux 系统,进行文件系统优化等工作。

下面我们开始在开发环境(需要开发环境能上网)中安装QEMU,如下:

(1)更新下载源

elf@ubuntu:~sudo apt-getupdate

(2)执行命令安装

elf@ubuntu:~sudo apt-getinstall qemu-user-static

2、文件系统挂载

SDK中ELF 2 Desktop 文件系统镜像jammy-rootfs.img进行挂载,挂载后可以被访问操作。

(1)文件系统备份

操作前先对文件系统镜像备份,如若操作出现异常,可回退使用最初镜像。

elf@ubuntu:~$ cd work/ELF2-linux-source/ubuntu/   #SDK源码路径需修改为个人路径
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ mkdir bak
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ cp jammy-rootfs.img bak/

(2)文件系统扩容

文件系统扩容的大小不超过根分区大小(默认根分区为14G)

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ e2fsck -f jammy-rootfs.img
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ resize2fs jammy-rootfs.img 3145728

resize2fs IMAGE SIZE

IMAGE为要修改的镜像名称;

SIZE为块的数量,一个块的大小为4K。

(例如扩容到12G,12G=12x1024x1024=12582912K=3145728x4K,SIZE参数为3145728)

(3)创建挂载目录,并将文件系统挂载到该目录

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ mkdir rootfs
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ sudo mount jammy-rootfs.img rootfs/

3、修改配置

(1)将开发环境中的qemu-arm-static拷贝到desktop文件系统中

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/


(2)将开发环境中的DNS配置拷贝到desktop文件系统中,因为安装程序时要用络

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$sudo cp -b /etc/resolv.conf rootfs/etc/resolv.conf


(3)修改下载源

$sudo vim rootfs/etc/apt/sources.list

添加:


deb http://ports.ubuntu.com/ubuntu-ports/ jammy main universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main universe

4、文件系统隔离

通过chroot进行虚拟化隔离,将隔离步骤写入到ch-mount.sh脚本中。

#!/bin/bash
function mnt() {
echo "MOUNTING"
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2}dev
sudo chroot ${2}
}
function umnt() {
echo "UNMOUNTING"
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${2}dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
umnt $1 $2
else
echo ""
echo "Either 1'st, 2'nd or both parameters were missing"
echo ""
echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m /media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi

ch-mount.sh脚本放到ELF2-linux-source/ubuntu目录下,赋予权限后,通过参数-m指定挂载路径:

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ sudo chmod a+x ch-mount.sh
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ sudo ./ch-mount.sh -m rootfs/
root@ubuntu:/#

5、文件系统修改

前面我们挂载了文件系统,已将文件系统挂载到了QEMU模拟器,下面就可以安装我们所需要的软件了。

(1)更新下载源

root@ubuntu:/# apt update

(2)软件安装与卸载

至此,便可以安装所需软件了,在这里用apt-get安装自己所需软件,根据所需安装。我们这里来安装一个minicom串口测试工具。如下:


root@ubuntu:/# exit
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$

此外通过dpkg --list命令查看所有安装的软件,如果想裁剪文件系统,可以使用【apt-get remove 软件包名称】进行卸载相关软件。

(3)安装完成后,exit退出QEMU

root@ubuntu:/# exit

(4)执行ch-mount.sh脚本卸载文件系统,指定参数-u,后打印如下:

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ sudo ./ch-mount.sh -u rootfs/
elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ sudo umount rootfs

6、打包镜像

elf@ubuntu:~/work/ELF2-linux-source/ubuntu$ cd ..
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh updateimg

在ELF2-linux-source/rockdev路径下会生成新的update.img。

通过以上步骤,我们成功完成了 【RK3588】ELF 2开发板上进行根文件系统的定制工作,这一过程不仅简化了批量生产中的软件安装流程,还显著提升了开发效率。各位小伙伴如果在实践过程遇见各种问题,欢迎随时留言探讨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45335

    浏览量

    663322
  • 嵌入式
    +关注

    关注

    5186

    文章

    20143

    浏览量

    328674
  • 嵌入式开发板

    关注

    5

    文章

    104

    浏览量

    19677
  • Linux开发
    +关注

    关注

    0

    文章

    44

    浏览量

    7603
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读 瑞芯微旗舰芯RK3588系列
    的头像 发表于 09-22 15:54 2.2w次阅读
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解读

    技术|【RK3588ELF 2开发板如何添加exFAT和NTFS文件系统格式

    基于RK3588设计的ELF2开发板在搭载Desktop22.04系统时,对TF卡的文件系统支持存在以下限制:不支持exFAT格式;支持NT
    的头像 发表于 08-27 17:21 3198次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>贴</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>如何添加exFAT和NTFS文件<b class='flag-5'>系统</b>格式

    ElfBoard技术|如何在RK3588ELF 2开发板上进行UART引脚复用配置

    IOMUX(引脚功能复用)是芯片厂商为高效利用有限硬件引脚资源而设计的关键技术,它允许单个物理引脚通过软件配置为多种不同的功能(如GPIO、UART、I2C等)。不同SoC芯片的配置方式各异,本文将以【RK3588
    的头像 发表于 11-18 16:54 5055次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b><b class='flag-5'>上进行</b>UART引脚复用配置

    迅为RK3588开发板Android系统烧写及注意事项

    迅为RK3588开发板Android系统烧写及注意事项
    的头像 发表于 12-03 15:17 2713次阅读
    迅为<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>Android<b class='flag-5'>系统</b>烧写及注意事项

    ElfBoard技术|如何在RK3588ELF 2开发板实现I2C功能复用

    C等。由于此项配置的具体实现因SoC平台而异,本文特以【RK3588ELF 2开发板上的I2C6引脚为例,
    的头像 发表于 12-04 10:10 1587次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>实现I<b class='flag-5'>2</b>C功能复用

    RK3588 EVB 开发板介绍

    S EVB在接口及开发板尺寸上进行了优化,尺寸为20cmX14cm,适用于高端平板、AR/VR、个人移动互联网设备等产品。图:RK3588S EVB 系统框图
    发表于 03-16 16:39

    【首发开箱】揭开RK3588开发板的神秘面纱!

    教你玩转RK3588开发板硬声入驻企业:瑞芯微教程包含以下内容:1、开箱:EVB开箱接线2、外部接口:EVB硬件接口介绍。3、环境搭建:EVB使用及调试方法。4、系统升级:
    的头像 发表于 03-14 11:24 4516次阅读
    【首发开箱】揭开<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>的神秘面纱!

    迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    RK3588开发板
    的头像 发表于 06-09 11:09 7005次阅读
    迅为<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>-基于瑞芯微<b class='flag-5'>RK3588</b>摄像头方案

    rk3588有哪些开发板

    rk3588有哪些开发板 当前,rk3588开发板有RockPro64、Rock960 Plus、Rockchip Sapphire、Khadas VIM3 Pro和Firefly
    的头像 发表于 08-15 17:04 3596次阅读

    迅为iTOP-RK3588开发板Buildroot系统功能测试

    迅为iTOP-RK3588开发板Buildroot系统功能测试
    的头像 发表于 03-14 15:42 3276次阅读
    迅为iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>Buildroot<b class='flag-5'>系统</b>功能测试

    RK3588!黑神话悟空,启动?-迅为电子RK3588开发板

    RK3588!黑神话悟空,启动?-迅为电子RK3588开发板
    的头像 发表于 08-30 14:13 1969次阅读
    <b class='flag-5'>RK3588</b>!黑神话悟空,启动?-迅为电子<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>

    能力再次提升! 迅为RK3588/RK3568开发板&amp;amp;核心新增定制分区镜像

    能力再次提升! 迅为RK3588/RK3568开发板&核心新增定制分区镜像
    的头像 发表于 11-06 15:11 1995次阅读
    能力再次提升! 迅为<b class='flag-5'>RK3588</b>/<b class='flag-5'>RK</b>3568<b class='flag-5'>开发板</b>&amp;amp;核心<b class='flag-5'>板</b>新增<b class='flag-5'>定制</b>分区镜像

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案
    的头像 发表于 04-18 15:19 1051次阅读
    <b class='flag-5'>技术</b>分享|iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>Ubuntu20<b class='flag-5'>系统</b>旋转屏幕方案

    ElfBoard技术|【RK3588ELF 2开发板开机自启动详解

    在嵌入式系统开发中,合理管理开机自启动项目能够优化系统启动流程,确保关键服务和应用按时加载运行。本文将详细介绍在ELF2开发板Linux5.10.209
    的头像 发表于 06-27 16:20 1778次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>开机自启动详解

    ElfBoard技术|如何在RK3588ELF 2开发板用户空间更换开机Logo

    传统修改开发板开机Logo的方式需要重新编译内核,流程复杂且耗时。本文介绍了一种创新方案:通过预先在存储中划分专用的Logo分区,允许用户直接在文件系统中更新Logo图片文件,这极大地简化了定制流程
    的头像 发表于 10-29 11:12 971次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>用户空间更换开机Logo