arm-eabi-gcc: バイナリを実行できません。

arm-eabi-gcc: バイナリを実行できません。

AOSP 5.1.1(Nexus 7 - Grouper)で特別にROMをビルドしようとしています。ところが先ほどカーネルをビルドしてこの部分で詰まっていました。

次のコマンドはうまく機能します。make tegra3_android_defconfig 作成時に問題が始まります。make -j4

衝突が発生し、次のように言います。

Fahads-MBP:tegra Fahad$ make -j4
/volumes/untitled/tegra/../WORKING_DIRECTORY/prebuilds/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-gcc:/volumes/untitled/tegra/../WORKING_DIRECTORY/prebuilds/ gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-gcc: バイナリを実行できません。
      CHKを含む/linux/version.h
      CHKを含む/生成/utsrelease.h
      UPDを含む/生成/utsrelease.h
      HOSTCCスクリプト/基本/fixdep
      include/generated/mach-types.hの生成
      CCコア/バウンド
    /bin/sh: /volumes/untitled/tegra/../WORKING_DIRECTORY/prebuilds/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-gcc: バイナリファイルを実行できません。
    make[1]: *** [カーネル/バウンド.s] エラー 126
    make: *** [prepare0] エラー 2

    #### makeがいくつかのターゲットを構築できませんでした(2秒)####

私はコマンドを実行しました

chmod 777 ARM-eabi-gcc

そして

chmod +x arm-eabi-gcc

しかし、まだ動作していません。同じバイナリエラーを実行できません。どんな提案がありますか?

ベストアンサー1

「バイナリを実行できません」は権限に関連していないのでchmod役に立ちません。

(ああ、絶対に使用しないでくださいchmod 777。これは決して解決策ではありません。何かをしようとしていますが、エラーが「Permission Denied」の場合は、実行権限を追加してください。chmod a+x

このメッセージは、カーネルが有効なプログラム形式で認識されないバイナリファイル(スクリプトではない)があることを意味します。ディレクトリ名によると、linux-x86これはx86実行可能ファイルです。

ヒントを見ると、ARMタブレット自体からカーネルを構築したいようです。 ARMプロセッサではx86実行可能ファイルを実行できません。 Androidツリーには存在しないARM用のコンパイラバイナリが必要です。最も簡単な解決策は、PCで構築することです。本当にタブレットでビルドしたい場合は、適切なコンパイラバイナリを入手してください(正しいlibcの場合、ARMプラットフォームにはさまざまなABIがあるため、正しいABIを識別するのは少し難しいかもしれません)。

おすすめ記事