驅動程序--編譯進內核和編譯成模塊

在 內核中增加程序需要完成以下五項工作:

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

就是編譯進內核。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章