linux下驅動模組化編譯與裝載、解除安裝
我們在修改完驅動後,如果每次都需要重新編譯核心燒錄的話,太過麻煩了,我們可以通過nfs來掛載根檔案系統、然後驅動程式單獨編譯,再將.ko檔案copy到根檔案系統,動態裝載上去的方式,來減少這種麻煩。具體方法我們看下面。
我們將驅動源程式檔案單獨放到乙個資料夾,然後新建乙個makefile檔案,編輯輸入類似於如下的內容,這是mini2440 lcd背光驅動的makefile。
在上面的原始碼中,kerneldir是你的核心原始碼目錄,因為驅動需要使用核心的標頭檔案和鏈結庫,因此是需要指定驅動裝載核心相應的原始碼目錄的。obj-m後面的就是驅動原始碼所生成的.o檔案了,生成多個檔案的需要在這裡全部新增上去。ifeq ($(kernelrelease),)
# kerneldir ?= /your/target/source/directory/
kerneldir ?=/home/eurphan/learn/arm9learn/kernel/linux-3.18.108
pwd := $(shell pwd)
modules:
$(make) -c $(kerneldir) m=$(pwd) modules
modules_install:
$(make) -c $(kerneldir) m=$(pwd) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.phony: modules modules_install clean
else
obj-m := mini2440_backlight.o
endif
驅動有了,我們需要裝載到核心上去,我們需要將驅動編輯生成的.ko檔案cp到nfs檔案系統中,然後在開發板控制台中通過insmod命令裝載驅動,解除安裝驅動用rmmod。如果驅動裝載後在/dev目錄中沒有自動生成裝置節點檔案的,我們需要通過mknod命令在/dev中手動建立裝置檔案,示例如下:
在上面的命令中,backlight是裝置檔名,c代表是字元裝置,250是主裝置號,0是次裝置號。cd /dev
mknod backlight c 250 0
linux下驅動模組化編譯,動態載入以及解除安裝
linux驅動模組化編譯 載入 解除安裝 2010 8 27 硬體平台 omapl 138 軟體平台 linux2.6.32 ubuntu 步驟 1 編寫first driver hello.c檔案,將其放在 linux2.6.32 drivers char路徑下 2 在 linux2.6.32 d...
linux下驅動模組化編譯,動態載入以及解除安裝
linux 驅動模組化編譯 載入 解除安裝 2010 8 27 硬體平台 omapl 138 軟體平台 linux2.6.32 ubuntu 步驟 1 編寫 first driver hello.c 檔案,將其放在 linux2.6.32 drivers char 路徑下 在 linux2.6.32...
linux驅動之模組化程式設計
區別於直接編譯原始碼,可以快速編譯功能 以模組的形式新增到linux系統中,便於測試,而不是反覆修復原始碼進行編譯。包含標頭檔案,並通過module license gpl 告訴核心模組遵從gpl協議,這個事情必須要做。module author cyg 指定模組的作者,可不寫。編輯模組的入口函式,...