"); //-->
毒瘾发作有什么症状| 头部容易出汗是什么原因| 今夕何夕是什么意思| 反手引体向上练什么肌肉| 六神无主是什么意思| 榴莲为什么贵| 挂名什么意思| 阴道长什么样子| 长沙有什么山| 梦到手机丢了什么预兆| 条状血流信号是什么意思| 四十不惑是什么意思| 强迫症是什么意思| 急性湿疹用什么药膏| 异食癖是什么意思| 什么叫特应性皮炎| 牙龈出血吃什么药| 疝气吃什么药效果好| 家里停电打什么电话| 夜尿多是什么原因引起的| 什么三迁| 什么是艾滋病| 代表友谊的花是什么花| 民政局局长什么级别| 包皮炎用什么药最有效| 契丹族现在是什么族| 害羞的反义词是什么| 中暑吃什么食物好| 脚踩按摩垫有什么好处| 疣体是什么| 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开发板文件系统打包及镜像制作的方法,演示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 |