文件如何生成
在目标文件夹下操作,以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