Androidでlinux kernelドライバモジュールを単独コンパイルします。
2046 ワード
Androidでlinux kernelドライバモジュールを単独コンパイルします。
本論文は参考にしましたhttp://blog.csdn.net/qq1084283172/article/details/56958136
2018-9-8再度編集
Makefile
注意事項
1.KERNELDIRの値について
もしあなたの「カーネル」コンパイルシステムが中間ファイルを生成するなら、outパスではなく、次のような経路である。
2.ARCHとCROSS_についてCOMPILEの値
もしあなたのARCHがarm 64ではないなら、あなたのCROSS_COMPILEの値も変えます。具体的な経路は大体同じです。ここでは並ばないです。
3.署名の問題
Androidの駆動モジュールはサインをオンしました。このように直接コンパイルしてもいいです。直接使うことはできません。具体的にどのように署名しますか?私のこのブログLinux kenelモジュールのカーネル署名問題の解決方法を見てください。
End
最後に、makeコマンドを使用して正確なハロー.koファイルをコンパイルすることができます。
本論文は参考にしましたhttp://blog.csdn.net/qq1084283172/article/details/56958136
2018-9-8再度編集
Makefile
ifneq ($(KERNELRELEASE),)
obj-m += hello.o
else
KERNELDIR ?= /out/target/product//obj/KERNEL_OBJ/
PWD ?= $(shell pwd)
ARCH = arm64
CROSS_COMPILE=/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
.PHONY: modules clean
modules:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
# ,
clean:
@rm -rf *.o *.order *.symvers *.mod.* .*.o.cmd .*.mod.o.cmd .*.ko.cmd .tmp_versions *.ko
endif
プロジェクトnameは商品の名前です。注意事項
1.KERNELDIRの値について
もしあなたの「カーネル」コンパイルシステムが中間ファイルを生成するなら、outパスではなく、次のような経路である。
<aosp_path>/kernel
KERNELDIRの値はoutの下ではなく経路に変えます。2.ARCHとCROSS_についてCOMPILEの値
もしあなたのARCHがarm 64ではないなら、あなたのCROSS_COMPILEの値も変えます。具体的な経路は大体同じです。ここでは並ばないです。
3.署名の問題
Androidの駆動モジュールはサインをオンしました。このように直接コンパイルしてもいいです。直接使うことはできません。具体的にどのように署名しますか?私のこのブログLinux kenelモジュールのカーネル署名問題の解決方法を見てください。
End
最後に、makeコマンドを使用して正確なハロー.koファイルをコンパイルすることができます。