在單獨編譯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 ...