在 内核中增加程序需要完成以下五项工作:
1. 将编写的源代码复制到 Linux 内核源代码的相应目录;
2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;
3. 在目录的 Makefile 文件中增加对新源代码的编译条目。
4.在该目录的上一级目录的Kconfig文件中把上面第二步修改的Kconfig包括到此Kconfig中。
5.在该目录的上一级MakeFile中修改下,使得可以编译到该目录。
1.内核编译命令(makefile)
obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.
obj-m: 则表示该文件作为模块编译.
除了y、m以外的obj-x 形式的目标都不会被编译。
2.内核编译 (make menuconfig)
make menuconfig
*标识编译到内核,
M标识作为内核模块编译.
空格,表示该功能不编译到内核中,即新的内核将不支持该功能.
编译进内核:
驱动被编译成 .ko 文件并insmode。
编译成模块
驱动边编译成 .ko 文件。
例如:makefil中有一句
obj-$(CONFIG_HELLO_WORLD) += hello.o
makemenuconfig 中 CONFIG_HELLO_WORLD 配置为 * 。那么CONFIG_HELLO_WORLD=y
makefile在执行的时候就是
obj-y += hello.o
就是编译进内核。