詳解將驅動程式編譯進linux核心
阿新 • • 發佈:2019-02-16
1、進入目錄linux-kernel-samsung-dev\drivers\char
2、新建目標目錄01.led,將驅動相關檔案複製到此目錄
注:需確保複製的驅動檔案是能正常執行的驅動
3、在目錄01.led裡編寫Kconfig檔案
menu "xxx"
config XXX_LED
tristate "xxx_ggg210_led"
default n
help
The led water made by xxx which was used by platform!
endmenu
4、在目錄01.led裡編寫Makefile檔案
obj-$(CONFIG_XXX_LED) += led_dev.o led_drv.o
5、修改01.led上級目錄char裡的Makefile檔案
增加:obj-$(CONFIG_XXX_LED) += 01.led/
6、修改01.led上級目錄char裡的Kconfig檔案
增加:source "drivers/char/01.led/Kconfig"
7、正確配置好之後,執行make menuconfig命令彈出選單,然後按照下面步驟一一進入
Location:
-> Device Drivers
-> Character devices
-> xxx
< > xxx_ggg210_led (NEW)
8、使用“空格”鍵選擇“*”號:
<*> xxx_ggg210_led (NEW) 表示將該模組編譯進核心中
9、執行命令:make -j 2 uImage
(“-j 2”表示開啟2個執行緒以加快編譯速度)
10、將生成的uImage檔案燒錄到開發板
11、開發板核心啟動完成後,使用“ls /dev”命令檢視是否有裝置節點,以確認是否新增成功
12、刪除驅動模組。
首先刪除drivers目錄下的01.led資料夾,然後再刪除之前在相應Makefile和Kconfig中新增的語句。
########################################################################################
裝置驅動程式存放在核心原始碼樹根目錄 drivers/ 的子目錄下,在其內部,裝置驅動檔案進一步按照類別,型別等有序地組織起來。
a. 字元裝置存在於 drivers/char/ 目錄下
b. 塊裝置存放在 drivers/block/ 目錄下
c. USB 裝置則存放在 drivers/usb/ 目錄下。
2、新建目標目錄01.led,將驅動相關檔案複製到此目錄
注:需確保複製的驅動檔案是能正常執行的驅動
3、在目錄01.led裡編寫Kconfig檔案
menu "xxx"
config XXX_LED
tristate "xxx_ggg210_led"
default n
help
The led water made by xxx which was used by platform!
endmenu
4、在目錄01.led裡編寫Makefile檔案
obj-$(CONFIG_XXX_LED) += led_dev.o led_drv.o
5、修改01.led上級目錄char裡的Makefile檔案
增加:obj-$(CONFIG_XXX_LED) += 01.led/
6、修改01.led上級目錄char裡的Kconfig檔案
增加:source "drivers/char/01.led/Kconfig"
7、正確配置好之後,執行make menuconfig命令彈出選單,然後按照下面步驟一一進入
Location:
-> Device Drivers
-> Character devices
-> xxx
< > xxx_ggg210_led (NEW)
8、使用“空格”鍵選擇“*”號:
<*> xxx_ggg210_led (NEW) 表示將該模組編譯進核心中
9、執行命令:make -j 2 uImage
(“-j 2”表示開啟2個執行緒以加快編譯速度)
10、將生成的uImage檔案燒錄到開發板
11、開發板核心啟動完成後,使用“ls /dev”命令檢視是否有裝置節點,以確認是否新增成功
12、刪除驅動模組。
首先刪除drivers目錄下的01.led資料夾,然後再刪除之前在相應Makefile和Kconfig中新增的語句。
########################################################################################
裝置驅動程式存放在核心原始碼樹根目錄 drivers/ 的子目錄下,在其內部,裝置驅動檔案進一步按照類別,型別等有序地組織起來。
a. 字元裝置存在於 drivers/char/ 目錄下
b. 塊裝置存放在 drivers/block/ 目錄下
c. USB 裝置則存放在 drivers/usb/ 目錄下。