參考文件
/einyboy/p/3324225.html
感謝作者
1、編寫原始碼及makefile檔案
hello.c及makefile檔案位於目錄/home/dreamcs/kernelwork/learn中。
hello.c內容如下:
makefile檔案內容如下:#include #include module_license("dual bsd/gpl");
static int hello_init(void)
static void hello_exit(void)
module_init(hello_init);
module_exit(hello_exit);
2.編譯#下面這行是檔案makefile的內容,注意m是大寫的
obj-m := hello.o
把hello.c和makefile儲存在同一目錄,然後執行:
make -c /lib/modules/$(uname -r)/build subdirs=$pwd modules
這樣驅動就編譯好了,成果是hello.ko檔案。
注意:makefile一定要寫成makefile,如果寫成makefile就編譯不過。
3、載入驅動檢視執行結果
執行sudo insmod ./hello.ko
在/var/log/syslog檔案中看到如下內容
執行sudo lsmod命令,列出載入的驅動。發現hello驅動在其中。
4.解除安裝驅動
sudo rmmod hello
看見/var/log/syslog裡顯示了goodbye
5.另一種makefile
然後執行:make就編譯成功了,命令列不再加引數,很省事。#以下是makefile檔案的內容
obj-m := hello.o
kernel_dir := /lib/modules/$(shell uname -r)/build
pwd := $(shell pwd)
all:
make -c $(kernel_dir) subdirs=$(pwd) modules
clean:
rm *.o *.ko
linux驅動開發
這兩天在公司由於一直沒有太過於繁重的任務,於是便給分配了驅動開發的任務,之前一直不明白驅動開發和普通的嵌入式開發到底有什麼區別,然後有沒有經過系統的學習,於是就一直愣在那裡。不過慢慢的還是經過查資料,雖然 沒有編寫出來,但是對於系統的一些東西學習的終於有了一定的了解,感覺這個十分的重要,也為了給自己...
Window下開發環境安裝和Hello World
ios培訓 我的c語言筆記,期待與您交流 在ios開發中,objective c是在c語言的基礎上的擴充套件,是一種物件導向的程式語言。並依次進行安裝,安裝路徑最好是在根目錄下沒有中文以及空格的資料夾中,我的安裝路徑是d gnustep 2.啟動shell 開啟開始 程式 gnustep shell...
Window下開發環境安裝和Hello World
objective c是在c語言的基礎上的擴充套件,是一種物件導向的程式語言。這裡假設讀者有物件導向的程式設計基礎。package required?stable unstable notes gnustep msys system required 0.28.1 msys mingw system...