如何將驅動程序編譯進Linux內核鏡像uImage
一、創建驅動目錄和文件在Linux源碼的driver目錄中,創建一個新的驅動目錄,例如Led。進入該Led目錄,并在此目錄下創建以下幾個文件:Kconfig、驅動源碼文件led.c以及Makefile
一、創建驅動目錄和文件
在Linux源碼的driver目錄中,創建一個新的驅動目錄,例如Led。進入該Led目錄,并在此目錄下創建以下幾個文件:Kconfig、驅動源碼文件led.c以及Makefile。
二、修改Kconfig文件
使用vim命令打開Led文件夾下的Kconfig文件,在文件中添加類似于紅框內的內容,如圖所示。這些內容是為了告訴內核配置系統有關這個驅動的信息。
三、修改Makefile文件
使用vim命令打開Led文件夾下的Makefile文件,在文件中添加obj-y led.o的內容,如圖所示。這樣可以告訴內核編譯系統要將led.o這個對象文件鏈接到內核中。
四、修改驅動源碼文件
使用vim命令打開Led文件夾下的led.c文件,并記住紅框內的器件名稱imx28x_led,如圖所示。這個名稱將在后面的步驟中使用。
五、修改driver目錄下的Kconfig文件
返回到driver目錄中,使用vim命令打開driver目錄下的Kconfig文件,并在文件中添加"Source "drivers/led/Kconfig""這一行,如圖所示。這樣可以告訴內核配置系統在編譯配置時包含驅動的相關信息。
六、修改driver目錄下的Makefile文件
使用vim命令打開driver目錄下的Makefile文件,并在文件中添加obj-y Led/,其中Led是剛才創建的驅動目錄的名稱,如圖所示。這樣可以告訴內核編譯系統要將這個驅動目錄下的所有對象文件鏈接到內核中。
七、編譯并燒寫內核
編譯并燒寫Linux源碼進入芯片后,進入到Linux的dev目錄中,如果能夠看到imx28x_led這個設備文件,則表示成功將驅動程序編譯進了Linux內核鏡像uImage中,如圖所示。現在可以啟動系統并加載驅動了。