如何使用 yocto sdcard 镜像

how to use yocto sdcard image

我是 yocto 世界的新手,我按照以下说明编译 yocto。

http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html

当我从 qt 存储库编译 yocto(boot2qt) 时,我得到了 sdcard 图像。当我将 sdcard 闪存到存储卡时,我发现 /boot/ 目录内核中没有文件,而 dtb 文件存在于另一个分区 mmc1p1 中。我的u-boot配置如下

setenv bootargs 'console=ttymxc1,115200 root=/dev/mmcblk0p2 rootwait fixrtc rw'
setenv bootcmd 'mmc dev 1; ext2load mmc 1:2 10800000 /boot/zImage;ext2load mmc 1:2 0x12000000 /boot/imx6q-sabrelitesd.dtb; bootz 0x10800000 - 0x12000000'
saveenv

它没有启动,因为 /boot/ 目录中没有文件。然后我改变了我的uboot配置如下

setenv bootcmd 'mmc dev 1; ext2load mmc 1:2 10800000 /zImage;ext2load mmc 1:2 0x12000000 /imx6q-sabrelitesd.dtb; bootz 0x10800000 - 0x12000000'

而且我收到文件未找到错误,所以我已经很清楚地提到了 root=/dev/mmcblk0p2 我正在尝试从 mmc0p1

加载内核

如何解决这个问题?我是否必须对 yocto 配置做一些事情并使内核和 dtb 文件在 /boot/ 目录中可用,或者我必须更改 u-boot 配置以从不同分区加载内核并从不同分区加载 rootfs?

这里的问题是您仍在尝试从分区 2 加载内核和 dtb,您必须更新 bootcmd。据我所知,yocto partition1 将位于 FAT 文件系统中,因此您必须使用 fatload。

setenv bootcmd 'mmc dev 1; fatload mmc 1:1 10800000 /zImage; fatload mmc 1:1 0x12000000 /imx6q-sabrelitesd.dtb; bootz 0x10800000 - 0x12000000'

我相信您使用的是来自 yocto 的 .SDCARD 图片。因此,然后按照以下命令将您的图像闪存到 SD 卡。首先删除所有 sdcard 分区并卸载 sdcard。然后使用 lsblk 命令知道 /dev/sdb|c|dmmcblk0

sudo dd if=fsl-image-gui-<MACHINE_NAME>.sdcard of=/dev/sd[b|c|d|e] bs=1MB