gpt4 book ai didi

linux - 为 u-boot 创建 boot.scr

转载 作者:太空狗 更新时间:2023-10-29 12:14:51 24 4
gpt4 key购买 nike

我使用 Yocto 为 Freescale i.mx6 sabresd 生成图像。启动时,要激活 hdmi,我必须通过编辑 bootargs 来修改 u-boot。我使用以下命令:

setenv mmcargs 'setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk2p2 rootwait rw video=mxcfb0:dev=hdmi, 1920x1080M@60, if=RGB24'

我可以使用 saveenv 不在每次启动时都输入它,但我想自动化它以使部署更容易。所以我做了一个boot.scr。这是 boot.txt :

setenv mmcargs 'setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk2p2 rootwait rw video=mxcfb0:dev=hdmi, 1920x1080M@60, if=RGB24'
boot

我使用 mkimage -A arm -T script -O linux -d boot.txt boot.scr 创建 boot.scr。但是,在启动时,它会循环(boot 使 uboot 重新加载配置,它读取 boot 以便重新开始)。没有 boot... 没有引导。我尝试了很多可能性:boot 0x120000000bootmbootz,有很多选项,但没有任何效果。

最佳答案

最有可能的是,您的引导失败是因为您从未加载可以从中引导的内核。

在大多数情况下,如果 bootcmd 加载一个 boot.scr,那么由您的 boot.scr 脚本来加载内核(以及一个设备树,假设您使用的是最新的 iMX6 内核).然后您的脚本可能会使用此内核启动或允许 bootcmd 使用加载的内核继续其启动顺序。加载命令看起来像:

loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}

启动命令应该类似于:

run loaduimage; run loadfdt; bootm ${loadaddr} - ${fdt_addr}

您可能已经定义了一个 mmcboot 命令,它已经处理了这些。

我会从您的脚本中删除“boot”行,而是加载内核和设备树,然后运行 ​​bootm(或 mmcboot)——基本上尝试在设置 mmcarg 后将以上三行添加到您的脚本中——您需要确保正确设置所有引用的变量(即 mmcdev、mmpart 等)。

关于linux - 为 u-boot 创建 boot.scr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com