.config文件是内核当前使用的默认配置,对于内核的编译系统来说, menuconfig看到的菜单是各个子目录下Kconfig文件和.config文件的解析结果,其中很多菜单选项都是依赖于特定的配置的,如果这些依赖的配置没有在.config中定义,那对应的菜单项是不会被解析的,也就不会被显示。
那yaffs来说, fs/yaffs2/Kconfig中应该有
复制代码- config YAFFS_FS
- tristate "YAFFS2 file system support"
- default n
- depends on MTD_BLOCK
|
这样的描述,也就是说,要菜单里出现“YAFFS2 file system support”, .config文件里就必须有CONFIG_MTD_BLOCK=y或者CONFIG_MTD_BLOCK=m这样的配置。
其实menuconfig的过程本身就是通过用户的选择生成.config的过程, 因此,配置内核最简单也最安全的办法,就是复制一个和你的目标开发板最接近的内核配置(一般为arch/arm/configs/XXXX_defconfig, 其中XXXX为硬件平台名称)为当前配置,然后根据需要手动修改一些特定的部分,比如
$cp arch/arm/configs/s3c2410_defconfig .config
$make ARCH=arm oldconfig (使.config生效)
$make ARCH=arm menuconfig
(手动修改...)