这里使用“Kconfig树”这个词是因为我不知道准确的说法应该是怎样的,我想表达的意思是:make menuconfig的菜单中能够显示我们自己写的驱动信息,我们可以通过make menuconfig来决定是否使用该驱动,这样也让内核知道我们驱动的存在,而不是让我们写的驱动成为一个野生的程序以致污染内核。其实"Kconfig树"这个词也还算准确,一级一级的Kconfig文件确实是以树的形式组织的。
接下来讲怎么向Linux Kconfig树中添加驱动配置信息。主要涉及的文件就三个,第一个是你写的驱动源文件(xxx.c),第二个是Kconfig文件,第三个是Makefile文件。
1、驱动源文件
驱动源文件应该放在内核源码树的某一目录下,如果不知道该放哪或者想偷懒的话,可以统一放在drivers/misc下或者在drivers/misc/xxx下,xxx是你自己新建的一个文件夹,相比前一个目录更方便管理。
2、Kconfig文件
make menuconfig中出现的配置选项就是由Kconfig文件决定的。这里我们以在drivers/misc/下新建test文件夹的情况为例说明。
此时我们的drivers/misc/test目录下应有三个文件:驱动源文件(我这里是motor.c)、Kconfig文件、Makefile文件。
在编写Kconfig文件之前,需要先在drivers/misc/Kconfig文件中添加我们自己的Kconfig文件的信息:source "drivers/misc/test/Kconfig"
,这样我们的Kconfig文件才会被加入到Kconfig树中。
我们自己的Kconfig文件的内