Linux kernel 源码添加可选项


闲来无事,顺便记录一篇在Linux kernel make menuconfig 内添加一个可选项。
说不定将来就要用到这个东西呢。 linux kernel 的配置系统由以下三个部分组成。
Makefile: 分布在Linux 内核源代码中,定义Linux kernel的编译规则。
配置文件:(kconfig) 给用户提供配置选择的功能。
配置工具:包括配置命令解析器和配置用户界面。这些配置工具使用的都是脚本语言,如Perl。
最常使用的,我们一般使用make menuconfig 进行配置我们自己想要的。
这里面我们看到很多可以选择的选项,那么如果我们自己要增加自己的选项该怎么办呢。
网上有很多教程都是在drivers里面添加,我这里讲一种就是直接如果自己想建一个目录,然后添加里面的模块该怎么做。



###过程:
我首先在顶层目录建一个目录chentest

cd $KERNEL_DIR
mkdir chentest
vim chentest.c
chentest.c:
#include <linux/init.h>
#include <linux/module.h> int __init chen_init(void)
{
printk("start\n");
return 0;
}
module_init(chen_init); void __exit chen_exit(void)
{
printk("end\n");
} module_exit(chen_exit); MODULE_AUTHOR("chenfl");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("This is test modules");
MODULE_VERSION("V1.0");


vim Makefile
Makefile:
obj-$(CONFIG_CHENTEST) += chen_test.o


vim Kconfig
Kconfig:
menu "chentest" config CHEN_TEST
tristate "This is a test"
default y
help
Say Y here if you have any input device (mouse, keyboard, tablet,
joystick, steering wheel ...) connected to your system and want
it to be available to applications. This includes standard PS/2
keyboard and mouse. Say N here if you have a headless (no monitor, no keyboard) system. More information is available: <file:Documentation/input/input.txt> If unsure, say Y. To compile this driver as a module, choose M here: the
module will be called input. if CHEN_TEST config CONFIG_CHENTEST
tristate "chentest"
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.
endif endmenu

好了大概到了这一步,准备工作差不多做好了,然后你的arm架构的话,需要在arm/arch/Kconfig

里面添加一句话。

大概在 这个位置添加:sourch "chentest/Kconfig"
2167 source "drivers/Kconfig"
2168
2169 source "chentest/Kconfig"
2170
2171 source "drivers/firmware/Kconfig
make ARCH=arm menuconfig
看 Device Drivers 下面是不是多了个选项 chentest

最新文章

  1. %格式化和format格式化--python
  2. IOS_SearchBar搜索栏及关键字高亮
  3. Timer的用法
  4. PHP函数中默认参数的的写法
  5. 捉虫记:SHGetSpecialFolderPath返回错误码为2
  6. “\n”与“\r”的区别
  7. python中使用kazoo连接zookeeper(一)
  8. map关联容器
  9. “GDI+ 发生一般错误” 解决方法
  10. IIS 加载 JSON 错误 404 解决办法
  11. APK Multi-Tool强大的APK反编译工具终极教程
  12. 【Unity游戏开发】Lua中的os.date和os.time函数
  13. 数位DP::SoSDP
  14. python装饰器3:进阶
  15. windows环境配置计划任务让weblogic的servers开机启动【原】
  16. Java基础高级部分(一)
  17. Django之CBV源码解析
  18. 使用sstream来进行类型转换
  19. 结尾非零数的奇偶性(问题来源于PythonTip)
  20. python3版本中的zip函数

热门文章

  1. 《MySQL 必知必会》读书总结
  2. Eclipse开发环境JDK版本问题和校验问题
  3. Socket通信综合示例
  4. 关于#define for if(false);else for
  5. git初级--配置
  6. .Net mvc 根据前台参数动态绑定对象
  7. MySQL练习题
  8. Java中判断字符串是否为数字的五种方法
  9. angualr 实现tab选项卡功能
  10. 架构师养成记--10.master-worker模式