emmc/nand与SD卡之间镜像备份与烧录

从SD卡烧录镜像到emmc/nand

当拨码开关设置为SD卡启动时通过 有以下的三种情况

  1. 正常启动,按正常流程加载Linux系统运行(默认模式)。

  2. 单次烧录镜像,将SD卡系统的全部内容烧录到emmc/nand中,包括已经部署好环境、程序等, 烧录完成之后从SD卡启动,将直接会进入SD卡的系统,只烧录一次。

  3. 持续烧录镜像,将SD卡系统的全部内容烧录到emmc/nand中,包括已经部署好环境、程序等, 烧录完成之后再次从SD卡启动,则重新进入烧录模式,适合量产使用。

fire-config刷机

方式一:修改/boot/uEnv.txt

其中在 /boot/uEnv.txt 文件中能够配置是否开启烧录模式以及选择单次烧录还是持续烧录模式。 默认情况下 flash_firmware 变量已被注释,默认为正常启动状态。如下所示

/boot/uEnv.txt
1
2
#flash_firmware=continued
#flash_firmware=once

当配置flash_firmware变量为 once 时将系统从下次启动时将配置为单次烧写模式, 当配置flash_firmware变量为 continued 系统从下次启动时将配置为持续烧写模式。

/boot/uEnv.txt
1
2
3
4
5
6
7
#配置单次烧录模式
#flash_firmware=continued
flash_firmware=once

#配置持续烧录模式
flash_firmware=continued
#flash_firmware=once

修改 /boot/uEnv.txt 文件并保存,重启系统后将进入烧录模式,烧录完成后板载RGB灯将轮流闪烁。

烧录模式:

fire-config刷机

提示

若想要停止持续烧录模式,可将SD卡取下使用读卡器将SD卡接入到电脑, 打开sd卡boot分区,修改该分区的uEnv.txt文件,注释 flash_firmware 变量。 修改内容见下图,

SD卡boot分区 fire-config使能自动烧录

方式二:使用fire-config配置

fire-config是野火Linux开发板自带的一个系统配置工具, 使用fire-config配置系统文件基本上也是对于 /boot/uEnv.txt 文件的修改。 下面介绍如何使用fire-config配置板子进入烧录模式。

  1. 执行 sudo fire-config 选择“Advanced”项。

    Embedfire STM32MP157 Board
    
    ┌──────────┤ pi Embedfire Software Configuration Tool (fire-config) ├──────────┐
    │                                                                              │
    │         1 Change User Password Change password for the user pi               │
    │         2 Network              Configure network settings                    │
    │         3 Boot                 Configure options for start-up                │
    │         4 Localisation         Set up language and regional settings         │
    │         5 Bus                  Configure connections of bus                  │
    │         6 Device               Configure peripheral device                   │
    │         7 Advanced             Configure advanced settings                   │
    │         8 Shell                Config serial-tty and ssh                     │
    │         9 Help & Update        Fire-config Help and Update                   │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                     <Select>                     <Finish>                    │
    │                                                                              │
    └──────────────────────────────────────────────────────────────────────────────┘
    
  2. 在“Advanced”,能够选择从sd烧录镜像到emmc或nand中,也可以选择从emmc或nand烧录系统到sd卡中, 从sd烧录镜像到emmc或nand可选择 Flash Burning Once 单次烧录, 也可选择 Flash Burning Continued 持续烧录模式方便量产使用, 此处我们选择 Flash Burning Once

    ┌──────────────┤ npi Software Configuration Tool (fire-config) ├───────────────┐
    │                                                                              │
    │  A1 Expand Filesystem       Ensures that all of the SD card storage is avai  │
    │  A2 Flash Burning Continued Enable/Disable flash firmware to NAND/Emmc from  │
    │  A3 Flash Burning Once      Enable/Disable flash firmware to NAND/Emmc from  │
    │  A4 SD Burning              Flash system firmware to SD-card from NAND/Emmc  │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                     <Select>                     <Back>                      │
    │                                                                              │
    └──────────────────────────────────────────────────────────────────────────────┘
    
  3. 系统提示: “Would you like the flasher to be enabled”,选择<Enable>。

    ┌──────────────────────────────────────────────────────────┐
    │                                                          │
    │ Would you like the flasher to be enabled?                │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │               <Enable>               <Disable>           │
    │                                                          │
    └──────────────────────────────────────────────────────────┘
    
  4. 系统提示:“The flasher is enabled”,选择<Ok>.

    ┌──────────────────────────────────────────────────────────┐
    │                                                          │
    │ The flasher is enabled                                   │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                          <Ok>                            │
    │                                                          │
    └──────────────────────────────────────────────────────────┘
    
  5. 返回在初始界面,选择<Finish>项。系统提示是否重新启动系统,选择Yes, 重启后的系统将自动将SD卡上的镜像烧录到emmc/nand上,烧录过程中串口会不断打印烧录信息,

  6. 刷机完成后,将重新进入终端,且开发板的LED灯将持续闪烁, 将拨码开关设置为emmc或nand模式,重新上电启动系统即可。

