IMX6ULL学习笔记(2)——通过SD卡烧录镜像

2022-09-01  本文已影响0人  Leung_ManWah

一、系统镜像和固件

1.1 镜像文件格式

镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后,又恢复成许多文件,RAID 1和RAID 10使用的就是镜像。常见的镜像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD。

嵌入式单板机一般没有光驱,而它们通常支持运行SD卡里的操作系统,所以嵌入式的系统镜像通常使用img文件的形式发布。 人们通常在PC上使用软件通过读卡器把img镜像文件烧录至SD卡,然后把SD接入到嵌入式单板机上运行。部分工具生成的镜像文件后缀名不一定是img,例如使用yocto生成的系统镜像,通常是以“.sdcard”为后缀的。

1.2 Debian镜像

基于debian社区提供的构建工具制作的debian 10 buster稳定发行版。

野火提供适用于i.MX6开发板的debian镜像可在如下链接下载:

https://pan.baidu.com/s/1pqVHVIdY97VApz-rVVa8pQ 提取码:uge1

野火提供的debian镜像特点:

  • 经过整合,SD、NAND和eMMC存储器使用同一个uboot固件和内核固件。
  • 使用插件设备树和fire-config工具,能在系统运行时调整设备树,适配不同的硬件使用场景。
  • 通过apt工具可以安装各种软件,达到调整文件系统的目的。例如使用我们提供的debian纯净版系统, 直接通过apt工具就能安装全功能的野火Qt-App,变成我们提供的Full-Qt版镜像。 用户可以根据自己的需要安装各种软件工具而不需要重新制作和烧录镜像。
  • 可以直接在运行的系统复制粘贴替换除uboot外的系统固件,使用apt-update可在线更新包括uboot在内的系统固件。
  • SD卡的镜像能直接原样刷机至NAND和eMMC存储器,量产非常方便。

1.3 Yocto镜像

基于NXP提供的yocto工具配置构建的。

yocto工具生成的文件后缀默认是sdcard,它实际上是img格式的文件,野火提供适用于i.MX6开发板的yocto镜像可在如下链接下载:

https://pan.baidu.com/s/1kJdJ6xc12Yg4rPby_MatDA 提取码:4u7d

由于该yocto生成的镜像是针对特定硬件定制化的,通用性不好。例如我们针对7寸屏幕与4.3寸屏幕就需要分别提供两种镜像文件。 而且此处提供的镜像文件只能适配SD卡,不支持烧录至NAND和eMMC存储器中。 使用yocto镜像时需要严格按照硬件功能进行烧录和定制,相对debian镜像使用起来非常麻烦。

1.4 系统固件

上面的debian镜像和yocto镜像都是img格式的文件,这些镜像都是由 bootloader设备树Linux内核根文件系统 四部分固件构成的。

以野火提供的部分yocto固件进行说明:

上面这些固件都是通过yocto工具构建出来的,单从它生成的文件类型就我们可以感受到yocto工具的强大之处, 即它能够针对不同的应用场景进行细致的定制。

不过,如果我们对这些固件都打包成img格式的镜像文件,将会有非常多的组合,不方便镜像发布和调整。 而且img格式的镜像文件目前只适用于SD卡,没法烧录至板载的NAND FLASH或eMMC存储器上。

一般来说芯片厂商会提供专用的工具来把这些独立的固件烧录到存储器,如NXP提供了mfgtools工具。 使用这样的工具可以直接用上面的固件自己组合并烧录至存储器中,省去了打包成img格式文件的麻烦。

1.5 Debian、Yocto(Buildroot)镜像的差异

我们把buildroot与yocto镜像都归类为 自定义镜像。很多系统工程师使用buildroot来构建镜像,buildroot工具构建出来的镜像与yocto镜像类似, 不过buildroot工具使用起来相对简单一点

强烈建议先学习好如何构建debian镜像,再去研究buildroot,最后再学习yocto工具。

二、通过SD卡烧录Debian镜像

2.1 安装Etcher工具


