驅動模組編譯Makefile

2022-08-15 03:12:21 字數 1145 閱讀 9673

驅動模組編譯makefile如下:

# 1

. 使用不同的開發板核心時, 一定要修改kern_dir# 2

. kern_dir中的核心要事先配置、編譯, 為了能編譯核心, 要先設定下列環境變數:

# 2.1 arch, 比如: export arch=arm64

# 2.2 cross_compile, 比如: export cross_compile=aarch64-linux-gnu-#

2.3 path, 比如: export path=$path:/home/book/100ask_roc-rk3399-pc/toolchain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

# 注意: 不同的開發板不同的編譯器上述3個環境變數不一定相同,

# 請參考各開發板的高階使用者使用手冊

kern_dir = /home/book/100ask_roc-rk3399-pc/linux-4.4

all:

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

clean:

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

rm -rf modules.order

obj-m += hello_drv.o

make -c $(kern_dir) m='pwd' modules,這句是makefile的規則:-c選項的作用是指將當前工作目錄轉移到你所指定的位置,當make的目標為all時,

-c $(kern_dir) 指明跳轉到核心原始碼目錄下讀取那裡的makefile。

m=『pwd' 表明然後從核心makefile中返回到當前目錄繼續讀入、執行當前的makefile。m是核心根目錄下的makefile中使用的變數,

"m="選項的作用是,當使用者需要以某個核心為基礎編譯乙個外部模組的話,需要在make modules命令中加入"m=dir",程式會自動到你所指定的dir目錄中查詢模組原始碼,將其編譯,生成ko檔案。

m=『pwd』這句話是用來制定我們編譯的驅動的路徑。這句可以這樣來寫pwd:=$(shell pwd)  m='pwd', 或者 m=$(shell pwd)。

Makefile編譯核心驅動模組入門 一

makefile編譯核心驅動模組入門 一 閱讀本文的前提是,讀者已經了解makefile的編寫方式,請讀者注意。本文將介紹編譯核心最簡單的makefile編譯方式,為了更直接地討論將核心驅動模組定位為最簡單的hello.ko。故在此只討論makefile的內容,不涉及核心驅動的有關內容。makefi...

編譯模組 Makefile

在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...

編譯驅動Makefile解析

ubuntu的核心原始碼樹,如果要編譯在ubuntu中安裝的模組就開啟這2個 kern ver shell uname r kern dir lib modules kern ver build 開發板的linux核心的原始碼樹目錄 kern dir root driver kernel obj m...