如何寫Linux下編譯驅動模組的Makefile

2021-07-06 02:22:54 字數 1139 閱讀 5094

編譯驅動模組的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變數中設定的模組

ifneq ($(kernelrelease),)

obj-m := my_chaoshenbo_driver.o

else

kdir := /home/lqj/linux-2.6.32.2

all:

make -c $(kdir) m=$(pwd) modules arch=arm cross_compile=arm-linux-

clean:

endif

: dcopy  from :  

如何寫Asterisk模組(3)

在該部分你將看到如何實現 asterisk cli 命令。對 asterisk 來說,cli 是尤為重要的,無論是在進行配置 顯示狀態以及除錯都會用到。該部分將對如何寫 asterisk 模組 2 的基礎上進行新增 首先我們需要包含定義 cli命令介面的標頭檔案。include asterisk c...

編譯Linux驅動模組

xz d linux 5.7.8.tar.xz tar xf linux 5.7.8.tar cd linux 5.7.8 make menuconfig 執行make menuconfig 報錯 error 1 unable to find the ncurses package.install ...

Linux驅動模組編譯模板

hello.c檔案 include include static int hello init void static void hello exit void module init hello init module exit hello exit module author vedic mod...