三、linux内核驱动裁剪

总结:

  • Menuconfig是编辑内核的工具。
  • Kconfig定义Menuconfig菜单选项。
  • .config是最后Menuconfig配置完生成的文件。
  • Makefile根据.config宏定义判断是否编译驱动。

一、Menuconfig的操作

1、Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉,menuconfig是生成.config的一个工具

在Linux发展过程中,配置内核可以使用一下命令:
        – #make config(基于文本的最为传统的配置界面,不推荐使用)
        – #make menuconfig(基于文本菜单的配置界面)
        – #make xconfig(要求QT被安装)
        – #make gconfig(要求GTK+被安装)

2、在Linux源码目录下输入命令make Menuconfig,可以进入配置界面
– menuconfig实现的代码在源码“scripts”目录下(了解即可)

3、搜索
        – 界面输入“/”,输入查找关键词,输入“回车”即可搜索


4、使用 “ 空格 ”键 选择具体驱动配置,有 三种状态
        – “M”编译成模块(需要在编译文件里面特殊定义,后面介绍)
        – “空”不编译状态
        – “*”编译进内核

二、Kconfig文件

1、Kconfig简介

        当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig

        Kconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config

        linux源码目录下的Kconfig也是通过脚本编写而成,所以学会“仿写”即可。Kconfig文件在每一级目录下都有,源码下的如下图所示。

2、Linux内核配置裁减

打开:drivers/char/Kconfig,在LEDS_CTL上面仿写一个HELLO_CTL。

然后查看menuconfig配置和裁减HELLO的驱动,查看.config文件的变化,将HELLO定义为“tristate”,可选为“M”状态。

三、.config

menuconfig配置完后,会生成.config,在linux内核源码根目录。打开如下:

里面实际上就是很多根据刚刚配置生成的宏定义开关。用于开关驱动。这些宏定义开关在对应的驱动目录下的Makefile文件中,起到了开关作用。如下面LED驱动的Makefile,就是根据这个.config里面的宏定义,来判断是否将itop4412_leds编译进内核里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值