DD
Linux dd命令用于读取、转换并输出数据。
dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
- if=文件名:输入文件名,默认为标准输入。即指定源文件。
- of=文件名:输出文件名,默认为标准输出。即指定目的文件。
- bs=bytes:同时设置读入/输出的块大小为bytes个字节。
- seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
Nano Bin File Pack Example
以16M 大小flash镜像打包脚本为例:
dd if=/dev/zero of=flashimg.bin bs=1M count=16 &&\ dd if=$YOUR_UBOOT_FILE of=flashimg.bin bs=1K conv=notrunc &&\ dd if=$YOUR_DTB_FILE of=flashimg.bin bs=1K seek=1024 conv=notrunc &&\ dd if=$YOUR_KERNEL_FILE of=flashimg.bin bs=1K seek=1088 conv=notrunc &&\ mkdir rootfs tar -xzvf $YOUR_ROOTFS_FILE -C ./rootfs &&\ cp -r $YOUR_MOD_FILE rootfs/lib/modules/ &&\ # 为根文件系统制作jffs2镜像包 # --pad参数指定 jffs2大小 # 由此计算得到 0x1000000(16M)-0x10000(64K)-0x100000(1M)-0x400000(4M)=0xAF0000 mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o jffs2.img &&\ dd if=jffs2.img of=$YOUR_IMG_FILE bs=1K seek=5184 conv=notrunc &&\