讯为Linux驱动笔记——Menuconfig操作

目的

学习使用Menuconfig进行内核编译,裁剪。先将内核复制到虚拟机,在内核源码文件夹下,输入make menuconfig.menuconfig界面是由一级一级kconfig文件进行引用对应的.c文件。最终控制驱动的编译选项。在这里以LED驱动为例。

查看LED驱动

在menuconfig界面内查找LEDS驱动,可知LEDS驱动在Device Drivers选项下的Character devices选项内。
在这里插入图片描述
根据讯为给的资料,可知LED驱动在drivers/char下
在这里插入图片描述

文件结构

Linux中通过文档的逐层调用,形成调用的菜单结构
menu "Device Drivers"菜单类
– source “xxx”
• menu “Character devices”
– source “xxx”
• 最终选项
– Enable LEDS config

根目录下的kconfig

解压内核源码,进入文件夹,vim Kconfig查看根目录下Kconfig文件。

#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.
#
mainmenu "Linux/$ARCH $KERNELVERSION Kernel Configuration"

config SRCARCH
        string
        option env="SRCARCH"

source "arch/$SRCARCH/Kconfig"                

其中mainmenu可以理解为menuconfig主界面,ARCH为平台,KERNELVERSION内核版本号,在系统文件夹下的Makefile文件中定义。
在这里插入图片描述
source "arch/ S R C A R C H / K c o n f i g " , 在 这 句 中 指 调 用 了 a r c h / SRCARCH/Kconfig",在这句中指调用了arch/ SRCARCH/Kconfig"arch/SRCARCH/下的Kconfig文件,
在这里插入图片描述
在文档arch/arm/Kconfig中可以看到调用了

source "drivers/Kconfig"

Drivers下的Kconfig

由上可知,打开文件夹drivers下的Kconfig文件,可见如下

source "drivers/char/Kconfig"

Drivers文件夹下的char文件夹的Kconfig

在此可以看到LEDS的驱动,与manuconfig界面中一一对应。在这里插入图片描述在这里插入图片描述

最小系统的配置裁剪

使用vim打开char文件夹下的Kconfig。仿照LED_CTL编写,在menuconfig中使用空格 选择驱动配置 “M”为编译成驱动,“空”为不编译到内核 “*” 编译到内核 。添加如下部分,再在根目录下执行make zImage。可在根目录下生成.config文件。

config HELLO_CTL
        tristate "Enable HELLO config"   (备注:tristate 可以在menuconfig变成“M,而bool 没有此选项)
        default y
        help
          Enable HELLO config

在这里插入图片描述
备注:到此,menuconfig工具意义就在于生成.config文件,编译内核文件时告诉系统哪些要编译进内核。同时通过各层的Makefile文件来连接各个文件。在/drivers/char文件夹下Makefile文件当宏定义LEDS_CTL被定义时,则编译

obj-$(CONFIG_LEDS_CTL)          += itop4412_leds.o

如果是自己的驱动仿照上述添加

obj-$(CONFIG_HELLO_CTL)          += hello_lsh.o

可以看到hello_lsh.c已经成功编译成hello_lsh.o文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值