制作Cortex-A53开发板SD卡启动盘

下边链接资料关于SD卡分区的资料,写的蛮详细的SD卡分析详解:

 https://blog.csdn.net/mjx91282041/article/details/8904705/

 一、目的

    当开发板刚开始,什么都没有时。第一步需要将BootLoader(此实验以uboot为例)下载到开发板,但是此时不能用fastboot下载(fastboot是uboot提供的交互模式,此时uboot还没有下载进开发板);也不能用TFTP服务器等网络传输(TFTP服务器也需要uboot支持,需要带有网卡驱动的uboot启动后才能配置TFTP服务器)。所以此时只能制作SD卡启动盘,由此可见,其至关重要。

二、开始制作SD卡启动盘

1、 在windows中将SD卡格式化

2、 将格式化后的SD卡分区

  1. 准备一张不小于 2GB 的 SD 卡,并插到装有 ubuntu 操作系统或装有 ubuntu 虚拟机的的 PC 机本文以 ubuntu 虚拟机为例。将 SD 卡插入 PC(因多数笔记本自带 SD 卡读卡器无法被虚拟机识别,所以请使用外置 SD 卡读卡器),点击 vmware player 右上角 SD 卡对应盘符选择连接,接入虚拟机。制作Cortex-A53开发板SD卡启动盘_第1张图片
  2. 打开Linux终端,在Linux的终端窗口,使用fdisk删除原来SD卡上所有的分区,一
    般sdb为系统为SD卡分配的设备节点。注意,具体由节点名称而定,有可能是sdc,sde等。使用如下命令查看设备节点:
        没有插入SD卡时,在终端输入查看系统磁盘分区命令:
        $ cat /proc/partitions
      显示为:                                                                                                       制作Cortex-A53开发板SD卡启动盘_第2张图片

    插入 SD 卡在此执行命令,再次输入查看系统分区命令,显示中多出来的就是 SD 卡对应分区;制作Cortex-A53开发板SD卡启动盘_第3张图片

    其中,sdb 为设备名称,sdb1 为分区名称,分区或删除分区操作对象为设备名 sdb。

  3. 如何删除分区(不删除没有影响)
     执行命令删除分区:  sudo fdisk /dev/sdb                                                                                  

  4.  提示输入命令完成相应操作,可以输入 m 查看帮助,有命令的详细介绍,其中 d 为删除分区。                                     制作Cortex-A53开发板SD卡启动盘_第4张图片
          
    输入“d” 删除分区,如果 SD 卡只有一个分区输入命令后会被直接删除,如果有多个分区根据提示删除即可:

  5. 如何添加一个分区
    重建分区,输入“n”添加一个新分区,输入后会提示分区类型选择“p”主分区,接着会提示分区,号输入“1”,接着会提示输入分区起始扇区位置,这里需要预留一部分给 uboot 所以输入“524288”即预留 256M 空间,接下来选择分区最后扇区编号,这个直接回车使用默认值即可,最后输入“w”写入分区表:制作Cortex-A53开发板SD卡启动盘_第5张图片    制作Cortex-A53开发板SD卡启动盘_第6张图片

  6. 格式化分区,将分区格式化为 fat 格式:
    sudo  mkfs.vfat  /dev/sdb1                                                     

3、将编译制作好的ubootpak.bin烧写进SD卡

        利用自制SD卡烧写工具sdtool,在Ubuntu下进行ubootpak.bin的烧写                                                                                        

        s5p6818-sdmmc.sh脚本工具代码如下

  1 #!/bin/bash
  2 #
  3 # s5p6818 irom sd/mmc boot fusing tool.                                                                          
  4 # Author: Jianjun Jiang <[email protected]>
  5 
  6 
  7 # display usage message
  8 USAGE()
  9 {
 10   echo Usage: $(basename "$0") ' '
 11   echo '       device     = disk device name for SD card.'
 12   echo '       bootloader = /path/to/ubootpak.bin'
 13   echo 'e.g. '$(basename "$0")' /dev/sdb ubootpak.bin'
 14 }
 15 
 16 [ `id -u` == 0 ] || { echo "you must be root user"; exit 1; }
 17 [ -z "$1" -o -z "$2" ] && { USAGE; exit 1; }
 18 
 19 dev="$1"
 20 xboot="$2"
 21 
 22 # validate parameters
 23 [ -b "${dev}" ] || { echo "${dev} is not a valid block device"; exit 1; }
 23 [ -b "${dev}" ] || { echo "${dev} is not a valid block device"; exit 1; }
 24 [ X"${dev}" = X"${dev%%[0-9]}" ] || { echo "${dev} is a partition, please use device, 
    perhaps ${dev%%[0-9]}"; exi
 25 [ -f ${xboot} ] || { echo "${xboot} is not a bootloader binary file."; exit 1; }
 26                                                                                                                  
 27 # copy the full bootloader image to block device
 28 dd if="${xboot}" of="${dev}" bs=512 seek=1 conv=sync
 29 
 30 sync;
 31 sync;
 32 sync;
 33 
 34 echo "^_^ The image is fused successfully"
 35 
  • 在Ubuntu中打开一个终端,并进入到sdtool目录;

        cd  sdtool

  • 将SD卡插入USB读卡器中,将读卡器插入PC机,使用前面的方法将SD卡连接到虚拟机中。
  • 在终端中执行下面的命令烧写SD卡。

        $ sudo  ./s5p6818-sdmmc.sh  /dev/sdb  ubootpak.bin
          592+1 records in
          593+0 records out
          303616 bytes (304 kB, 296 KiB) copied, 0.378912 s, 801 kB/s
          The image is fused successfully
         (注:上面的/dev/sdb是SD卡设备,要根据自己的实际情况决定,最好不要连接U盘等其他USB外设,否则可能会将             镜像烧写在U盘上!!!)

  • 将制作好的启动SD卡插入FS6818开发板的SD卡插槽中,选择从SD卡启动。然后开发板上电,查看串口终端上的信息,确认启动盘SD卡制作成功。

你可能感兴趣的:(BootLoader)