首先要編寫驅(qū)動文件,在編寫Makefile文件 ,通過make生成 .ko文件,最后加載到系統(tǒng)中去,加載命令為insmod hello.ko ?,查看命令 lsmode ,卸載命令 rmmod hello
編寫驅(qū)動文件時注意:
1. 必須遵循gpl協(xié)議,否則內(nèi)核會不識別,MODULE_LICENSE("Dual BSD/GPL");具體可以去百度,這個是必須要有的,一般寫在末尾。MODULE_AUTHOR("iTOPEET_dz");聲明作者,可寫可不寫。當(dāng)然還有其他,按你自己需要去加
2. module_init(hello_init);
module_exit(hello_exit);聲明開始和結(jié)束函數(shù)。
編寫Makefile文件時需要注意:

第一個紅框,必須和你的驅(qū)動模塊名字相同。
第二個紅框表明你要用的內(nèi)核和路徑。
3.簡單示例
#!/bin/bash
#通知編譯器我們要編譯模塊的哪些源碼
#這里是編譯itop4412_hello.c這個文件編譯成中間文件mini_linux_module.o
obj-m += mini_linux_module.o
#源碼目錄變量,這里用戶需要根據(jù)實際情況選擇路徑
#作者是將Linux的源碼拷貝到目錄/home/topeet/android4.0下并解壓的
KDIR := /home/topeet/android/iTop4412_Kernel_3.0
#當(dāng)前目錄變量
PWD ?= $(shell pwd)
#make命名默認(rèn)尋找第一個目標(biāo)
#make -C就是指調(diào)用執(zhí)行的路徑
#$(KDIR)Linux源碼目錄,作者這里指的是/home/topeet/android4.0/iTop4412_Kernel_3.0
#$(PWD)當(dāng)前目錄變量
#modules要執(zhí)行的操作
all:
? ? ? ? make -C $(KDIR) M=$(PWD) modules
#make clean執(zhí)行的操作是刪除后綴為o的文件
clean:
? ? ? ? rm -rf *.o