作業上の理由から、私はAndroidプラットフォーム用のLKMを開発する必要があります。私はAndroidModule.cをどのようにクロスコンパイルするのか、またそのためにどのようなツールを使うべきかについてはあまりよく分かりません。コンパイラにライブラリをリンクするように指示するために、Androidのソースコードが必要になると思いますか? Android用のARMコンパイラもダウンロードする必要があります。 私はこれら3つのことで十分だと思います(LKMコードはC、Androidソースコード、アンドロイド用ARMコンパイラ)。 問題は、Android用のLKMをコンパイルする方法を説明するチュートリアルが見つかりません。 私はそれについてもっと詳しく知ってうれしく思います。Androidプラットフォーム用クロスコンパイルLKMモジュール
2
A
答えて
0
下部にAndroid URLをお試しください。ソースをビルドする方法の詳細な手順が記載されています。
最後に、this URLの最終ビルドに従ってください(これは夢のリリース用です)。私はこの手順を他のリリースにも適しているはずです。
0
Thisが役立ちます。
モジュールをクロスコンパイルするには、カーネルソースコードとAndroidツールチェーンにあるARMコンパイラが必要です。あなたは、カーネルソースの場所としてARMコンパイラとKERNELSRC
としてCROSS_COMPILE
を設定し、作る呼び出すことによって、コンパイル後
obj-m:= AndroidModule.o
all: module
module:
$(MAKE) -C $(KERNELSRC) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KERNELSRC) SUBDIRS=$(PWD) clean
@rm -f Module.symvers Module.markers modules.order
の線に沿ってMakefileの何かをする必要があります。ここに私が0xdriodで使うコマンドがあります。
CROSS_COMPILE=~/beagle-eclair/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- ARCH=arm KERNELSRC=~/kernel make
1
ここでは、Android用のモジュールを作成するために使用するメイクファイルを示します。 私は、あなたがどこかでlinuxのソースのコピーを持っていると仮定していて、あなたの携帯電話用のカーネルを構築しています。あなたのモジュールディレクトリで 私はこのようなMakefileを置く:
ifneq ($(KERNELRELEASE),)
obj-m := mymod.o
else
COMPILER ?=/pathtoandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
CROSS_COMPILE ?=$(COMPILER)
ARCH ?=arm
KERNELDIR ?= /home/kernel/androidkerneldir/
PWD := $(shell pwd)
EXTRACFLAGS += -I$(PWD)/somedirectory/shomewhere
default:
$(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=$(ARCH) CROSS_COMPILE=$(COMPILER) EXTRA_CFLAGS=$(EXTRACFLAGS) modules
clean:
rm *.o *.ko
install:
adb push mymod.ko /system/lib/modules
これはあなたのためにそれを行う必要があります。/systemディレクトリへの書き込み権限があることを確認してください。
関連する問題
- 1. クロスコンパイル "Android用ワイヤレスツール"
- 2. android GMPクロスコンパイル
- 3. Android ffmpegをクロスコンパイル
- 4. LKMのELFセクションを使用
- 5. Android用Google+プラットフォーム - NoClassDefFoundError:com.google.android.gms.samples.plus.SignInActivity
- 6. ARM用クロスコンパイルocamlアプリ
- 7. Androidプラットフォームのブレークポイントプラットフォームソース
- 8. Androidプラットフォームのゲームレベルエディタ
- 9. Windows用Mac用Pythonクロスコンパイル
- 10. クロスコンパイル
- 11. AndroidプラットフォームでJPEGImageDecoderを使用する
- 12. Netbeansプラットフォームのアクセス他のモジュールのDTD
- 13. Windows用のMacでのクロスコンパイル
- 14. ARMアーキテクチャ用のクロスコンパイルportaudio
- 15. QTcreatorクロスコンパイル
- 16. qtクロスコンパイル
- 17. cmakeクロスコンパイル
- 18. 共通のAndroid SDKプラットフォーム
- 19. Androidプラットフォームのデフォルトスタイルの処理
- 20. EFを使用したモジュールを使用したWebプラットフォームの設計4.3
- 21. カーネルモジュール(LKM)を使用したシステムコールの追加
- 22. Yoctoビルドに単一のLKMを追加
- 23. GNU/Libtoolのクロスコンパイル
- 24. MinGWクロスコンパイル(Linux)
- 25. golang 1.6クロスコンパイル
- 26. クロスコンパイルPythonエクステンション
- 27. クロスコンパイルのライブラリ(armel)
- 28. クロスコンパイル・ホスト・ターゲットと
- 29. Windowsでのクロスコンパイル?
- 30. Perlクロスコンパイル:MAKE