make menuconfig 添加新选项

在Linux内核源码中创建新目录并添加hello.c、Makefile和Kconfig文件,Kconfig定义新选项HMQTEST。通过makemenuconfig配置内核,使新选项出现在配置界面。配置成功后,使用makezImage编译内核。makemenuconfig语法包括config、tristate等,用于定义选项状态和帮助信息。
摘要由CSDN通过智能技术生成

如何在make menuconfig 界面添加新选项步骤:

        1、先在Linux内核源码目录下创建个新目录(哪个位置都行,一般添加新驱动时,都会在 drivers目录下创建,这里为了实验的方便就在 源码目录下创建了)

mkdir hmq_test

        2、在新创建的目录下新建几个文件:hello.c    Makefile  和   Kconfig

hello.c 文件:

#include <linux/module.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/major.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/platform_device.h>


static int __init led_device_init(void)
{

    printk("hello enter\n");
    return 0;
}

static void __exit led_device_exit(void)
{
    printk("hello end\n");
}

module_init(led_device_init);
module_exit(led_device_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("hmq");

Makefile   文件(这里的Makefile 要被顶层的Makefile 所调用,不然这个hello.c 文件就不能被编译到,为了方便,可以把下面那行代码直接放在 drivers/Makefile文件中):

 obj-$(CONFIG_HMQTEST) += hello.o

Kconfig   文件:编写完后要在 arch/arm/Kconfig 中被引用才能被配置工具弄成选项

menu "hmq_hello_test"    


config HMQTEST        #这里不能写成 CONFIG_HMQTEST,不然会弄出个 CONFIG_CONFIG_HMQTEST
    tristate "hmq_test"
    help
        #下面是这个模块的说明,写啥都行
      Say Y here if you have memoryless force-feedback input device
      such as Logitech WingMan Force 3D, ThrustMaster FireStorm Dual
      Power 2, or similar. You will also need to enable hardware-specific
      driver.
 
      If unsure, say N.
 
      To compile this driver as a module, choose M here: the 
      module will be called ff-memless.

endmenu

执行 make menuconfig

        

 

配置完成后,可以这样查看是否配置成功了:

 然后 make zImage 编译:

        

 编译成功!

 如果没有 menu "hmq_hello_test" endmenu 这两行的话就是下面这样,多选项时还是加上好点,免得同一个界面上有太多项

         原理说明为啥能通过Konfig文件就能添加一个新选项:

 make menuconfig的一些简单语法:

config 是一个关键字,对应的是一个选项配置;

Tristate是表示 < >的,bool是表示[ ]的,string是表示( )的;

[ ] 有两种状态,*代表选中,没有*代表未选中;

选中的意思是对应的选项功能会被编译进内核镜像文件中;

< > 有三种状态,*代表选中,没有*代表未选中,M代表模块;

( ) 存放十进制或十六进制或字符串;

 default y表示该选项默认被选择上;

depends on 表示依赖项

help 是帮助信息

更多知识点可以看 《Linux设备驱动开发详解》这本书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值