標籤:linux驅動
一、準備好可以正常引導開發板的源碼
二、在核心源碼kernel檔案夾的driver目錄下,建立led_arm檔案夾
mkdir drivers/led_arm
三、將“LED驅動實驗”的驅動程式拷貝到led_arm目錄下(詳情見上一次LED驅動部落格)
將led.c拷貝在該檔案夾下面
Kconfig就是對應著核心的配置菜單。假如要想添加新的驅動到核心的源碼中,可以通過修改Kconfig來增加對我們驅動的配置菜單,這樣就有途徑選擇我們的驅動。
每個config功能表項目都要有類型定義,bool:布爾類型, tristate三態:內建、模組、移除, string:字串, hex:十六進位, integer:整型
例如config HELLO_MODULE
bool "hello test module"
bool類型的只能選中或不選中,tristate類型的功能表項目多了編譯成核心模組的選項,假如選擇編譯成核心模組,則會在.config中產生一個CONFIG_HELLO_MODULE=m的配置,假如選擇內建,就是直接編譯成核心影響,就會在.config中產生一個CONFIG_HELLO_MODULE=y的配置.
①添加一個Kconfig檔案
<span style="font-size:14px;">config MYLEDtristate "MYLED"default nhelpthis is a LED driver</span>
②添加一個Makefile
<span style="font-size:14px;">obj-$(CONFIG_LEDTEST)+=led.o</span>
四、將我們編寫的驅動支援選項增加進核心的配置菜單中。
修改drivers目錄中的Kconfig檔案
在最後一行添加語句
source "drivers/led_arm/Kconfig"
五、修改drivers/Makefile檔案
增加以下語句
obj-$(CONFIG_LEDTEST) +=led_arm/
六、重新設定核心
在源碼根目錄輸入
#make Menuconfig
可以在菜單的最後,看到我們新加入的MYLED選項。
靜態編譯進Linux核心