核心模組Makefile

2021-06-21 14:24:14 字數 1128 閱讀 7641

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

endif

obj-m := hello.o表示編譯後生成hello.o模組。

$(kdir) 指定了核心原始碼的路徑,「m=」表示這是個外部模組,m=$(pwd) 指定了該模組檔案所在的路徑。

注: makefile預定義了$(pwd)變數,此處可以不必重複定義。

如果是多個原始檔編譯出乙個模組,假設模組名是test.ko,那麼源檔名不能有test.c

obj-m := test.o

test-objs := file1.o file2.o file3.o

kdir := /lib/modules/$(shell uname -r)/build

#pwd := $(shell pwd)

all:

make -c $(kdir) m=$(pwd) modules

clean:

make -c $(kdir) m=$(pwd) clean

例如:

#include 

#include 

static int hello_init(void)

static void hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

module_license("gpl");

makefile:

obj-m:=test.o

kdir =/usr/src/linux-2.6.23

pwd:=$(shell pwd)

all:

make -c $(kdir) m=$(pwd) modules

clean:

make -c $(kdir) m=$(pwd) clean

核心模組Makefile

前些天寫乙個驅動模組。竟然寫核心模組makefile時出了問題,於是將其總結下來,下次再用時拿過來改下就行了。general purpose makefile for linux kernel module by guoqingbo kern dir home gqb development lin...

核心模組 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...