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