要将自己开发的内核代码加入到 Linux 内核中,需要有三个步骤:
Ø 首先确定把自己开发代码放入到内核源代码结构中;
Ø 其次,通过Kconfig文件把自己开发的功能增加到 Linux 内核的配置选项中,使用户能够选择此功能;
Ø 最后,构建子目录 Makefile,根据用户的选择,将相应的代码编译到最终生成的 Linux 内核中去。
本例将添加一个test_char的字符设备驱动。按三个步骤来:
ü 放置驱动代码:在目录drivers/char/中新建驱动对应文件test_char.c(读者在实践时可先用touch test_char.c 生成一个空的测试文件)。
ü 编辑配置文件:编辑drivers/char/Kconfig文件,在文件末尾添加如下的配置脚本:
config TEST_CHAR
bool “My Test Character driver”
help
This is my help content.
ü 编辑Makefile:编辑drivers/char/Makefile,在文件末尾添加如下脚本:
obj-$(CONFIG_TEST_CHAR) += test_char.o
做完以上工作,就可以用make menuconfig查看并修改配置了。
在配置菜单 Device drivers à Character devices里的最后应该可以看到如下界面:
发现我们所定义的“My Test Character driver”已经出现在配置选择菜单里了。
这时可以移动到此菜单实体,然后通过空格选定此项。
最后退出并保存配置。
这时再打开根目录下的.config文件可以发现如下代码:
CONFIG_TEST_CHAR = y
这说明在编译时CONFIG_TEST_CHAR=y,也就是编译时会编译test_char.o (根据Makefile)。
至此,我们已经完成了将自己的模块添加到Linux内核中,并且可以通过界面进行配置。当然,由于篇幅所限,这里只说明了Linux 2.6内核配置系统的基本内容,更多内容读者可参见其他资料。