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

一、系统镜像和固件

1.1 镜像文件格式

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

  • ISO
    这种格式的镜像扩展名为.ISO,是以ISO-9660格式保存的光盘镜像文件,是最常见的光盘镜像格式。安装Ubuntu系统时,我们使用到了Ubuntu提供的.iso后缀的系统镜像文件。
  • IMG
    主要用于创建磁盘的镜像文件(disk image), 它可以用来打包整个磁盘或光盘的内容。img是iso文件格式的超集,它向后兼容iso文件格式。

嵌入式单板机一般没有光驱,而它们通常支持运行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

  • imx6ull-lubancat-carp-console-armhf-2022-02-10.img.xz: Debian的纯净版固件,没有带桌面环境和野火的QT App。
  • imx6ull-lubancat-carp-qt-armhf-2022-02-10.img.xz: 具有QT App功能的Debian固件,系统启动后会进入QT App的界面。

野火提供的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固件进行说明:

  • bootloader固件
    此处使用uboot,分别适配sd卡、NAND flash以及eMMC存储器:

  • 设备树固件
    适配eMMC存储器,由于某些设备引脚共用,只能同时使用其中一个,需要不同的设备树进行适配:


    适配NAND存储器,跟eMMC的类似:

  • Linux内核固件
    适配5寸屏、4.3寸显示屏:

  • 根文件系统固件
    不同用途的根文件系统,由于没法通过apt安装软件,所以针对不同的应用提供了多种不同的文件系统示例:


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

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

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

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

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

  • 使用方便

    • 由于debian镜像与自定义镜像的根文件系统不同,导致两种镜像的使用感受差异非常大。 使用debian镜像时,可以保留我们在x86 PC上使用Debian、Ubuntu的习惯,通过apt包管理工具直接安装各种各样的软件, 例如python、java、php等运行环境,各种使用配置也跟PC上的类似,这会给我们的开发和学习带来极大的便利。

    • 而使用yocto(buildroot)镜像时,如果我们想给系统安装某些软件,就需要重新使用yocto(buildroot)工具构建文件系统,再烧录到开发板上,非常麻烦。 特别是对Linux系统不熟悉的用户,使用它来学习效率会非常非常低。

  • 占用大小

    • 使用yocto(buildroot)镜像的主要优势是:如果有需要,它可以把镜像做得非常小,我们制作的debian镜像最小的约为340MB,如果再裁剪的话,可能很多debian系统的功能都会没用了,没有意义。 而使用yocto(buildroot)工具可以制作出50MB以内的镜像。当然了,如果想要用yocto(buildroot)工具做出debian系统的效果,它并不会比debian镜像小。 所以通常在产品功能固定、应用程序本身依赖小、flash容量要求苛刻且有非常熟悉系统的工程师时,才会采用这种方案定制自己的镜像。

    • 简单来说,debian镜像是整个开源社区的力量制作出来的,而且无论是在x86、arm等各种平台上使用它都非常多,基于debian还衍生出各种各样的Linux发行版。

强烈建议先学习好如何构建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
  • console版本: Debian的纯净版固件,没有带桌面环境和野火的QT App。(解压后约340M)
  • carp-qt版本: 具有QT App功能的Debian固件,系统启动后会进入QT App的界面。
  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卡

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容