qemuを介してDebian armelでDebian i386バイナリを実行する

qemuを介してDebian armelでDebian i386バイナリを実行する

フォローしようとしています。このガイドDebian armel を実行する SheevaPlug に Ventrilo サーバーを設定します。このページでは、QEMUを使用してArmシステムでi386用に作成されたバイナリを実行できることを説明します。

qemu設定qemu、qemu-user、およびqemu-libc-i386をインストールする必要があるとします。最初の2つを見つけました。適切、しかしqemu-libc-i386パッケージではありません。だから私は次のようにVentriloサーバーを実行するためにqemuを実行してみました。

# qemu-i386 ./ventrilo_srv
/lib/ld-linux.so.2: No such file or directory

ld-linux.so.2これはarmelのi386バージョンのようですld-linux.so.3

だから私は他のLinuxディストリビューションでこれを行う方法を知っていますが、彼らがクレイジーディストリビューションで実行できるなら、Debianでも実行できるはずです。インストールできるパッケージを入手できます。libc-i386これにより、実行することができます(例:ia32ライブラリx64システムの場合? ) また、他のi386システムからコピーしようとしましたが、so.2何の効果もありませんでした。

答え1

はい、QEmuでx86バイナリを実行できます。QEmuはARMプロセッサで実行されます。 QEmuはx86プロセッサのソフトウェアエミュレーションを実行するため、非常に遅く、RAMが不足する可能性がありますが、動作します。

このqemu-userパッケージには、仮想マシン自体、x86プロセッサ、および一部のハードウェアデバイスのエミュレータ、およびそのハードウェアで実行されるLinuxカーネルが含まれています。 (qemu-systemパッケージには、選択したオペレーティングシステムをインストールできるハードウェアエミュレータが含まれています。)まだ/lib/ld-linux.so.2(動的にリンクされた実行可能ファイルを実行するために必要なダイナミックローダ)と、複数のランタイム環境で仮想マシンを入力する必要があります。図書館。これがqemu-libc-i386Optwareのパッケージが提供するものです。 amd64 システムとやや似ていますia32-libsが、amd64 プロセッサが基本的に i386 バイナリを実行できるため、はるかに簡単です。ここでは、x86 VMにライブラリが必要です。

捕まえようとすることもできますqemu-libc-i386Optwareのソフトウェアパッケージ。 Optwareパッケージ形式はDebianによく似ているため、ipkをdebに手動で変換できます。

mkdir tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/qemu-libc-i386_2.3.6-1_arm.ipk
tar xzf qemu-libc-i386_2.3.6-1_arm.ipk
ar rc qemu-libc-i386_2.3.6-1_arm.deb debian-binary control.tar.gz data.tar.gz 

私はこれが動作することを保証しません。 QEmuのバージョンが一致することを確認する必要があるかもしれません。

修正されたipkインストールが機能しない場合は、その内容をシステムにコピーしてみてください。どこかに解凍しdata.tar.gz(または他のx86システムから同じファイルをインポートし)、スクリプトが何をしているのかpostinstcontrol.tar.gz確認してくださいqemu-i386

答え2

私のPC i3​​86をコピーしてARMデバイスの問題を解決しました。ld-linux.so.2次のように:

scp /lib/ld-linux.so.2 [email protected]:/lib

次に、必要な共有ライブラリをすべてコピーします。私の場合は、コピーする前にデバイス内の新しいフォルダにすべてクリーンアップしました。

mkdir /lib/i386-linux-gnu
scp /usr/lib/i386-linux-gnu/libstdc++.so.6 [device]:/lib/i386-linux-gnu
scp /usr/lib/i386-linux-gnu/libgcc_s.so.1 [device]:/lib/i386-linux-gnu
scp /usr/lib/i386-linux-gnu/libc.so.6 [device]:/lib/i386-linux-gnu
scp /usr/lib/i386-linux-gnu/libm.so.6 [device]:/lib/i386-linux-gnu

関連情報