我对内核源代码进行了一些调整,以便可以在内核启动屏幕上使用自定义徽标。特别是,当我运行以下bitbake命令时,所做的更改允许选择将自定义徽标作为内核配置选项:
bitbake -c menuconfig virtual/kernel
,然后导航到“设备驱动程序”>“图形支持”->“启动”徽标。我将Bootup徽标设置为自定义徽标,保存更改并退出menuconfig。此时,生成的.config文件位于tmp / work / imx6ul_var_dart-fslc-linux-gnueabi / linux-variscite / 4.9.88-r0 / build / .config中,并且我确认我的徽标已配置为引导徽标。在.config文件的以下行中:
CONFIG_LOGO_CUSTOM_CLUT224=y
到目前为止,一切都很好。现在,我想将.config文件保存为defconfig格式,以便覆盖源树中的默认配置,并将其替换为生成的defconfig文件。为此,我运行以下命令:
bitbake -c savedefconfig virtual/kernel
此时,生成的defconfig文件位于tmp / work / imx6ul_var_dart-fslc-linux-gnueabi / linux-variscite / 4.9.88-r0 / build / defconfig。但是,当我搜索生成的defconfig文件时...找不到以下行:
CONFIG_LOGO_CUSTOM_CLUT224=y
为什么即使在config.config文件中设置了defconfig文件,但在configconfig文件中却看不到该配置选项,所以为什么?
编辑(添加更多信息):
我将描述对内核源代码所做的精确更改。首先,我在驱动程序/视频/徽标中添加了徽标(logo_custom_clut224.ppm)。然后,我修改了driver / video / logo / Kconfig,在if LOGO
和相应的endif
中包括以下条目:
config LOGO_CUSTOM_CLUT224
bool "224-color Custom logo"
default y
然后,我在if (depth >= 8)
块中的driver / video / logo / logo.c中添加了以下逻辑:
#ifdef CONFIG_LOGO_CUSTOM_CLUT224
logo = &logo_custom_clut224;
#endif
然后我将以下语句添加到include / linux / linux_logo.h:
extern const struct linux_logo logo_custom_clut224;
最后,我修改了drivers / video / logo / Makefile,以包含自定义徽标的条目:
obj-$(CONFIG_LOGO_CUSTOM_CLUT224 += logo_custom_clut224.o
我还要指出,我要使用的徽标是800x480。