Kconfig文件 config DRM_EDID是什么意思
时间: 2023-10-21 09:33:39 浏览: 146
Kconfig文件是Linux内核源代码中的一个配置文件,用于管理内核中的各种配置选项。config DRM_EDID是一个内核配置选项,它用于控制内核是否编译支持DRM (Direct Rendering Manager) EDID (Extended Display Identification Data)的驱动程序。EDID是一种显示器使用的数据格式,它可以向计算机发送关于显示器的详细信息,例如分辨率、刷新率、制造商、型号等。如果开启了这个选项,内核将编译支持DRM EDID的驱动程序,可以更好地识别和管理显示器。
相关问题
已经在defcong里配置了编译drm_of.c,并且drm_of.c里已经配置了EXPORT_SYMBOL_GPL(drm_of_lvds_get_dual_link_pixel_order)但是vmlinux.symvers并没更新drm_of_lvds_get_dual_link_pixel_order
如果你已经在drm_of.c中正确地使用了EXPORT_SYMBOL_GPL()宏来导出drm_of_lvds_get_dual_link_pixel_order函数,并且在Kconfig文件中启用了相关的选项,但是vmlinux.symvers文件仍然没有包含该符号,可能是因为编译内核时没有正确地生成symvers文件。
你可以尝试以下方法:
1. 确认你在编译内核时使用了CONFIG_MODVERSIONS选项。如果没有启用该选项,编译器将不会生成vmlinux.symvers文件。
2. 确认你的内核配置文件中启用了CONFIG_MODVERSIONS选项。你可以通过执行命令"grep CONFIG_MODVERSIONS .config"来检查。
3. 如果你已经确认启用了CONFIG_MODVERSIONS选项,但是vmlinux.symvers文件仍然没有包含drm_of_lvds_get_dual_link_pixel_order符号,那么可以尝试手动生成vmlinux.symvers文件。你可以执行以下命令:
```
make -C /lib/modules/$(uname -r)/build/ modules_prepare
make -C /lib/modules/$(uname -r)/build/ M=/path/to/your/kernel/module/directory/ modules
```
这将在你的内核模块目录中生成Module.symvers文件,它包含了所有导出的符号及其版本信息。你可以将该文件重命名为vmlinux.symvers并将其复制到你的内核源代码目录中。
请注意,如果你的内核版本发生了变化,你需要重新执行上述命令以更新vmlinux.symvers文件。
详解这句代码:KCONFIG_CONFIG ?= .config
这句代码是 Makefile 文件中的一行,它定义了一个变量 KCONFIG_CONFIG。这个变量的值被定义为 .config,其中 .config 是一个文件名(通常是一个隐藏文件),它存储着 Linux 内核的配置选项。在编译 Linux 内核时,Make 工具会使用这个变量来定位这个文件的路径。
KCONFIG_CONFIG?= 的含义是,如果 KCONFIG_CONFIG 这个变量未定义,则将其赋值为 .config。?= 符号表示的是只有在变量未定义时才进行赋值,如果变量已经定义了,则不会重新赋值。这样做可以确保在 Makefile 文件中使用该变量时,该变量确实已经被定义了。
阅读全文