【发布时间】:2018-03-24 02:45:09
【问题描述】:
我正在构建一个使用 meta-intel 层的自定义图像(我的目标是 Intel 主板,例如 Minnowboard Turbot),并且我想调整启动选项。
第一个问题
据我了解,meta-intel 使用 systemd-boot(通过 rmc-boot)作为 EFI_PROVIDER。
所以我应该能够通过设置覆盖特定的BOOT_TIMEOUT 参数:
SYSTEMD_BOOT_TIMEOUT := "0"
在我的自定义图像中,据我在this file 中所见
不幸的是,这不起作用(启动超时仍然是 4 秒)。怎么会?
第二个问题
我还想将选项附加到boot.conf 文件(在/boot/loader/entries 中,由/boot/loader/loader.conf 加载),例如quiet 或vt.global_cursor_default=0。
我在Intel machine conf 中看到有一个APPEND 配置,但是在我的自定义映像中覆盖它或附加到它不起作用(它仍然没有写入 boot.conf 文件中 em>) :
APPEND += "quiet vt.global_cursor_default=0"
我检查了配置是否被正确读取,是这样的:
$ bitbake my-custom-image -e | grep ^APPEND= -A1 -B1
# " quiet rootwait console=ttyS0,115200 console=tty0${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro", "", d)}"
APPEND=" quiet vt.global_cursor_default=0 rootwait console=ttyS0,115200 console=tty0"
#
但是无论我做什么,命令行在构建的图像上都不会改变。
我想念什么?应该有一个相对简单的方法来实现我的猜测,但到目前为止我还没有设法做到。
非常感谢!
【问题讨论】:
-
您是否尝试清理此任务的(配方)并在没有缓存的情况下重建?
-
我总是使用
bitbake -c clean my-custom-image,但你的意思是我需要像cleanall这样的强力清洁剂吗? -
好吧,看起来您的更改没有正确交换,我很好奇您是否正在清理 WS - 我认为 cleanall 任务在这里没有帮助(使用 tmp/work/
/ /temp/log.task_order 文件您可以检查任务是否从缓存中获取)。您是否更改了原始文件,或者您是否在 conf/local.conf 等全局文件中应用了此配置? -
我尝试在
conf.local中添加 APPEND,并在我自己层 (conf/distro/my-distro.conf) 的自定义发行版中添加,但无济于事 -
我在这里也使用
meta-intel(我从别人那里接手的相当新的项目,我还不了解所有细节。)它启动了,到目前为止我不需要调整开机。据我了解,我根本不使用引导管理器,而是引导 EFI 存根,它是 linux 内核的一部分。我仍然可以在我的图像环境中看到EFI_PROVIDER="rmc-boot"。systemd-boot和rmc-*没有在这里构建,尽管它们是添加层的一部分。你确定你真的在使用引导管理器吗?