二、Linux设备驱动 - Menuconfig、Kconfig、.config

  • Menuconfig的操作
  • Kconfig和.config文件
  • Linux内核配置裁减

1. Menuconfig的操作

Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉menuconfig是生成.config的一个工具。
在Linux源码目录下输入命令make Menuconfig,可以进入配置界面
– menuconfig实现的代码在源码“scripts”目录下
在这里插入图片描述
常用操作
– 上下选择→按键“上下方向键”
– 左右选择→按键“左右方向键”
– 进入下级界面→按键“回车”
– 返回上级界面→选择“Exit”+按键“回车”
– 帮助→选择“help”+按键“回车”
搜索
– 界面输入“/”,输入查找关键词,输入“回车”即可搜索
– 使用“空格”键选择具体驱动配置,有三种状态
– “M”编译成模块(需要在编译文件里面特殊定义,后面介绍)
– “空”不编译状态
– “*”编译进内核
退出
– 不保存退出
– 保存退出

2. Kconfig和.config文件

  • Kconfig也是通过脚本编写而成,所以学会“仿写”即可。 Kconfig文件在每一级目录下都有,源码下的如下图所示。mainmenu菜单可以看到平台“arm”和内核版本“3.0.15”
    在这里插入图片描述
  • Kconfig文件——driver目录下的Kconfig分析
    在这里插入图片描述
  1. drivers/Kconfig 文件显示菜单 menu “Device Drivers”,并且source 引用的资源都在drivers目录下,其中source “driver/char/Kconfig”,表示引用这个目录下的Kconfig文件。
  2. driver/char/Kconfig 文件显示菜单 menu “Character devices”,并且source 引用的资源都在drivers/char 目录下,其中医用的config LEDS_CTL… 就是LEDS的配置项
  • .config文件
    通过menuconfig的配置,最终生成.config文件,让内核调用

3. Linux内核配置裁减

模仿写hello即可

  • vi drivers/char/Kconfig
  • / 搜索LEDS
  • 模仿写HELLO tristate表示三态,默认状态是 y ,保存退出
    在这里插入图片描述
  • make menuconfig 进入配置页面
  • 进入目录依次找到HELLO配置项
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 保存退出
  • 查看生成的 .config 文件配置
    在这里插入图片描述
发布了29 篇原创文章 · 获赞 9 · 访问量 1869

猜你喜欢

转载自blog.csdn.net/m0_46291920/article/details/104561513