Andriod編譯核心模組 ko

2021-06-10 07:14:24 字數 906 閱讀 6923

在單獨編譯android的核心模組之前,必須要成功配置編譯過整個android系統(至少要編譯成功boot.img),生成正確的out目錄。

1.編寫makefile。按照以下格式編寫makefile。

1 obj-m += aaa.o

2 #obj-m += abc.o

3 #abc-objs := aaa.o bbb.o ccc.o

4 5 kdir := $/obj/kernel_obj/

6 7 

8 pwd := $(shell pwd)

9 10 all:

11         $(rm) -rf $(pwd)/scripts

12         ln -s $(kdir)/scrips $(pwd)/scripts

13         $(make) -c $(kdir) m=$(pwd) arch=arm cross_compile=arm-eabi- $(kdir).config modules

14 15 install:all

16         $(make) -c $(kdir) m=$(pwd) modules_install

17 18 clean:

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

注意:1.若模組中只包含乙個c檔案,用第1行來關聯;若模組中包含乙個以上的c檔案,用第2、3行來關聯,把第1行注釋掉。

2.$是andriod原始碼中的目標生成目錄。如:android/out/target/product/***/obj

2. make

把makefile和模組中用到的c檔案和標頭檔案放在同一目錄,執行make命令,即可在當前目錄下生成核心模組***.ko

Andriod單獨編譯模組

1.設定環境變數 source build envsetup.sh 或.build envsetup.sh 注意 是source執行,不是直接.執行,同source 區別請參考 2.編譯指定模組 mmm module path 注 module path 是模組所在的路徑 編譯後的模組路徑 可執行檔...

核心ko模組strip使用

編譯乙個核心時,習慣性的在install目標下加了命令 strip strip all remove section note remove section comment test.ko 結果在insmod test.ko時出現錯誤 test module has no symbols strip...

linux 系統 ko模組編譯

今天整理以前筆記,發現曾經裡面有乙個makefile檔案。仔細一看是以前實習做linux核心程式設計時候寫的模組makefile。剛好我電腦也有linux系統,就拿來回顧一下。寫個my.c和乙個makefile檔案,然後make編譯一下,就成功了,生成my.ko 再載入一下insmod my.ko ...