4. Uboot的烧录¶
4.1. 将Uboot烧录到内部存储¶
使用NXP的Mfgtool工具可以烧写Uboot到内部存储EMMC、NAND、SD。
4.1.1. 工具下载¶
首先下载mfgtool工具,访问资料网盘/4-其他Linux镜像/buildroot镜像/xxx日期/usb烧录文件/mfgtools-release_xxx.zip
然后解压mfgtools-release_xxx.zip得到mfgtools-release。
4.1.2. 替换uboot文件¶
将编译出来的uboot-dtb.imx更名:
eMMC/SD 版本的重命名为 u-boot-mmc.imx
nand 版本的重命名为 u-boot-nand.imx
然后进入到mfgtools-release目录中的 mfgtools-release\Profiles\Linux\OS Firmware\release 目录将对应名字的文件替换即可。

4.1.3. 烧录¶
4.1.3.1. 烧录配置¶
如果是eMMC版本,双击打开mfgtools-release目录中的 Mfgtool2-imx6ull-eMMC.vbs
如果是nand版本,双击打开mfgtools-release目录中的 Mfgtool2-imx6ull-nand.vbs
如果是SD版本,双击打开mfgtools-release目录中的 Mfgtool2-imx6ull-SDCard.vbs

4.1.3.2. 设置为USB烧录模式¶
将USB OTG与电脑连接


使用USB更新时不能插入SD卡,将拨码开关设置为USB启动。 配置拨码开关:
eMMC版本:将1/4/5/7打到ON档,其他拨码开关打到OFF档。
nand版本:将1/3/6打到ON档,其他拨码开关打到OFF档。
SD版本:先不要插入SD卡,将1/5/8打到ON档,其他拨码开关打到OFF档,识别设备后再插入SD卡。
提示
也可以选择通过按键方式进入烧录模式,按键法可以不用拨码,拨码状态在之前的 EMMC 或者 NAND 或者 SD 都可以。
上电
按下MODE按键
按下复位(RESET)按键
松开复位(RESET)按键
松开MODE按键
此时软件就可以识别到USB了,然后点击Start开始烧录,烧录完成后重启即可。

4.2. 将Uboot烧写到SD卡¶
4.2.1. 使用dd命令将uboot烧写到SD中(常用于做uboot测试)¶
将u-boot-dtb.imx拷贝到虚拟机内。
编译emmc版本和nand版本默认输出都是u-boot-dtb.imx,无需更改。
重要
需要确定挂载到虚拟机的的SD卡在/dev/sd中的哪个,一般为sdb,如果烧错设备可能导致虚拟机损坏,无法启动。
将以上的编译得到的mmc版本uboot烧录到SD卡中。uboot烧录sd卡会破坏原有数据,请做好sd卡数据备份后再执行以下步骤。
将sd卡通过读卡器连接到虚拟机前,使用lsblk命令查看当前磁盘设备。
1 2 3 4 5 6 7 8 9 10 11 12
embedfire@embedfire-VirtualBox:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 91M 1 loop /snap/core/6350 loop1 7:1 0 2.3M 1 loop /snap/gnome-calculator/260 loop2 7:2 0 13M 1 loop /snap/gnome-characters/139 loop3 7:3 0 140.7M 1 loop /snap/gnome-3-26-1604/74 loop4 7:4 0 3.7M 1 loop /snap/gnome-system-monitor/57 loop5 7:5 0 34.6M 1 loop /snap/gtk-common-themes/818 loop6 7:6 0 14.5M 1 loop /snap/gnome-logs/45 sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part / sr0 11:0 1 58.3M 0 rom /media/embedfire/VBox_GAs_6.1.18
将sd卡通过读卡器连接到电脑上,并选择连接到虚拟机上。
再次使用lsblk命令插件磁盘设备,如下所示
1 2 3 4 5 6 7 8 9 10 11 12 13
embedfire@embedfire-VirtualBox:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 91M 1 loop /snap/core/6350 loop1 7:1 0 2.3M 1 loop /snap/gnome-calculator/260 loop2 7:2 0 13M 1 loop /snap/gnome-characters/139 loop3 7:3 0 140.7M 1 loop /snap/gnome-3-26-1604/74 loop4 7:4 0 3.7M 1 loop /snap/gnome-system-monitor/57 loop5 7:5 0 34.6M 1 loop /snap/gtk-common-themes/818 loop6 7:6 0 14.5M 1 loop /snap/gnome-logs/45 sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part / sdb 8:16 1 14.9G 0 disk sr0 11:0 1 58.3M 0 rom /media/embedfire/VBox_GAs_6.1.18
可看到新增加了sdb设备,此处请务必检查好sd卡所对应的磁盘设备,以免破坏其他磁盘的数据!
执行以下烧录命令,将u-boot-dtb.imx烧写到/dev/sdb中
示例命令¶1
sudo dd iflag=dsync oflag=dsync if=u-boot-dtb.imx of=/dev/sdb seek=2
烧录成功提示如下信息。
1 2 3 4 5 6
embedfire@embedfire-VirtualBox:~$ sudo dd iflag=dsync oflag=dsync if=u-boot-dtb.imx of=/dev/sdb seek=2 [sudo] embedfire 的密码: 记录了782+0 的读入 记录了782+0 的写出 400384 bytes (400 kB, 391 KiB) copied, 15.0757 s, 26.6 kB/s embedfire@embedfire-VirtualBox:~$
将sd卡插到开发板上将拨码开关设置sd卡启动打开电源即可启动uboot。