Linux驱动第二篇-----内核模块解析

怎样把Linux内核编译成二进制文件呢,怎样剪裁呢。且听这节分享:
这篇介绍: Kconfig 配置文件,Kconfig 文件是
和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用

内核下载:https://mirrors.edge.kernel.org/pub/linux/kernel/

Linux 内核配置系统由三个部分组成

1.Makefile 文件:分布在 Linux 内核源码中的 Makefile 文件,定义了 Linux 内核的编译规
则。
2. Kconfig 文件:给用户提供配置选择的功能。
3. 配置工具:这里使用的是 menuconfig(在内核源码里面使用make menuconfig 即可进入界面)

首先我们进入配置界面:
Linux驱动第二篇-----内核模块解析

我们一般驱动写的都是字符类驱动:所以找到字符驱动的位置:
Device Drivers -> Character devices 里面即可找到字符类的驱动 (使用空格确定和取消选择)

在配置界面修改之后,在内核的最上面的目录有一个.config的配置文件也会相应修改。
例如:取消选择led之后。
Linux驱动第二篇-----内核模块解析
之后 打开.config文件 vim .config

Linux驱动第二篇-----内核模块解析
显示被注释了。
menuconfig 最终是为了生成一个.config 文件

Kconfig 和 menuconfig 之间的关系
打开源码下的“drivers/char/Kconfig ”文件,在这个文件里面搜索“LEDS_CTL
Linux驱动第二篇-----内核模块解析
这里的 config LEDS_CTL 就和 menuconfig 图形配置界面中“Enable LEDS config”对
应,如下图所示
Linux驱动第二篇-----内核模块解析

进入“drivers/char/Kconfig ”文件的第一行,可以看到“menu "Character devices。这个“Character devices”就和 menuconfig 中的菜单对应
Linux驱动第二篇-----内核模块解析

所以每一级的菜单都有一个Kconfig与之对应