0

私はアイデアがありません。私はすべてを正しくやったような気がします。LiME を使用して Android からメモリ イメージをキャプチャしようとしています。私が次のことをすると...

   $ cd $my_android_ndk_path/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/
   $ make ARCH=arm CROSS_COMPILE=arm-eabi- modules_prepare

それは返す

    make: *** No rule to make target `modules_prepare'.  Stop.

カーネル ソース (.config がある場所) から同じコマンドを入力した場合 $ make ARCH=arm CROSS_COMPILE=path/to/android_ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin /arm-eabi-modules_prepare

それは返す

    make: /path/to/android_ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-eabi-gcc: Command not found
    CHK     include/linux/version.h
    make[1]: `include/asm-arm/mach-types.h' is up to date.
    CHK     include/linux/utsrelease.h
    SYMLINK include/asm -> include/asm-arm
    CC      kernel/bounds.s

ディレクトリが正しいと確信しています。誰かが私が間違っている可能性があることを知っていますか? 私はndkに特定のツールを使用していません。ndkとsdkを別々に解凍し、JDKをインストールしました。すべてが機能するはずですが、機能しません。

4

2 に答える 2

1

arm-eabi-gcc(コマンド:file / arm-eabi-gcc)コンパイラとマシン(32ビットまたは64ビット)の互換性を確認しましたか?arm-eabi-gccが32ビットマシンと互換性がある場合、64ビットマシンで「make:arm-eabi-gcc:Command not found」などのエラーを防ぐには、パッケージ「ia32-libs」(コマンド:sudo apt-get install ia32-libs)。

于 2013-03-19T10:54:27.953 に答える
0

modules_prepareカーネル準備ルーチンです。その目的は、後でそのカーネル ソース ツリーに対してカーネル モジュールをビルドできるように、十分な量のヘッダー ファイルが存在することを確認することです。ご覧のとおり、カーネルには自動生成されたファイルがいくつかあり、少なくとも を実行しないmodules_prepareと、カーネル モジュールのコンパイルはできません。

このため、カーネル ツリーから modules_prepare を実行するのは正しいアクションです。クロス コンパイラから実行しても、何をしようとしているのか理解できないため意味がありません。

次のようにクロス コンパイラを PATH に追加して、作業を楽にすることをお勧めします。

PATH=$PATH:$my_android_ndk_path/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/
cd <kernel directory>
make ARCH=arm CROSS_COMPILE=arm-eabi- modules_prepare

つまり、これは... modules_prepare は、モジュールをビルドする準備の最初のステップにすぎません。カーネル モジュール(LiME? よくわかりません)をビルドしようとしている場合は、カーネル モジュールをビルドするための手順に従う必要があります。

編集:

ビルドしているカーネル モジュール (lime-forensics) がわかったので、そのSVN ソースを確認できます。Makefile は、クロスコンパイルではなく、ローカル コンピューター用にビルドしていることを想定しています。

以下を変更します。

default:
        $(MAKE) -C /lib/modules/$(KVER)/build M=$(PWD) modules

default:
        $(MAKE) -C <your Android kernel> ARCH=arm CROSS_COMPILE=arm-eabi- M=$(PWD) modules

それはおそらくあなたをさらに先に進めるでしょう。

于 2013-01-16T16:02:17.840 に答える