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

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

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

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

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


Kconfig的作用

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

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

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中添加一行:

obj-$(CONFIG_XXXX_MOTOR) += xxxx_motor.o

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


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

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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CodeSheep的技术分享

CentOS7上ElasticSearch安装填坑记

在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非root用户,以非root用户来起es

3939
来自专栏服务器

全网最详细的SSR搭建梯子教程[最新VPS]

二、 注册地址: https://www.vultr.com/,进入后按图输入邮箱和要设置的密码(最少10位,要同时有数字和大小写字母),最后点击create ...

20.8K9
来自专栏汇智网教程

ganache-cli如何进入控制台模式

2544
来自专栏点点滴滴

frp实现外网访问群晖synology

    下载Linux(centos7)版本的frp_0.21.0,所有版本frp点这里

1912
来自专栏Golang语言社区

GO语言学习:go语言实现android应用的步骤

go语言在1.4版本就提供了编辑Android应用的功能,但当时最简单的方法是使用Docker来配置,而且在编辑和导入过程也不是很方便。 在go语言1.5以后提...

2315
来自专栏钟志远的专栏

【腾讯云的1001种玩法】云服务器搭建Python环境

之前一直在用阿里云服务器跑爬虫、小脚本。这两天在朋友的安利下转到了腾讯云上面来,刚好趁这个机会写一写有关于云服务器上Python爬虫环境的搭建。

4.6K3
来自专栏木子昭的博客

免代理下载安装纯净Chrome插件离线包

Chrome的插件非常好用, 作者还为此在简书开了一个文集Chrome插件英雄榜, 用于详细介绍一些小众插件的使用方法

541
来自专栏深度学习之tensorflow实战篇

激活windows10转到电脑设置的水印消失3种方法总结

我是企业版,我使用第二种方法激活的window 10! 方法一1、 目前针对Win10正式版的永久激活密钥并没有放出,因此如果想享受永久激活服务,则可以通过重复...

3868
来自专栏魏艾斯博客www.vpsss.net

宝塔面板安装后需要改掉默认端口和登陆账号

2852
来自专栏醉梦轩

修复Linux内核文件丢失问题

1482

扫码关注云+社区