Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:vim1s:development:erase-emmc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:vim1s:development:erase-emmc [2022/08/22 03:18]
hyphop
products:sbc:vim1s:development:erase-emmc [2022/08/24 02:00] (current)
hyphop old revision restored (2022/08/23 15:37)
Line 1: Line 1:
 ====== VIM1S Erase eMMC bootloader ====== ====== VIM1S Erase eMMC bootloader ======
  
 +We have several different ways to erase bootloader.
 =====U-Boot console====== =====U-Boot console======
  
Line 51: Line 52:
   - Power on your SBC again, and you'll find that all the data on the eMMC has been erased.   - Power on your SBC again, and you'll find that all the data on the eMMC has been erased.
  
-===== linux command-line =====+===== Linux command-line =====
  
 +eMMC boot-loader can be stored on ''/dev/mmcblk0'' and special areas ''/dev/mmcblk0boot0'' or ''/dev/mmcblk0boot0''.
 +
 +==== Cleanup eMMC boot loaders ====
 +
 +Cleanup special eMMC boot areas. 
 +
 +```sh
 +dd if=/dev/zero count=8192 | sudo tee /dev/mmcblk?boot? >/dev/null
 +```
 +
 +Also need cleanup eMMC common boot area. 
 +
 +```sh
 +sudo dd if=/dev/zero count=2000 seek=1 of=/dev/mmcblk0
 +```
 +
 +<WRAP important >
 +''/dev/mmcblk0'' maybe different, please check how-to [[#get-block-device-names-for-boot-loaders]]
 +</WRAP>
 +
 +==== Universal method for cleanup all eMMC boot-areas ====
 +
 +```sh
 +sudo dd if=/dev/zero count=8192 | sudo tee /dev/mmcblk?boot? >/dev/null
 +sudo dd if=/dev/zero count=2000 seek=1 of=$(ls /dev/mmcblk?boot?|grep -m1 -o /dev/mmcblk.)
 +
 +```
 +
 +==== Get block-device names for boot loaders ====
 +
 +Get block-device names for special boot areas.
 +
 +```shell
 +~$ ls -1 /dev/mmcblk?boot? /dev/bootloader?
 +/dev/bootloader0
 +/dev/bootloader1
 +/dev/mmcblk0boot0
 +/dev/mmcblk0boot1
 +```
 +<WRAP important >
 +''/dev/bootloader?'' same areas as ''/dev/mmcblk?boot?'', but shifted by 512 bytes
 +</WRAP>
 +
 +Get eMMC block-device name.
 +
 +```shell
 +~$ ls -1 $(ls /dev/mmcblk?boot?|grep -m1 -o /dev/mmcblk.)
 +/dev/mmcblk0
 +```
 +
 +==== How-to check boot loaders content ====
 +
 +This example display empty content for special boot-loaders areas.
 +
 +```shell
 +~$ for m in /dev/bootloader?;do echo $m; dd if=$m count=1 2>/dev/null | hexdump -C ;done 
 +
 +/dev/bootloader0
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 +*
 +00000200
 +/dev/bootloader1
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 +*
 +00000200
 +
 +```
 +
 +Display same but for other boot areas names.
 +
 +```shell
 +~$ for m in /dev/mmcblk?boot?;do echo $m; dd if=$m skip=1 count=1 2>/dev/null | hexdump -C ;done 
 +
 +/dev/mmcblk2boot0
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 +*
 +00000200
 +/dev/mmcblk2boot1
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 +*
 +00000200
 +```
 +
 +Next example display valid boot loader header ''@ML''.
 +
 +```shell
 +~$ dd if=/dev/mmcblk0 count=1 skip=1 2>/dev/null | hexdump -C | head -n1
 +00000000  40 4d 4c 20 8d 66 31 ed  00 00 00 00 80 05 00 00  |@ML .f1.........|
 +```
 +
 +/*
 This erasure method is suitable for the SBC with Linux installed: This erasure method is suitable for the SBC with Linux installed:
  
   - Power on and boot up.   - Power on and boot up.
   - Open a Terminal, and run ''dd'' to fill your bootloader partition with zeros:   - Open a Terminal, and run ''dd'' to fill your bootloader partition with zeros:
 +
  
 ```shell ```shell
Line 66: Line 159:
 root@Khadas:~# reboot root@Khadas:~# reboot
 ``` ```
 +*/
Last modified: 2022/08/22 03:18 by hyphop