在 內核中增加程序需要完成以下五項工作:
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
就是編譯進內核。