关于make menuconfig中有些内核选项不显示的问题

  • 问题:比如我要移植yaffs到内核中,fs/yaffs2/Kconfig是正常的,fs中的Kconfig也包含了source "fs/yaffs2/Kconfig",但在make xconfig/menuconfig时就是不显示有Yaffs这个选项,这是为何?

  • 解答:.config文件是内核当前使用的默认配置,对于内核的编译系统来说, menuconfig看到的菜单是各个子目录下Kconfig文件和.config文件的解析结果,其中很多菜单选项都是依赖于特定的配置的,如果这些依赖的配置没有在.config中定义,那对应的菜单项是不会被解析的,也就不会被显示

  • 对于yaffs来说, fs/yaffs2/Kconfig中应该有

    1. config YAFFS_FS

    2.         tristate "YAFFS2 file system support"

    3.         default n

    4.         depends on MTD_BLOCK

    这样的描述,也就是说,要菜单里出现“YAFFS2 file system support”, .config文件里就必须有CONFIG_MTD_BLOCK=y或者CONFIG_MTD_BLOCK=m这样的配置,才会显示yaffs的选项,因为它依赖于MTD_BLOCK。

  • 如图所示,先配置好MTD_BLOCK:


    再才可以配置YAFFS2:


  • 后记:以后再遇到这样的情况,就可以从目标模块的Kconfig中的依赖入手,把相应的依赖先配置好就OK了。


你可能感兴趣的:(Linux系统)