前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 内核中 Kconfig 文件的作用和添加 menuconfig 项的方法

Linux 内核中 Kconfig 文件的作用和添加 menuconfig 项的方法

原创
作者头像
amc
修改2018-07-03 15:21:08
3.5K0
修改2018-07-03 15:21:08
举报
文章被收录于专栏:后台全栈之路

嵌入式开发中,需要定制或添加一些内核的功能。这里就需要配置 Kconfig 文件了。本文简单说明一下如何修改。便于需要时查找

Ref: Linux内核中Kconfig文件的作用

本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

原文发布于:https://segmentfault.com/a/1190000005182243,也是作者本人的专栏。


Kconfig的作用

Kconfig就是服务于menuconfig的一个配置文件。在对应目录下配置Kconfig文件,就是在配置对应的menuconfig项目。

有很多种配置方式,这里我暂时只是给一种简单的,也就是yes和no的方式。比如我新添加了一个配置,写了一个电机驱动设备:

代码语言:txt
复制
config XXXX_MOTOR
    bool "xxxx motor support"
    default y
    ---help---
        Provide GPIO-based motor support.
        Designed by AMC.

其中bool表示这是一个二态值(三态值是“tristate”)。后面的“---help---”指明帮助信息,并且会在menuconfig菜单中出现。注意帮助信息并不会自动换行,一行太长显示不了的信息会被截断,所以请自行控制换行。

其他更复杂的配置方式,可以仔细看参考资料。

完成了make menuconfig之后,内核会生成.config文件,就在Linux代码树的根目录下。这个文件制定了各个模块是否会被编译,由Makefile读取并在编译过程中配置内核。

Makefile的修改

如果你修改了对应文件夹下面的Kconfig,那么你还要修改相应的Makefile才行。以前文为例,我添加了配置项在Kconfig中,这个Kconfig的位置是drivers/char/,那么我必须在这个文件夹下的Makefile中添加一行:

代码语言:txt
复制
obj-$(CONFIG_XXXX_MOTOR) += xxxx_motor.o

其中要正确地写上目标文件的名称。然后,专心添加你的.c和.h文件就行了。由于是二态的选项,所以你的代码要么就直接被包含在内核中,要么就压根不存在。不像三态的,还有一个“M”选项。三态配置参见参考资料吧。


本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

原文发布于:https://segmentfault.com/a/1190000005182243,也是作者本人的专栏。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kconfig的作用
  • Makefile的修改
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档