1. 程式人生 > >如何把自己的驅動編譯進核心或模組(Kconfig和Makefile)

如何把自己的驅動編譯進核心或模組(Kconfig和Makefile)

DIY:向核心新增自己的程式
A.在Linux核心中增加自己的程式步驟(注意這裡只是程式檔案):
1.將編寫的原始碼複製到Linux核心原始碼的相應目錄中。
2.在目錄的Kconfig檔案中增加新原始碼對應專案的編譯配置選項
3.在目錄的Makefile檔案中增加對新原始碼的編譯條目。
B.在Linux核心drivers/目錄中增加目錄和子目錄步驟:
1.所加目錄為myDriver,檔案如下:
myDriver$ tree
|– Kconfig
|– Makefile
|– key
|   |– Kconfig
|   |– Makefile
|   `– key.c
|– led
|   |– Kconfig
|   |– Makefile
|   `– led.c
`— test.c
#注意此時各個目錄中的Makefile和Kconfig檔案是空的
2.在新增的相應目錄新增Kconfig和Makefile檔案,上面的目錄中已經新增。
3.修改新增目錄的父目錄的Kconfig和Makefile檔案,以便新增的Kconfig和
Makefile能被引用。向父目錄中的Makefile新增:
 obj-y                           += myDriver/ 
表示在編譯過程中包含子目錄myDriver目錄。然後修改Kconfig檔案,新增:
source “drivers/myDriver/Kconfig”
表示在配置時引用子目錄myDriver中的配置檔案Kconfig。
4.經過上面一步,父目錄就可以找到所加的目錄myDriver了,然後就是編輯各個目 錄中的Makefile和Kconfig檔案,在你新增的目錄myDriver中的Makefile加入:
  obj-$(CONFIG_TEST) += test.o #因為在myDriver目錄中要編譯test.c檔案
     #所以會根據CONFIG_TEST來決定編譯選項
    obj-y += led/#編譯myDriver目錄中的子目錄led
    obj-y += key/#編譯myDriver目錄中的子目錄key
 然後Kconfig檔案是:
 menu “TEST MyDriver”      #在make menuconfig時要顯示的選單入口                                                     
comment “Test myDriver” #menu title
config TEST
        tristate “MyDriver test”
source “drivers/myDriver/led/Kconfig”#將led目錄下的Kconfig新增進來
source “drivers/myDriver/key/Kconfig”
endmenu
再看led目錄下的Makefile和Kconfig:
Makefile為檔案:
obj-$(CONFIG_LED)+=led.o 
Kconfig檔案:
 config LED
      tristate “led support” 
 key目錄下的Makefile和Kconfig類似。
5.現在可以make menuconfig來配置新增自己目錄myDriver的核心了!