Linux内核驱动学习(二)添加自定义菜单到内核源码menuconfig
【摘要】
文章目录
目标drivers/Kconfigdemo下的Kconfig 和 MakefileKconfigMakefiledemo_gpio.c
目标
Kernel:Linux ...
目标
Kernel:Linux 4.4
我编写一个简单的hello world
Linux 内核模块后,已经可以通过insmod
动态加载到系统内核中,并通过rmmod
卸载模块。但是出于学习的目的,我想把这个内核添加到Linux源码中,并且可以通过Kconfig
进行配置,在make menuconfig
的指令下,可以生成相应的菜单可以进行配置。
drivers/Kconfig
在Linux内核源码路径下,可以找到drivers
文件夹路径,这里保存的是各种驱动程序。在终端输入make menuconfig
可以在终端上显示一个用户界面能对内核进行相应的配置。
Device Drivers
就是驱动的配置选型的菜单。
将光标移动到exit
退出当前界面,返回到最初的终端。
sudo cd drivers
sudo mkdir demo
vi Kconfig # 或者使用 gedit Kconfig
- 1
- 2
- 3
在drivers
路径下创建一个文件夹demo
,打开Kconfig
,把drivers/demo/Kconfig的文件路径添加到drivers/Kconfig
中
menu "Device Drivers"
source drivers/demo/Kconfig //只需要添加这一行
endmenu
- 1
- 2
- 3
demo下的Kconfig 和 Makefile
在demo
下添加Kconfig
和Makefile
,当前demo
下的文件列表
├── demo_gpio.c
├── Kconfig
├── Makefile
- 1
- 2
- 3
Kconfig
menuconfig DEMO_DRIVERS #DEMO_DRIVERS 菜单
tristate "demo drivers"
help
demo
if DEMO_DRIVERS
config DEMO_PLATFORM_GPIO # 菜单子项
tristate "the most simplest driver" #子项显示内容
help
Driver learning # help显示内容
endif
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
Makefile
obj-$(CONFIG_DEMO_PLATFORM_GPIO) +=demo_gpio.o
- 1
demo_gpio.c
#include <linux/init.h>
#include <linux/module.h>
static int __init demo_gpio_init(void){
printk(KERN_INFO "demo gpio module init\n");
return 0;
}
module_init(demo_gpio_init);
static void __exit demo_gpio_exit(void){
printk(KERN_INFO "demo gpio module exit\n");
}
module_exit(demo_gpio_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("gw");
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
最后,可以看到,demo_gpio
已经成功添加到menuconfig的里了。
文章来源: great.blog.csdn.net,作者:小麦大叔,版权归原作者所有,如需转载,请联系作者。
原文链接:great.blog.csdn.net/article/details/86667649
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)