使用 extlinux.conf 通过 u-boot 应用 fdt 覆盖

Applying fdt overlay with u-boot using extlinux.conf

我想用我的板启动一个发行版,其中包管理器控制 extlinux.conf 并为我的板发送 dtb 文件,但我还有一个扩展板,所以我需要一个覆盖层来启用一些功能。

以前我只会写一个 boot.scr 文件来应用覆盖然后引导内核。但是内核和 initramfs 的文件名在版本之间会发生变化,因此管理 boot.scr 会很乏味。

幸运的是,它还附带了指向新版本的 extlinux.conf,但我很难找到一种方法来以这种方式应用 fdt 覆盖。

这可能吗?

U-Boot 读取的 extlinux.conf 文件中使用的 Syslinux 语法不包含应用 fdt 覆盖的关键字,所以你在这里运气不好。

可以使用 localboot 关键字让 U-Boot 执行自定义命令,而不是加载由 kernel 关键字指定的内核映像。如果标签包含 localboot 关键字后跟一个非负数,例如:

label mycustomboot localboot 0

U-Boot 在启动项时执行包含在localcmd 环境变量中的命令。所以理论上你可以在你的 localcmd 环境变量中放入你需要在引导时执行的一系列命令(加载内核,fdt 和覆盖,应用覆盖,并引导内核)。但我想这首先会破坏使用 extlinux.conf 的目的,并且与您使用 boot.scr 文件的方式没有太大区别...