海思3559a_怎么手动生成ext4镜像文件

文件如何生成

在目标文件夹下操作,以4g为例

//生成 4096MB(4GB)的 ext4 空白镜像

cd /home/ebaina/work/nfs/ziyandmeb_2.0.4.0/ext4test
dd if=/dev/zero of=ext4test.ext4 bs=512 count=8388608

//验证文件大小,应显示 4.0G(4096MB)

ls -lh ext4test.ext4

//使用海思 SDK 提供的工具(路径可能需要调整,比如:osdrv/pub/bin/pc/mkfs.ext4 ext4test.ext4

/home/ebaina/work/hisi_3559_SDK/Hi3559AV100_SDK_V2.0.4.0/osdrv/pub/bin/pc/mkfs.ext4 ext4test.ext4

//创建一个空文件用于挂载

mkdir test_mount

//挂载

sudo mount ext4test.ext4 test_mount/

//拷贝文件

sudo cp -ar tsmtc_soft/* test_mount/

//拷贝完毕,解除挂载

sudo umount test_mount

在这里插入图片描述

在这里插入图片描述

烧录后如何在板端挂载

以200m为例
使用hitool软件烧录
在这里插入图片描述
烧录成功后,停在uboot发送

setenv bootargs 'mem=512M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),20M(kernel),2000M(rootfs.ext4),200M(ext4test200m.ext4),-(user)'

setenv bootcmd 'mmc read 0 0x80000000 800 A000; mmc read 0 0x82000000 3F2000 64000; bootm 0x80000000'

saveenv
reset

在未添加第4个分区时,发送的指令如下:

setenv bootargs 'mem=512M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),20M(kernel),2000M(rootfs.ext4),-(user)'     
setenv bootcmd 'mmc read 0 0x80000000 800 A000; bootm 0x80000000'  
saveenv 
reset

说明:
第2个分区的开始地址是1M,对应的块数为1 * 1024 * 1024/512=2048块,即0x800(十六进制)。然后长度20M对应块数是20 * 1024 * 1024/512=40960块,即A000(十六进制),对应mmc read 0 0x80000000 800 A000;
第4个分区,即新增的200MB分区起始地址为 2021M,块大小(Block Size): 512 字节,对应的块数为2021 * 1024 * 1024/512=4139008,
即0x3F2000(十六进制),长度200M对应的块数是200* 1024 * 1024/512=409,600块,即0x64000(十六进制),对应mmc read 0 0x81000000 3F2000 64000;

如果是4g怎么计算呢?
起始地址为 2021M,块大小(Block Size): 512 字节,对应的块数为2021 * 1024 * 1024/512=4139008,
即0x3F2000(十六进制),长度4096M对应的块数是4096* 1024 * 1024/512=8388,608块,即0x800000(十六进制),对应mmc read 0 0x81000000 3F2000 800000;

进入系统:
//查看所有块设备及分区

cat /proc/partitions

//设置挂载

mkdir -p /mnt/ext4test

mount -t ext4 /dev/mmcblk0p4 /mnt/ext4test

//查看挂载情况

df -h

在这里插入图片描述
在这里插入图片描述
如果rootfs.ext4大小改为1g,ext4test4096m.ext4仍然为4g

dd if=/dev/zero of=ext4test1g.ext4 bs=512 count=2097152

# 在U-Boot命令行中执行
setenv bootargs 'mem=512M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),20M(kernel),1024M(rootfs.ext4),4096M(ext4test4096m.ext4),-(user)'
setenv bootcmd 'mmc read 0 0x80000000 800 A000; mmc read 0 0x82000000 A800 200000; bootm 0x80000000'
saveenv
reset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值