Embedded linux 为什么在运行bitbake-c savedefconfig virtual/kernel之后,在生成的defconfig中没有设置我的内核配置选项?

Embedded linux 为什么在运行bitbake-c savedefconfig virtual/kernel之后,在生成的defconfig中没有设置我的内核配置选项?,embedded-linux,splash-screen,yocto,bitbake,Embedded Linux,Splash Screen,Yocto,Bitbake,我对内核源代码做了一些调整,以便可以在内核启动屏幕上使用自定义徽标。特别是,我所做的更改允许在运行以下bitbake命令时选择自定义徽标作为内核配置选项: bitbake -c menuconfig virtual/kernel 然后导航到设备驱动程序>图形支持->启动徽标。我将启动徽标设置为自定义徽标,保存更改并退出菜单配置。此时,生成的.config文件位于tmp/work/imx6ul_var_dart-fslc-linux-gnueabi/linux-variscite/4.9.88-

我对内核源代码做了一些调整,以便可以在内核启动屏幕上使用自定义徽标。特别是,我所做的更改允许在运行以下bitbake命令时选择自定义徽标作为内核配置选项:

bitbake -c menuconfig virtual/kernel
然后导航到设备驱动程序>图形支持->启动徽标。我将启动徽标设置为自定义徽标,保存更改并退出菜单配置。此时,生成的.config文件位于tmp/work/imx6ul_var_dart-fslc-linux-gnueabi/linux-variscite/4.9.88-r0/build/.config,我确认我的徽标已在.config文件的以下行中配置为引导徽标:

CONFIG_LOGO_CUSTOM_CLUT224=y
到目前为止一切都很好。现在,我想以defconfig格式保存.config文件,以便覆盖源代码树中的默认配置,并用生成的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
为什么我在defconfig文件中没有看到这个配置选项,即使它是在生成它的.config文件中设置的

编辑(添加额外信息):

我将描述对内核源代码所做的精确更改。首先,我在drivers/video/logo中添加了logo(logo\u custom\u clut224.ppm)。然后,我修改了drivers/video/logo/Kconfig,在
if logo
和相应的
endif
中包含以下条目:

config LOGO_CUSTOM_CLUT224
    bool "224-color Custom logo"
    default y
然后,我将以下逻辑添加到
if(depth>=8)
块中的drivers/video/logo/logo.c中:

#ifdef CONFIG_LOGO_CUSTOM_CLUT224
    logo = &logo_custom_clut224;
#endif
然后,我添加了以下语句以包括/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。

您是否尝试过此操作,但飞溅屏幕没有出现,或者您只是想知道为什么配置项没有显示在
defconfig
savedefconfig
将跳过与原始默认值匹配的、等于“y”的非可选布尔选项
defconfig
应该是一个最小的
.config
。我已经尝试过了,但是splashscreen没有出现。但是,我主要想知道为什么该项没有显示在defconfig中。编辑:我怀疑splashscreen没有出现,因为它没有显示在defconfig中。可能不是这样。正如我所说,它没有显示在
defconfig
中,因为
.config
中的值与
Kconfig
中的默认值匹配。您应该尝试将其更改为
n
并生成
defconfig
,以便在
defconfig
中实际查看它。有关更多详细信息,请参阅。此外,Yocto项目手册还讨论了
配置内核
,并讨论了
.config
defconfig
。另一个问题,您是否禁用了要替换的徽标?您是否尝试过此操作,但飞溅屏幕没有显示,或者您只是想知道为什么配置项没有显示在
defconfig
savedefconfig
将跳过与原始默认值匹配的、等于“y”的非可选布尔选项
defconfig
应该是一个最小的
.config
。我已经尝试过了,但是splashscreen没有出现。但是,我主要想知道为什么该项没有显示在defconfig中。编辑:我怀疑splashscreen没有出现,因为它没有显示在defconfig中。可能不是这样。正如我所说,它没有显示在
defconfig
中,因为
.config
中的值与
Kconfig
中的默认值匹配。您应该尝试将其更改为
n
并生成
defconfig
,以便在
defconfig
中实际查看它。有关更多详细信息,请参阅。此外,Yocto项目手册还讨论了
配置内核
,并讨论了
.config
defconfig
。另一个问题,您是否禁用了要替换的徽标?