EXT4镜像制作和烧录

 

  • EXT4镜像格式

一种是raw ext4 image,其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载

另一种是sparse ext4 image,是一个非常普通的dat文件。由于它将raw ext4进行稀疏描述,因此尺寸比较小(没有全零的无效填充区)

  • 在海思SDK文档osdrv\tools\pc\ext4_utils中编译生成有make_ext4fs,其是PC端制作EXT4工具。
  • make_ext4fs工具使用方法

                     make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]

                                           [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]

                      &

### 合成Linux镜像文件并烧录至固件 #### 制作Linux系统镜像文件 为了将Linux镜像文件合并并烧录到固件中,通常需要经历以下几个过程: 1. **创建空白的img文件** 使用`dd`命令根据目标存储介质(如eMMC或SD卡)的需求创建一个适当小的空白img文件。这一步是为了模拟实际硬件上的存储空间[^4]。 ```bash dd if=/dev/zero of=output.img bs=1M count=800 ``` 2. **对img文件进行分区** 使用`fdisk`或其他工具对刚刚创建的img文件进行分区操作。此步骤定义了引导区、根文件系统其他必要的区域。 ```bash fdisk output.img ``` 3. **加载img文件作为循环设备** 将img文件通过`losetup`命令映射为一个虚拟块设备,并使用`kpartx`提取其中的分区表以便后续处理。 ```bash losetup /dev/loop0 output.img kpartx -av /dev/loop0 ``` 4. **格式化各分区** 针对不同的分区需求执行相应的文件系统格式化操作。例如,对于根文件系统可以采用ext4格式。 ```bash mkfs.ext4 /dev/mapper/loop0p1 ``` 5. **挂载分区并填充数据** 创建临时目录用于挂载新创建的分区,随后复制所需的内核(zImage)、设备树(dtb)以及完整的rootfs等内容进去。 ```bash mkdir -p /mnt/rootfs mount /dev/mapper/loop0p1 /mnt/rootfs cp -r rootfs/* /mnt/rootfs/ umount /mnt/rootfs ``` 6. **卸载与清理资源** 完成上述所有写入动作之后记得解除挂载状态,并移除之前设置好的循环设备关联关系。 ```bash kpartx -dv /dev/loop0 losetup -d /dev/loop0 ``` #### 烧录生成的镜像到固件 当完成整个镜像构建流程后,则可利用特定脚本或者手动方式将其刷入最终的目标硬件上成为可用固件的一部分[^2]。 1. 如果存在自动化打包方案比如armsom项目中的`./mkupdate.sh`脚本可以直接调用来简化这一环节的工作量。 ```bash cd /tools/linux/Linux_Pack_Firmware/rockdev ./mkupdate.sh ``` 2. 或者借助其他通用方法如直接运用`dd`指令把准备完毕后的image file传输给真实的物理媒介位置实现相同目的[^5]。 ```bash sudo dd if=output.img of=/dev/sdX bs=4M status=progress && sync ``` 以上便是关于如何合成Linux镜像文件并将之成功烧录进固件内的基本指导说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值