zoukankan      html  css  js  c++  java
  • 如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

    /**
    ******************************************************************************
    * @author    Maoxiao Hu
    * @version   V1.0.1
    * @date       Feb-2015
    ******************************************************************************
    * < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >
    ******************************************************************************
    **/

    如果你的系统是Mac OS X,请移步这里《如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘》。

    硬件:迅为iTop 4412精英版 & TF卡
    软件:系统自带终端即可

    首先,我们应该清楚TF/SD卡可以看作一张完全空白的“白纸”,之所以有分区、分区格式的区别不过是在在这张“白纸”的某些特定位置写入了一些数据来指示分区、分区格式。
     
    其次,我们还应该清楚,在TF/SD启动模式下,exynos 4412一上电,内部iROM会从TF/SD的第1个Block(第512个字节开始)读取8KB的数据到内部iRAM,然后从内部iRAM的0地址开始运行。
     
    原理搞清楚了,那么首先需要把TF/SD低级格式化-所有Block全部写0x00
     

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

    使用ls /dev/sd* 命令查看所有连接到电脑上磁盘。
    问题:在这里为什么不用df命令?
    原因是假设你的TF/SD卡只有一个分区但这个分区已损坏,或者有多个分区但是没有一个可以识别的分区,那么此时df命令无法查看到tf/sd卡,所以说直接列出dev下所有sd开头的设备,是终极方案。

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

    插上tf/sd卡之前:

    NewImage
     
    插上tf/sd卡之后:
     
    NewImage
     
    很明显多出的/dev/sdb就是本文后续操作的对象。
     
    (2)假设你的tf/sd卡已有多个分区,无论这些分区是否损坏,现象应该是类似这样的:

    插上tf/sd卡之前:

    NewImage
     
    插上tf/sd卡之后:
    NewImage
     
    这里多出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字节的数据。

     

    执行结果(部分)如下:

     

    NewImage

     

    *代表内容为0x00,为了节省空间故作省略。

    3、清空TF卡上前1MB的数据

    由于4412的uboot大小基本在几百kB的量级,所以清空前1MB空间足够用,注意这里的清空不是格式化,而是填充0x00。

    我们利用系统/dev下的zero设备,清零tf/sd卡前1MB。

    执行结果如下:

    NewImage

    这里的count=2000代表清空2000个block,一个block=512B,2000个正好为1MB。

    再次hexdump查看tf/sd卡数据,发现:

    NewImage

    前1MB空间成功清0x00。

    4、烧写uboot启动文件

    在这里,我们待烧写的文件为 u-boot-iTOP-4412.bin 这个文件。

    终端执行命令:

    NewImage

    if代表输入文件地址,以你u-boot-iTOP-4412.bin 这个文件的实际地址为准,of代表输出地址,以你tf/sd卡的实际设备号为准。

    到这里,就可以将tf/sd卡插入开发板上电启动了,为了证明我们烧写无误,我们执行后续操作。

    5、确认烧写正确(可跳过)

    我们需要确定从tf/sd卡的第一个block开始处,确实正确烧写了u-boot-iTOP-4412.bin这个文件,下面我们对比一下,用到的命令同样还是hexdump。

    在这里,我们为了显示方便,只打印前5KB数据,发现bin文件被正确的复制到了sd卡的512字节处:

    NewImage

    6、将TF卡接到开发板上,拨码开关选择TF启动,上电:

    NewImage

    Done。

    感谢:Zinway

  • 相关阅读:
    sys.stdout.flush-倒计时
    wget 网站扒取
    万能英数脚本
    sample function
    get_time
    读取指定行
    request设置cookies
    resize2fs
    闭包与认识装饰器
    函数的名称空间与作用域
  • 原文地址:https://www.cnblogs.com/humaoxiao/p/4282903.html
Copyright © 2011-2022 走看看