怎样在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

2020-02-03 12:03:15于海丽

首先,我们应该清楚TF/SD卡可以看作一张完全空白的“白纸”,之所以有分区、分区格式的区别不过是在在这张“白纸”的某些特定位置写入了一些数据来指示分区、分区格式。

/**

******************************************************************************

* @author    Maoxiao Hu

* @version   V1.0.0

* @date       Feb-2015

******************************************************************************

* < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >

******************************************************************************

**/

硬件:迅为iTop 4412精英版 & TF卡

软件:系统自带终端即可

其次,我们还应该清楚,在TF/SD启动模式下,exynos 4412一上电,内部iROM会从TF/SD的第1个Block(第512个字节开始)读取8KB的数据到内部iRAM,然后从内部iRAM的0地址开始运行。

原理搞清楚了,那么首先需要把TF/SD低级格式化-所有Block全部写0。

1、连接TF/SD卡,打开终端

使用ls /dev/sd* 命令查看所有连接到电脑上磁盘。

问题:在这里为什么不用df命令?

原因是假设你的TF/SD卡只有一个分区但这个分区已损坏,或者有多个分区但是没有一个可以识别的分区,那么此时df命令无法查看到tf/sd卡,所以说直接列出dev下所有sd开头的设备,是终极方案。


(1)假设你的tf/sd卡只有一个分区,无论这个分区是否损坏,现象应该是类似这样的:

插上tf/sd卡之前:

插上tf/sd卡之后:

很明显多出的/dev/sdb就是本文后续操作的对象。

(2)假设你的tf/sd卡已有多个分区,无论这些分区是否损坏,现象应该是类似这样的:

插上tf/sd卡之前:

插上tf/sd卡之后:

这里多出5个设备,但是我们仍然将/dev/sdb作为本文后续操作的对象。

注意:我这里是/dev/sdb,但是还有可能是/dev/sdc等等其它符号,必须根据你实际出现的设备名称进行以下操作,否则有可能损坏系统分区,非常重要,切记!!!

2、使用16进制模式打开TF卡查看数据(可跳过)

我们使用linux自带命令hexdump查看tf/sd卡中的数据:

命令为:

sudo hexdump -n 1048576 /dev/sdb

其中-n 1048576代表打印出前1M=1024*1024=1048576字节的数据。

执行结果(部分)如下: