Menuconfig的操作
总阅读次
Menuconfig的配置.
Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁剪掉
menuconfig是生成.config的一个工具
在Linux发展过程中,配置内核可以使用一下命令:
– #make config(基于文本的最为传统的配置界面,不推荐使用)
– #make menuconfig(基于文本菜单的配置界面)
在运行make menuconfig的时候它首先运行的是scripts/kconfig/mconf Kconfig
menuconfig实现的代码在源码scripts目录下
– #make xconfig(要求QT被安装)
– #make gconfig(要求GTK+被安装)
操作说明
- 输入**/**搜搜相关字符
=n表示没有编译进去,对应菜单里的空状态
y 模块驱动编译到内核中,启动时自动加载
m:模块会被编译,但是不会被编译到内核中,只是生成.o文件
- 使用空格键选择具体编译配置,有3种状态
M
编译成模块需要在编译文件特殊定义
空
不编译状态\*
编译进内核。
Kconfig
执行#make menuconfig
时会出现内核的配置界面,所有配置工具都是通过读取”arch/$(ARCH)Kconfig”文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig
常用的配置基本在drivers目录下
基本配置语句
• menu “Device Drivers”菜单类
– source “xxx”
• menu “Character devices”
– source “xxx”
• 最终选项
– Enable LEDS config
常用配置基本在drivers目录下
例如:源码中leds的Kconfig
1. 源码中drivers/Kconfig 定义了menucofnig的menu标题 “Device Drivers”,同时定义了下一级的Kconfig
1 | source "drivers/leds/Kconfig" |
2. 源码中drivers/char/Kconfig 文件中定义了menuconfig的menu标题”Charter devices”,同时定义了leds的选项卡Enable LEDS config
1 | config LEDS_CTL |
也就是说通过在源码中执行make menuconfig菜单:Device Drivers——>Charter devices——>Enable LEDS config
在源码文件中则是drivers/Kconfig ——>drivers/char/Kconfig
.config
.config是通过menuconfig配置之后生成的, linux在编译的时候根据.config里的宏定义来确定哪些文件编译到内核.
如果menucofing中某一模块选择”空白”即不编译状态,**.config**的宏定义则会被注释
注意源码中其它.config 是针对不同的操作系统功能裁剪的.config
实例添加一个HELLO_CTL
1 | root@ubuntu:~/iTop4412_Kernel_3.0# vi drivers/char/Kconfig |
添加
1 | config HELLO_CTL |
这样在menuconfig中就会有
同时在源码根目录的**.config**文件中也会产生
1 | CONFIG_HELLO_CTL=y |