"); //--> 毒瘾发作有什么症状| 头部容易出汗是什么原因| 今夕何夕是什么意思| 反手引体向上练什么肌肉| 六神无主是什么意思| 榴莲为什么贵| 挂名什么意思| 阴道长什么样子| 长沙有什么山| 梦到手机丢了什么预兆| 条状血流信号是什么意思| 四十不惑是什么意思| 强迫症是什么意思| 急性湿疹用什么药膏| 异食癖是什么意思| 什么叫特应性皮炎| 牙龈出血吃什么药| 疝气吃什么药效果好| 家里停电打什么电话| 夜尿多是什么原因引起的| 什么三迁| 什么是艾滋病| 代表友谊的花是什么花| 民政局局长什么级别| 包皮炎用什么药最有效| 契丹族现在是什么族| 害羞的反义词是什么| 中暑吃什么食物好| 脚踩按摩垫有什么好处| 疣体是什么| 7月28日什么星座| 腰酸背痛是什么原因| ne医学上是什么意思| 长个子需要补充什么| 自我救赎是什么意思| 小老头是什么意思| 粉色玫瑰花代表什么意思| 心慌心悸吃什么药| 什么泡水喝对肝脏好| 幼儿急疹是什么原因引起的| 吃什么药死的快| 龙虾吃什么食物| 鼻窦炎的症状是什么| 可不是什么意思| 婴儿头发竖起来是什么原因| 点子是什么意思| 花木兰属什么生肖| 尿偏红色是什么原因| 产复欣颗粒什么时候吃| 头发大把大把的掉是什么原因| 直肠指检能检查出什么| 打马赛克是什么意思| 为什么不孕不育| 病毒的繁殖方式是什么| 7.30是什么星座| 什么是正方形| diy是什么意思| 专硕和学硕有什么区别| 夏天喝什么茶减肥| 四物汤什么时候喝最好| 婉甸女装属于什么档次| 硬化症是什么病| 安罗替尼适合什么肿瘤| 中性粒细胞高说明什么| 芡实是什么| 动销是什么意思| 内分泌失调看什么科| 胃反流是什么原因| 羊水是什么颜色的| 女生为什么喊你男神| 尿道口感染吃什么药| 身不由己是什么生肖| 黄油是什么油| 唇珠在面相中代表什么| 属蛇的本命佛是什么佛| 丁丁历险记的狗是什么品种| 王久是什么字| 保养是什么意思| 为什么超市大米不生虫| 手持吸尘器什么牌子好| 疱疹是什么原因长的| 时蔬是什么意思| 近视散光是什么意思| 皮肤瘙痒是什么病的前兆| 快穿是什么意思| 骨古头坏死吃什么药| 1600年是什么朝代| 葫芦什么时候开花| 免职和撤职有什么区别| 芈月和嬴政什么关系| 为什么老是便秘| 籼米是什么米| 13层楼房有什么说法吗| 什么是手性碳原子| 染色体由什么组成| 反流性食管炎可以吃什么水果| 麻瓜是什么意思| 右手大拇指抖动是什么原因| 38是什么意思| 周围神经病是什么症状| 摇摇欲坠是什么意思| 缸垫呲了什么症状| 风热感冒吃什么药最快| 静脉曲张溃烂擦什么药| 四月18号是什么星座的| 七月一号什么星座| 糖浆是什么| 一什么鹿角| 什么食物含维生素b12最多| 金疮是什么病| 18kgp是什么意思| 肾是干什么用的| 心电监护pr是什么意思| 牵强是什么意思| 高血压吃什么降的快| 血压偏高是什么原因| 回族信仰什么教| 乙肝第二针最晚什么时候打| 一月十一是什么星座| 什么而去| 青霉素v钾片治什么病| 月经量特别少是什么原因| 脚裂口子是什么原因| 半枝莲有什么功效| 喝完酒吃点什么对胃好| 三什么一什么四字词语| 养胃吃什么最好| 代管是什么意思| 重情重义是什么意思| 冠心吃什么药好| sp什么意思| 维生素b族为什么不能晚上吃| 支气管疾患是什么意思| 女生学什么专业好| 1947年属猪的是什么命| 甲亢用什么药| 扁桃体发炎有什么症状| 一个合一个页读什么| 肾上腺挂什么科| 肝胆相照什么意思| 罗汉肉是什么肉| 争宠是什么意思| 三不伤害是指什么| 唐老鸭叫什么名字| 动脉斑块是什么意思| hco3-是什么意思| 11.28什么星座| 王安石号什么| 晕血是什么症状| 猴子属于什么类动物| b族维生素什么时候吃最好| acl是什么意思| 六六无穷是什么意思| 家里放什么最招财| 中暑喝什么| 老匹夫是什么意思| 3月20是什么星座| 发动机抖动是什么原因| 欧诗漫适合什么年龄| 小孩荨麻疹吃什么药| saucony是什么牌子| 实至名归是什么意思| 脂肪瘤是什么引起的| 逝者如斯夫什么意思| 占便宜是什么意思| 送羊是什么意思| 牙痛吃什么好| 陶渊明是什么朝代的| 语素是什么| 感冒吃什么药好| 回心转意是什么意思| 孕妇快生的时候有什么征兆| 糖尿病吃什么主食最好| ccu是什么意思| 梦见种花生是什么意思| 什么是前列腺炎| 大什么大| 马甲线是什么意思| burberry是什么品牌| 肩周炎是什么引起的| 心想事成是什么意思| 面基是什么意思啊| 属猪的是什么命| 手掌像什么| 血管检查是做什么检查| 孙字五行属什么| 蛋白是什么东西| 孩子高烧不退是什么原因| 豆加支念什么| 晚五行属什么| 酒后手麻什么原因| 远字五行属什么| 三轮体空什么意思| 什么面什么刀| 么么是什么意思| 九加虎念什么| 发烧拉稀是什么原因| 左肋骨下方隐隐疼痛是什么原因| 女生的胸长什么样子| pv是什么材质| 四季豆是什么| 舌中间有裂纹是什么原因| 无水酥油是什么| 郑和下西洋是什么朝代| 骨密度是什么意思| 一贫如什么| 游戏hp是什么意思| 四查十对的内容是什么| aosc是什么病| 前置胎盘需要注意什么| 卓玛什么意思| 海绵宝宝是什么生物| 万花筒是什么| 肘关节发黑是什么原因| 稀奶油是什么| 744是什么意思| 总蛋白偏高有什么危害| 妥瑞氏症是什么病| 子宫是什么| 黄豆什么时候播种| 五毒是什么| 胃胀吃什么中成药| 凡人修仙传什么时候写的| 五音不全是什么意思| 榴莲跟什么不能一起吃| 叶酸有什么好处| 晚上睡觉脚抽搐是什么原因| 日语亚麻得是什么意思| 一个月一个办念什么| 纵横四海是什么意思| 八爪鱼是什么意思| 燃烧卡路里是什么意思| 伪骨科是什么意思| 阴道炎用什么药| 幽门螺杆菌是什么| 体癣是什么原因引起的| 陈晓和赵丽颖为什么分手| 史迪仔是什么动物| 2月什么星座的| 伤口止血用什么药| 300分能上什么大学| 认知障碍是什么意思| 73岁属什么| 梅杰综合症是什么病| 漫展是干什么的| 脖子为什么有颈纹| 老娘们是什么意思| 三个火字读什么| 高压氧舱治疗什么效果| 黄精是什么药材| 20岁长白头发是什么原因造成的| 冷淡是什么意思| 新鲜橄榄菜长什么样子| 小暑大暑是什么意思| 宫保鸡丁宫保是指什么| 胰腺分泌什么| 精液是什么味| 盆底肌是什么| 肌无力是什么原因引起的| 公务员属于什么行业| 炝锅是什么意思| 沾花惹草是什么生肖| 额头爱出汗是什么原因| 什么叫艾滋病| 百度
新闻  |   论坛  |   博客  |   在线研讨会
Linux文件系统打包及镜像制作,触觉智能RK3562开发板演示
IDO触觉智能 | 2025-08-04 17:35:45    阅读:84   发布文章