官网下载:https://www.balena.io/etcher/
百度网盘:https://pan.baidu.com/s/1mChjnYzWHs_GlLveZzQqgA?pwd=vlbo 提取码:vlbo

2.2 烧录Debian镜像至SD卡

  1. 下载野火最新发布的Debian系统镜像
    https://pan.baidu.com/s/1pqVHVIdY97VApz-rVVa8pQ 提取码:uge1
  1. 准备Micro SD卡
    推荐使用闪迪class 10的SD卡,容量2GB以上就完全足够。

  2. 使用管理员身份打开安装好的Etcher工具
    否则等会报以下错误:


  3. 选择要烧录的镜像


  4. 选择要烧录的SD卡,然后点击Flash按钮开始进行烧录


  5. 烧录过程会显示镜像的烧录进度,如下图




  6. 等到软件出现出现如下界面时,表示镜像已经成功烧录完毕


2.3 设置为SD卡启动模式

开发板插入烧录好Debian镜像的SD卡。

根据以下BOOT拨码开关启动配置表,调整拨码开关为SD卡启动方式,即2-5-8位拨到on,其他位拨到0

编号 名称 NAND FLASH eMMC SD USB
1 MODE0 0 0 0 1
2 MODE1 1 1 1 0
3 CFG1-4 1 0 0 X
4 CFG1-5 0 1 0 X
5 CFG1-6 0 1 1 X
6 CFG1-7 1 0 0 X
7 CFG2-3 0 1 0 X
8 CFG2-5 0 0 1 X

然后注意使用SD卡时开发板右下角的J2竖排针不要盖有跳帽需断开(此为WIFI模块供电,核心板只引出一路SDIO,SD卡和WIFI不能同时用)

注意:开发板第一次从SD卡启动时,系统会自动进行SD卡扩容, 以保证充分利用SD卡存储空间。扩容完毕后,系统自动重启生效。

2.4 通过fire-config刷机

注意: 刷机不建议用ssh远程登录来操作,避免开发板重启后, ssh断开连接而不能及时看到相关的刷机信息提示。

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

  2. Advanced,能够选择从sd烧写镜像到emmc或nand中,也可以选择从emmc或nand烧写系统到sd卡中, 从sd烧写镜像到emmc或nand可选择单次烧录,也可选择持续烧录模式方便量产使用,普通用户选择单次烧录即可。 此处我们选择从sd单次烧录到emmc或nand选项

  3. 系统提示: “Would you like the flasher to be enabled”,选择<Enable>

  4. 系统提示:“The flasher is enabled”,选择<Ok>

  5. 返回fire-config初始界面,使用键盘方向键,选择<Finish>

  6. 在初始界面,选择<Finish>项。 系统提示:“Some config will take effect after reboot,would you like to reboot now?” 选择<Yes>

  7. 系统自动重启,重启后的系统将自动进行emmc或者nand flash刷机。


  8. 耐心等待刷机结束,刷机过程大约持续2分30秒左右。刷机完成后,控制台会重新进入串口登录页面, 此时观察开发板的LED灯,如果LED在持续闪烁,说明刷机成功。


  9. 无论是emmc,还是nand flash,刷机成功后,调整拨码开关为相应启动方式,重新上电启动系统即可。

根据以下BOOT拨码开关启动配置表,调整拨码开关为NAND FLASH启动方式,即2-3-6位拨到on,其他位拨到0

编号 名称 NAND FLASH eMMC SD USB
1 MODE0 0 0 0 1
2 MODE1 1 1 1 0
3 CFG1-4 1 0 0 X
4 CFG1-5 0 1 0 X
5 CFG1-6 0 1 1 X
6 CFG1-7 1 0 0 X
7 CFG2-3 0 1 0 X
8 CFG2-5 0 0 1 X

注意: 如果是选择持续烧录模式,想要停止持续烧录,使用读卡器将SD卡接入到电脑,打开sd卡boot分区, 修改该分区的uEnv.txt文件,修改内容见下图:



• 由 Leung 写于 2022 年 9 月 1 日

• 参考:8. 烧录Debian镜像至SD卡

上一篇 下一篇

猜你喜欢

热点阅读