靜態驅動程式編寫
產生ko檔是將模組獨立在核心之外,可讓使用者手動掛載與卸載,那如果在預設不須手動掛卸載就必須將模組編入kernel裡面,以下介紹將模組設定到kernel的編譯選項中。
首先先進入到kernel source的/dervers/char
資料夾中
cd ~/rpi/linux/drivers/char
mkdir 創建一個名為hello的資料夾,並將先前寫過的hello.c與Makefile搬移進來。 修改Makefile如下:
obj-$(CONFIG_HELLO) += hello.o
進到drivers/char/
底下修改Makefile以及kconfig兩個檔案
Makefile加入以下這行:
obj-$(CONFIG_HELLO) += hello\
kconfig 加入以下指令:
config HELLO
tristate "hello driver"
---help---
This is sample driver.
回到linux/目錄底下執行make menuconfig
進到Device driver
-> character devices
會發現到"hello driver"已經在目錄中了
此時選擇*字鍵後儲存離開再照第一章教過的的步驟重新編譯核心就會把模組編譯進去了。