本文介绍Linux开发板文件系统打包及镜像制作的方法,演示Linux文件系统打包及镜像制作,适用于想将配置好的系统环境打包成镜像批量烧录。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。

工具获取

本文所介绍的方法需要使用到Linux环境下的一些工具。工具可联系触觉智能客服或留言获取。下载Ubuntu PC环境后,需要解包后使用,解包方法如下:

$ tar -vxf ido-pack-tools.tar -C ./

解包后的文件内容如下:

工具包脚本默认芯片信息是rk3562,如果使用其他芯片,则需要修改芯片信息,对应路径ido-pack-tools/mkupdate.sh。

文件系统打包及文件系统镜像制作

从开发板中打包出文件系统

先在开发板中插入U盘或TF卡,然后通过mount命令查看文件系统分区节点,如下所示:

root@ido:/# mount

/dev/mmcblk2p8 on / type ext4 (rw,relatime)

devtmpfs on /dev type devtmpfs (rw,relatime,size=996844k,nr_inodes=249211,mode=755)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,size=1008396k,nr_inodes=252099)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

tmpfs on /run type tmpfs (rw,nosuid,nodev,size=201680k,nr_inodes=252099,mode=755)

tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,nr_inodes=252099)

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=1008396k,nr_inodes=252099,mode=755)

cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)

cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)

pstore on /sys/fs/pstore type pstore (rw,relatime)

cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)

cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)

cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)

cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)

debugfs on /sys/kernel/debug type debugfs (rw,relatime)

tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)

configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)

fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)

adb on /dev/usb-ffs/adb type functionfs (rw,relatime)

tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=201676k,nr_inodes=252099,mode=700)

tmpfs on /run/user/1001 type tmpfs (rw,nosuid,nodev,relatime,size=201676k,nr_inodes=252099,mode=700,uid=1001,gid=1001)

gvfsd-fuse on /run/user/1001/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)

/dev/mmcblk2p7 on /media/ido/oem type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)

/dev/mmcblk2p6 on /media/ido/userdata type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)

/dev/sda1 on /media/ido/U type vfat (rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0022,dmask=0022,codepage=936,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

由上面命令第2和29行可以看到

/dev/mmcblk2p8 on/type ext4 (rw,relatime),/dev/mmcblk2p8

挂载到根目录,/dev/mmcblk2p8就是我们需要的节点。U盘挂载目录为/media/ido/U。

# 挂载根文件目录

$ sudo mount /dev/mmcblk2p8 /mnt

# 进入挂载文件夹

$ cd /mnt

$ rm var/lib/misc/firstrun

$ sudo tar -czf /media/ido/U/ido-rootfs.tar.gz ./*

$ sync

注意:打包使用tar命令需要用sudo权限。

压缩包解压

将打包出的压缩包,解压至Ubuntu PC端环境,命令如下:

$ mkdir -p your/target/path/

$ sudo tar -xzf ido-rootfs.tar.gz -C your/target/path/

文件系统镜像制作

查看文件系统大小,如下所示:

$ sudo du -sh your/target/path/

制作镜像需要的脚本文件mk-rootfs-image.sh,文件位于工具包的pack-tools/roofs_mk/目录。根据系统大小修改 mk-rootfs-image.sh 脚本第25行的参数,默认镜像大小设置为4096MB。

dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=4096

注意:一般脚本中设置的镜像大小需要大于 du 返回值。

$ sudo cd pack-tools/roofs_mk/

$ sudo ./mk-rootfs-image.sh ../../your/target/path/

脚本正常运行退出后,可在目录得到rootfs.img的文件系统镜像。

制作整包固件update.img

前面文章得到了rootfs.img散包固件,接下来我们制作update.img整包固件。

此处分两种情况:

1. 只修改文件系统,只需将原本烧录的update.img镜像解包后,替换新制作的rootfs.img。

2. 如果除了文件系统外还有其他修改,则可以修改sdk源码编译脚本,编译的时候使用自定义的文件系统。

只修改文件系统的情况

将需要解包的完整镜像文件拷贝到工具包 pack-tools 目录下,此处以完整镜像 IDO-EVB3562-V1B_MIPI-800x1280_Ubuntu20_QT5_240719.img为例。

执行解包脚本,将update镜像按照分区拆分出分区镜像。

$ ./unpack.sh IDO-EVB3562-V1B_MIPI-800x1280_Ubuntu20_QT5_240719.img

执行结果如下:

分区文件解包存放到./output/目录。

将文章第2节中打包好的文件系统镜像复制替换到./output/rootfs.img,文件名称必须为rootfs.img。

最后执行./mkupdate.sh脚本将分区镜像合并为一个完整的镜像update.img。

脚本运行成功后,将会产生新的整包文件./output/update.img。

除了文件系统外还有其他修改的情况

不同SDK修改的地方不一致,在sdk中新建自定义目录myrootfs,把rootfs.img放入其中(myrootfs和build.sh同级目录)。

mkdir myrootfs

#将rootfs.img放入myrootfs中

ls myrootfs/rootfs.img

情况一:直接修改build.sh,使其编译时使用我们的rootfs.img打包。在build.sh的function build_rootfs()函数中,添加24-27行代码。

function build_rootfs(){

check_config RK_ROOTFS_IMG || return 0

RK_ROOTFS_DIR=.rootfs

ROOTFS_IMG=${RK_ROOTFS_IMG##*/}