从emmc/nand备份镜像到SD卡

除了能够将SD卡的中镜像烧录到emmc/nand之外,也能够将emmc/nand中的镜像烧录到 SD卡,烧录到SD卡的镜像为完整的emmc/nand镜像,能够直接启动,也能当为量产工具为 其他板子烧录系统。 从emmc/nand备份镜像到SD卡和上一小节的内容大同小异,步骤如下

  1. 本小节内容介绍如何将emmc/nand上的系统备份到空白的sd卡上, 首先需要准备一张 空白的sd卡 ,将sd卡插入到板子上并重启开发板。 使用 lsblk 可看到用于演示的sd卡大小为14.9g的SD卡。

    root@npi:~# lsblk
    NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    mmcblk1      179:0    0  7.3G  0 disk
    ├─mmcblk1p1  179:1    0   40M  0 part /boot
    └─mmcblk1p2  179:2    0  7.2G  0 part /
    mmcblk1boot0 179:8    0    4M  1 disk
    mmcblk1boot1 179:16   0    4M  1 disk
    mmcblk0      179:24   0 14.9G  0 disk
    └─mmcblk0p1  179:25   0 14.9G  0 part
    
  2. 使用 sudo fire-config 命令进入fire-config的配置界面。 选择 Advanced 进入烧录相关配置菜单。

    Embedfire i.MX6ULL Board
    
    ┌──────────┤ pi Embedfire Software Configuration Tool (fire-config) ├──────────┐
    │                                                                              │
    │         1 Change User Password Change password for the user pi               │
    │         2 Network              Configure network settings                    │
    │         3 Boot                 Configure options for start-up                │
    │         4 Localisation         Set up language and regional settings         │
    │         5 Bus                  Configure connections of bus                  │
    │         6 Device               Configure peripheral device                   │
    │         7 Advanced             Configure advanced settings                   │
    │         8 Shell                Config serial-tty and ssh                     │
    │         9 Help & Update        Fire-config Help and Update                   │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                     <Select>                     <Finish>                    │
    │                                                                              │
    └──────────────────────────────────────────────────────────────────────────────┘
    

    选择 SD Burning 将emmc/nand镜像备份到SD卡中。

    ┌──────────────┤ npi Software Configuration Tool (fire-config) ├───────────────┐
    │                                                                              │
    │  A1 Expand Filesystem       Ensures that all of the SD card storage is avai  │
    │  A2 Flash Burning Continued Enable/Disable flash firmware to NAND/Emmc from  │
    │  A3 Flash Burning Once      Enable/Disable flash firmware to NAND/Emmc from  │
    │  A4 SD Burning              Flash system firmware to SD-card from NAND/Emmc  │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                     <Select>                     <Back>                      │
    │                                                                              │
    └──────────────────────────────────────────────────────────────────────────────┘
    

    选择Yes即开始将当前的镜像备份到SD卡,在备份过程中板子不需要重启。

    ┌──────────────────────────────────────────────────────────┐
    │                                                          │
    │ Would you want to burn system firmware to SD-card from   │
    │ NAND/Emmc?                                               │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │               <yes>                  <no>                │
    │                                                          │
    └──────────────────────────────────────────────────────────┘
    
  3. 在备份过程中将打印备份相关的信息。

    fire-config刷机

    备份完成后提示以下信息。

    ┌──────────────────────────────────────────────────────────┐
    │                                                          │
    │ The SD-card system firmware is ready                     │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                                                          │
    │                          <Ok>                            │
    │                                                          │
    └──────────────────────────────────────────────────────────┘
    
  4. 将开发板的拨码开关设置为SD卡启动,重新开发板即可。

提示

备份使用的SD卡最好是空白的SD卡,并需要大于所备份的emmc/nand镜像大小。