3

Linux from Scratchの本に従って、ARM 上の ARM 用のツールチェーンを構築することができました。これは本の第6章までであり、ARMボード自体では問題なくさらに進むことができました. 私の質問は、準備された環境を使用して、x86_64 Fedora 16 ラップトップで第 6 章からのソフトウェアのビルドを続行できるかどうかです。すべてのバイナリをセットアップしたら、それらをラップトップにコピーし、内部で chroot して ARM ボード上にいるように感じることができると思いましたが、本のコマンドを使用しても結果は得られません。

 `# chroot "$LFS" /tools/bin/env -i  HOME=/root TERM="$TERM" PS1='\u:\w\$ 
  PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
      chroot: failed to run command `/tools/bin/env': No such file or directory`

バイナリはそこにありますが、このシステムに属していません:

 `# ldd /tools/bin/env 
      not a dynamic executable`

バイナリは本に従ってコンパイルされます: # readelf -l /tools/bin/env | grep interpreter [Requesting program interpreter: /tools/lib/ld-linux.so.3]

したがって、CC LD READELF に適切な環境変数を使用するなど、x86_64 ホストでこれらのツールを使用して ARM のビルドを続行する方法があるかどうか疑問に思います。

ありがとうございました。

4

3 に答える 3

-1

いいえ。x86 では ARM バイナリを実行できないため、その chroot に入ることができません。環境変数の量がそれを変更することはありません。

ターゲット用のファイルシステム イメージを作成し、エミュレーター (qemu-system-arm など) で実行することでプロセスを続行できる場合がありますが、それはまったく別のことです。

于 2012-07-10T21:49:02.130 に答える
-2

いいえ、少なくとも使用しないとできませんchroot。手元にあるのは、ARM ホストの ARM ターゲットを持つツールチェーンです。バイナリは、ホスト アーキテクチャと互換性のあるアーキテクチャでのみ直接実行できます。x86_64 はARM と互換性がありません。

そうは言っても、エミュレートされた環境を使用できる場合があります。qemuたとえば、ARM 用に 2 つのエミュレーション モードを提供します。ARMqemu-system-armベースのシステム全体をエミュレートするモードと、ARMqemu-armネイティブ ライブラリを使用して非 ARM ホストで ARM Linux 実行可能ファイルを実行するためのより薄いエミュレーション レイヤーを提供するモードです。

于 2012-07-10T21:53:57.843 に答える