核心模組Makefile

2021-06-19 14:25:43 字數 863 閱讀 2266

前些天寫乙個驅動模組。竟然寫核心模組makefile時出了問題,於是將其總結下來,下次再用時拿過來改下就行了。

#general purpose makefile for linux kernel module by guoqingbo

kern_dir = /home/gqb/development/linux-kernel-2.6.37

#kern_dir = /usr/src/$(shell uname -r)

#kern_dir = /lib/modules/$(shell uname -r)/build

all:

make -c $(kern_dir) m=$(shell pwd) modules   

clean:                                  

make -c $(kern_dir) m=$(shell pwd) modules clean

rm -rf modules.order

obj-m += ***.o

第3行kern_dir表示核心原始碼目錄,這種方式適用於嵌入式開發的交叉編譯,kern_dir目錄中包含了核心驅動模組所需要的各種標頭檔案及依賴。若在pc機開發核心模組則應使用第4、5行的寫法。

第8行中-c表示 指定進入指定的目錄即kern_dir,是核心源**目錄,呼叫該目錄頂層下的makefile,目標為modules。

m=$(shell pwd)選項讓該makefile在構造modules目標之前返回到模組源**目錄並在當前目錄生成obj-m指定的***.o目標模組。

clean這個目標表示將模組清理掉

obj-m += ***.o即指定當前目錄要生成的目標模組,然後modules目標指向obj-m變數中設定的模組

核心模組Makefile

ifneq kernelrelease obj m hello.o else kdir lib modules shell uname r build pwd shell pwd all make c kdir m pwd modules clean make c kdir m pwd clean ...

核心模組 Makefile

寫乙個核心模組的makefile模板記錄 ifneq kernelrelease obj m abc.o else kdir lib modules shell uname r build pwd shell pwd all make c kdir m pwd modules clean rm o ...

核心模組載入錯誤 Makefile

載入核心模組錯誤 insmod error inserting globalvar.ko 1 device or resource busy 問題描述 裝置號跟已有的裝置衝突了 解決方法 檢視已有裝置號 cat proc devices 修正在程式中設定的裝置號,或者改為自動分配 錯誤2 insmo...