Linux-驅動編譯流程

以下面的字符設備源碼爲例:(當然用戶也可以使用helloworld的源碼):





把文件放在:


\home\ellison\linuxdev\demo_chrdev


1. 編寫Makefile文件,放在同樣的目錄:



在該Makefile中,指定了使用內核的版本:

KERNELDIR:=/lib/modules/$(shell uname -r)/build

建議這麼寫,避免編譯出來的.ko模塊與系統自帶的內核版本不匹配而報錯;


PWD:=$(shell pwd): 表示編譯後回到當前目錄;


$(MAKE) -C $(KERNELDIR) M=$(PWD) modules 這一句就是我們真正的編譯指令;

2. 編譯:

在終端中,尋址到文件所在的目錄,輸入 make ,程序就會自動編譯了;



編譯後會生成對應的.ko文件;

3. 安裝模塊



4. 查看模塊是否安裝成功:



4. 查看安裝過程中打印出來的信息:dmesg|tail



5. 把模塊加入到設備系統的/dev目錄下(即生成一個新的設備節點):設備名- demo_chrdev



接下來在/dev目錄下可以看到這個設備節點: demo_chrdev



6. 編寫程序測試這個模塊:



編譯:



運行:



可以看到程序正確運行了。

這裏演示的是一個簡單的字符設備驅動程序,大家可以按照這個流程試試別的。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章