一个实验看懂 Kconfig 、menuconfig和.config 之间的关系

Kconfig 、menuconfig和.config

一. 开始实验

​ 笔者在Linux-5.10内核下进行的实验

  1. 修改一个Kconfig

    $ pwd
    /home/stu/storage/linux-stm32mp-5.10.10-r0/linux-5.10.10/drivers/block
    $ vi Kconfig 
    
  2. 笔者选择的是内核中相对路径drivers下的block文件夹中的Kconfig

  3. 可以在末尾的位置添加如下代码

    config ANDREA_BLOCK_TEST                                          
    	tristate "hello hello hello"
    

    请添加图片描述

  4. 回到内核源码的顶层目录

    $ pwd
    /home/stu/storage/linux-stm32mp-5.10.10-r0/linux-5.10.10
    
  5. 执行

    $ make menuconfig
    

    请添加图片描述
    请添加图片描述

  6. 保存并退出

  7. 内核源码顶层目录下打开 .config , 发现多了一个配置设置成m的方式

    请添加图片描述

二. 总结

  1. 回顾实验的过程,修改Linux源码目录下的,driver下的某类驱动的Kconfig,笔者修改的是块设备中的Kconfig,添加了自己的标签,叫 “hello hello hello”
  2. 在顶层目录下执行 make menuconfig ,弹出图形化界面,此处注意终端窗口需要足够大,不然图形化界面无法显示,然后顺着目录可以找到自己添加的一个叫 "hello hello hello"的标签
  3. 选择以模块的形式编译即M,保存退出menuconfig
  4. 查看隐藏文件.config中的内容,有个叫CONFIG_ANDREA_BLOCK_TEST的置为了m
  5. 通过这个实验,我们发现,Kconfig是menuconfig的配置文件,我们可以通过Kconfig添加和裁剪模块,然后图形化选配模块的编译方式,可以选择编译进内核或者以模块的方式编译,甚至不参与编译,此后,这些配置都会体现在.config这个隐藏文件中,接着我们修改顶层的Makefile,添加上对应的.o模块即可,后续我们自己添加的驱动模块的代码就可以加入到内核源码中参与编译啦~
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值