概述
文章目录
- 前言
- 制作启动卡
- 用法说明:
- 更新Uboot
- 更新设备树
- 更新内核
- 更新文件系统
SD卡启动卡,更新固件比较简单,我们可以直接在 ubuntu 上操作。 首先确保你已经制作了一张SD卡系统启动卡。
前言
作为一张SD卡启动卡,它在物理上被分为了三个部分:
- RAW数据区:无法被Ubuntu识别并挂载的区域,存放uboot.imx和启动参数。
- boot分区:可以被Ubuntu识别的FAT32文件系统格式区域,存放设备树文件、zImage内核压缩文件。
- rootfs分区:可以被Ubuntu识别的EXT4文件系统格式区域,存放根文件系统
制作启动卡
脚本固化系统一般可用于批量固化与升级系统。不像 mfgtool 上位机那样还需要 PC 机和USB 数据线,用户可以自行修改好固化系统脚本,进行自动化固化测试,那么可以无需专业人员参与,即可批量固化系统。
同样地,拷贝:mfgtool->Profiles->Linux->OS Firmware->files
整个文件夹到 Ubuntu 虚拟机:
使用 chmod 指令修改固化 SD 卡系统脚本 imx6mksdboot.sh 的权限将 SD 卡用读卡器插到 Ubuntu 虚拟机,等待 Ubuntu 主机识别后,如下图。(因作者已经制作过 SD 卡,所以 Ubuntu 主机会识别出两个分区,如果您的 SD 卡是空白的,只有一个分区时就识别出一个分区,就会看到只有一个 USB 图标(可能图案不一样))。
输入如下指令查看 SD 卡挂载节点:
sudo fdisk -l
liefyuan@ubuntu:~/linux/sd$ sudo fdisk -l
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x02202ea5
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sda1 * 2048 163676159 163674112 78G 83 Linux
/dev/sda2 163676160 167772159 4096000 2G 5 扩展
/dev/sda5 163678208 167772159 4093952 2G 82 Linux 交换 / Solaris
Disk /dev/sdc: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaa05766a
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sdc1 * 2048 133119 131072 64M c W95 FAT32 (LBA)
/dev/sdc2 133120 31116287 30983168 14.8G 83 Linux
可以看到,我这张已经已经制作过启动卡的挂载节点是:/dev/sdc
并且可以识别出两个分区:
- /dev/sdc1:FAT32格式,大小为64M,开始地址是2048结束地址是133119,也就是说开始地址0~2047的内容都是没有分区的专用来存放uboot和启动参数的
- /dev/sdc2:EXT4格式,大小为14.8G,开始地址是133120,是紧接着前面那个分区的。
用法说明:
用法: imx6mksdboot.sh [选项] <(必选)-device> <(可选)-flash> <(可选)-ddrsize>
- device:指明设备节点(SD 卡挂载的节点如/dev/sdx),执行脚本时必需要加这个参数
- flash:指明核心板上的媒体存储介质,可选为(emmc|nand)
- ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256)MB
比如现在用户是核心板的 ddr 容量大小是 512MB,媒体存储介质是 eMMC。SD 卡挂载节点为/dev/sdc。那么固化 SD 卡的指令如下,执行指令后脚本会有中文再次询问 SD 卡所挂载的节点是否对应,将会清空 SD 卡上的所有数据,请注意备份重要的数据。按 Enter 键确认后继续,固
化 SD 卡需要大约需要几分钟时间,这里根据个人电脑不同和所用 SD 卡不同,可能花费的时间差异比较大。
sudo ./imx6mksdboot.sh -device /dev/sdb -flash emmc -ddrsize 512
注意:空白的SD卡也可以。
更新Uboot
在 ubuntu 上插上连接 SD 卡,使用 fdisk 指令查看 SD 卡挂载的节点。如下图,可以看到 SD 卡所挂载的节点为/dev/sdc。
sudo fdisk -l
sudo dd if=u-boot.imx of=/dev/sdc bs=1024 seek=1 conv=fsync
至此更新 uboot 成功,需要注意的是:如果你的 SD 卡曾经保存过其他 uboot 环境变量,你需要在 SD 卡时恢复一次环境变量再保存,才能使用新的环境变量启动!
更新设备树
就直接拷贝对应的设备树dtb到SD卡的boot分区即可。
更新内核
就直接拷贝对应的zImage到SD卡的boot分区即可。
更新文件系统
最后
以上就是忧心红酒为你收集整理的嵌入式Linux--i.mx6ull--制作SD卡启动卡常用操作前言制作启动卡更新Uboot更新设备树更新内核更新文件系统的全部内容,希望文章能够帮你解决嵌入式Linux--i.mx6ull--制作SD卡启动卡常用操作前言制作启动卡更新Uboot更新设备树更新内核更新文件系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复