主要是修改配置2个文件:Kconfig和Makefile
2.6内核的源码树目录下一般都会有二个文件:Kconfig和makefile ,分布在各目录下的Kconfig构成一个额分布式的内核配置库,每个k config分别描述了所属目录源文件相关内核的配置菜单,在内核配置make menuconfig时,从Kconfig中读取配置菜单,用户配置完成后保存为.config(在顶层目录下生成)中。
在内核编译时,主makefile调用这个.config ,就知道用户对内核的配置情况。假如要想添加新的驱动到内核源码中,可以通过修改Kconfig来增加我们自己驱动的配置菜单,还需要修改该驱动所在目录的makefile.
应用实例:
用户驱动:test_driver
在/driver目录下新建文件夹test_driver
test_driver下的树形目录:
--test_driver
--cpu
--cpu.c
--makefile
--test_driver.c
--Kconfig
--makefile
test_driver目录下的kconfig文件:
menu “TEST_DRIVER"
comment "TEST _Driver"
config CONFIG_TEST
bool "TEST support"
config CONFIG_TEST_USER
tristate "test user-space interface"
depends on CONFIG_TEST
endmenu
另外需要使新加的Kconfig挂接在整个Kconfig树下:
修改arch/arm/Kconfig文件,增加:source ”driver/test_driver/Kconfig’
test_driver下的makefile文件:
obj-$(CONFIG_TEST)+=test_driver.o
obj-$(CONFIG_TEST_CPU) +=cpu/
test_driver子目录下的makefile
obj-$(CONFIG_TEST_CPU) +=cpu.o
使新增加的makefile文件挂接在整个Makefile树下需修改test_driver父目录Driver下的makefile,
obj-$(CONFIG_TEST)+=test_driver/