1.先寫個核心**demo;
2.寫對應的makefile;
3.make編譯**;
4.用insmod命令插入編譯好的.ko模組;(need :sudo)
5.用lsmod,檢視插入模組是否成功;
6.用dmesg指令檢視剛剛插入模組在核心中的列印資訊;
7.用rmmod解除安裝掉剛剛插入的模組;(need :sudo)
8.執行第6步操作,檢視列印資訊。
核心**如下:
//#include #include #include #include //編寫核心模組要新增
static int __init lkm_init(void) //入口函式
static void __exit lkm_exit(void) //出口函式
module_init(lkm_init); //入口點
module_exit(lkm_exit); //出口點
module_license("gpl"); //許可證宣告
makefile**如下:
obj-m:=helloworld.o
current_path:=$(shell pwd)
linux_kernel:=$(shell uname -r)
linux_kernel_path:=/usr/src/linux-headers-$(linux_kernel)
all:
make -c $(linux_kernel_path) m=$(current_path) modules
clean:
make -c $(linux_kernel_path) m=$(current_path) clean
驅動版的「Hello World」
我們學習程式設計,都是從 hello world 開始的,驅動程式也不例外,今天我就寫乙個驅動版的 hello world 來熱熱身,目的希望大家能對驅動程式的基本框架有所了解。驅動程式分為2類,乙個是kernel模式驅動,另乙個是windows模式驅動,2種模式本質是相同,但細節不同,本文介紹的是...
helloworld驅動程式
mkdir opt embedsky modules cd modules mkdir hello cd hello vim hello.c hello 驅動 如下 hello.c qudong duopin 2012.4.22 include include module license gpl ...
驅動學習筆記 Hello World !
編譯環境用xp下vc6 ddk 新建乙個資料夾當作工程目錄,路徑是e lingdux 從別的工程copy過來兩個檔案,乙個是makefile,它用來指定檔案之間的依賴關係,確定專案中哪些檔案時需要重新編譯的,那些事已經編譯過的。裡面的內容不用改,直接預設就ok 另乙個是source,它用來儲存一些配...