將驅動編譯到核心筆記

2021-10-08 13:37:45 字數 1223 閱讀 2162

把我們的驅動原始檔(test.c)放到對應目錄下,具體放到**需要根據驅動的型別和特點。

一般情況下我們分為位元組驅動和塊驅動,他們分別對應的資料夾時drivers下的char資料夾與block資料夾。(實際上並不一定要放到這些檔案,可以再新建資料夾)

可參考牧野星辰的部落格

以test.c為例,將其新增到插入目錄下,此時可分為兩種情況。

1、不建立子目錄,直接將test.c拷貝到char目錄

開啟char目錄的kconfig,仿寫其他驅動的格式在menu "character devices"的下一行之後新增

config test     

bool

"memory device driver"

default y

help

this is a test

開啟char目錄的makefile,仿寫其他驅動的格式新增

obj-$(config_test)

+= test.o

儲存執行即可。

2、建立子目錄test資料夾,此時需要在子目錄再建立konfig與makefile檔案

在test資料夾的kconfig寫入

menuconfig  test1

config test

bool

"memory device driver"

default y

help

this is a test

在test資料夾的makefile寫入

obj-$(config_test)

+= test.o

開啟char目錄的kconfig新增

source "drivers/char/test/kconfig"
開啟char目錄的makefile新增

obj-$(config_test)

+= test/

重新編譯核心,在arm上輸入

cat /proc/devices
可看見test驅動是否已經掛載

編譯核心驅動步驟

編譯核心 在編譯驅動前需要選編譯一次核心,make menuconfig 選中相應驅動模組 編譯驅動 make modules指定ko安裝路徑dir make modules install install mod path dir 在dir lib modules kernel version下生...

如何將乙個驅動編譯進核心

將乙個驅動編譯進核心 驅動和核心成為乙個整體,即驅動程式在zimage 或uimage 在核心啟動過程中,會自動安裝驅動。1 將驅動原始碼放在linux核心的原始碼包中 drivers char leds gec210 led.c 在drivers char 下建立了乙個目錄leds,將gec210...

如何將驅動程式靜態編譯進核心

驅動模組可以核心編譯好後動態載入進去,也可以在編譯核心的時候就直接新增。下面是將驅動程式靜態編譯進核心的方法 以乙個字元裝置為例 1.修改 drivers char下的kconfig檔案 在kconfig中增加如下 config my hello bool this is test a.儲存後回到核...