rm -rf $RK_ROOTFS_IMG $RK_ROOTFS_DIR

mkdir -p ${RK_ROOTFS_IMG%/*} $RK_ROOTFS_DIR

case "$1" in

yocto)

build_yocto

ln -rsf yocto/build/latest/rootfs.img \

$RK_ROOTFS_DIR/rootfs.ext4

;;

debian)

build_debian

ln -rsf debian/linaro-rootfs.img \

$RK_ROOTFS_DIR/rootfs.ext4

;;

distro)

build_distro

for f in $(ls distro/output/images/rootfs.*);do

ln -rsf $f $RK_ROOTFS_DIR/

done

;;

myrootfs)

ln -rsf myrootfs/rootfs.img \

$RK_ROOTFS_DIR/rootfs.ext4

;;

*)

build_buildroot

for f in $(ls buildroot/output/$RK_CFG_BUILDROOT/images/rootfs.*);do

ln -rsf $f $RK_ROOTFS_DIR/

done

;;

esac

在执行build.sh lunch后,执行以下命令:

export RK_ROOTFS_SYSTEM=myrootfs

最后执行build.sh即可生成包含了rootfs.img的update.img整包固件。

./build.sh

rockdev/update.img即为我们所需的完整固件。

情况二:如果build.sh脚本中没有function build_rootfs()函数,则修改

./device/rockchip/common/scripts/mk-rootfs.sh,添加以下8-12行与35行代码:

....省略部分代码........

build_ubuntu20()

{

ln -rsf "$PWD/ubuntu/rootfs-ubuntu20.04-desktop.img" $ROOTFS_DIR/rootfs.ext4

finish_build build_ubuntu20 $@

}

build_myrootfs()

{

ln -rsf "$PWD/myrootfs/rootfs.img" $ROOTFS_DIR/rootfs.ext4

finish_build build_myrootfs $@

}

....省略部分代码........

build_hook()

{

check_config RK_ROOTFS_TYPE || return 0

if [ -z "$1" -o "$1" = rootfs ]; then

ROOTFS=${RK_ROOTFS_SYSTEM:-buildroot}

else

ROOTFS=$1

fi

ROOTFS_IMG=rootfs.${RK_ROOTFS_TYPE}

ROOTFS_DIR="$RK_OUTDIR/rootfs"

echo "=========================================="

echo " Start building rootfs($ROOTFS)"

echo "=========================================="

rm -rf "$ROOTFS_DIR"

mkdir -p "$ROOTFS_DIR"

case "$ROOTFS" in

yocto) build_yocto "$ROOTFS_DIR" ;;

debian) build_debian "$ROOTFS_DIR" ;;

buildroot) build_buildroot "$ROOTFS_DIR" ;;

ubuntu) build_ubuntu20 "$ROOTFS_DIR" ;;

myrootfs)build_myrootfs "$ROOTFS_DIR" ;;

*) usage ;;

esac

修改

./device/rockchip/common/configs/Config.in.rootfs,添加以下7、20、21行代码:

config RK_ROOTFS_SYSTEM

string

default "buildroot" if RK_ROOTFS_SYSTEM_BUILDROOT

default "debian" if RK_ROOTFS_SYSTEM_DEBIAN

default "yocto" if RK_ROOTFS_SYSTEM_YOCTO

default "ubuntu" if RK_ROOTFS_SYSTEM_UBUNTU

default "myrootfs" if RK_ROOTFS_SYSTEM_MYROOTFS

choice

prompt "default rootfs system"

help

Default rootfs system.

config RK_ROOTFS_SYSTEM_BUILDROOT

bool "buildroot"

depends on RK_BUILDROOT_BASE_CFG != ""

config RK_ROOTFS_SYSTEM_DEBIAN

bool "debian"

depends on RK_DEBIAN_VERSION != ""

config RK_ROOTFS_SYSTEM_UBUNTU

bool "ubuntu"

config RK_ROOTFS_SYSTEM_MYROOTFS

bool "myrootfs"

在执行build.sh lunch命令后,执行以下命令:

export RK_ROOTFS_SYSTEM=myrootfs

最后执行build.sh命令,即可生成包含了rootfs.img的update.img整包固件。

./build.sh

rockdev/update.img即为我们所需的完整固件。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客
把尿是什么意思 总胆固醇高有什么危害 万年历是什么 betty是什么意思 夏天感冒咳嗽吃什么药
宫内膜回声不均匀是什么意思 空气栓塞取什么卧位 家字是什么结构 宫颈病变是什么原因引起的 秘辛是什么意思
接触是什么意思 三个白念什么 花肠是母猪的什么部位 孔子真名叫什么 px是什么意思
四肢百骸是什么意思 腰疼不能弯腰是什么原因引起的 社保断交有什么影响 倪妮和倪萍什么关系 39什么意思
dn是什么hcv8jop3ns3r.cn 常吃大蒜有什么好处hcv7jop9ns5r.cn 男人都是大猪蹄子是什么意思1949doufunao.com 1月7日是什么星座hcv7jop9ns1r.cn 羡慕的意思是什么youbangsi.com
女性肛门瘙痒用什么药xinmaowt.com 乙型肝炎表面抗体高是什么意思hcv9jop2ns5r.cn canon是什么意思hlguo.com 什么是宫刑hcv8jop6ns3r.cn 睡不着觉吃什么药hcv8jop5ns6r.cn
对什么有好处的英文qingzhougame.com 奇葩什么意思hcv8jop6ns7r.cn 锦囊妙计是什么意思hcv7jop9ns5r.cn 心得安又叫什么名hcv7jop5ns5r.cn 犟驴是什么意思hcv8jop9ns6r.cn
血小板是干什么用的dayuxmw.com 了是什么词性hcv8jop7ns5r.cn 阳阴阳是什么卦hcv9jop0ns8r.cn 为什么小便会带血hcv9jop2ns2r.cn 宋江代表什么生肖hcv8jop0ns0r.cn
百度