Quote:
Originally Posted by Poetcop
* dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 bs=4
which took 137.6 seconds.
|
In the "dd" command, "bs=4" sets a block size of 4 BYTES. Although that works fine, it is better to use a block size optimized for the device being written to.
If you look at my original post, I used "bs=4K" (which is 4096 bytes, corresponding to the mmc nand physical erase page size). Writing a smaller blocksize (such as 1024 bytes) causes extra read/modify/write cycles (unless cached with deferred writes in the firmware), and takes much more time.
Using a tiny block size (like 4 bytes) causes MANY extra writes, which may take a lot of extra time unless the mmc firmware gathers and defers writing until it has a full erase block, and even then, there would be a lot of extra system overhead for all those extra write operations being passed to the kernel mode mmc device driver.
SUMMARY: It would have been better to use:
dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 bs=4K