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


10

このガイドに従って、Debian armelを実行しているSheevaPlugにVentriloサーバーをセットアップしようとしています。このページでは、QEMUを使用してi386用に作成されたバイナリを私の腕のシステムで実行できると述べています。

qemuの設定では、qemu、qemu-user、qemu-libc-i386をインストールする必要があると書かれています。最初の2つはapt-getで見つかりましたが、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をインストールして実行できるようにするためのパッケージはありますか(x64システムのia32-libsに似ていますか?)so.2別のi386システムからもコピーしようとしましたが、取得できませんでしたどこでも。


問題に関しては、この VOIPサーバーに依存していない場合は、フリーソフトウェアのVoIPサーバーソリューションがあり、一部はすでにDebian / armel用にパッケージ化されています。
sr_ 2012

そうです、私はつぶやきか何かを使うことができるということを意味しますが、問題の解決策を必要とするよりも、「このように動作させることができますか?」
muncherelli 2012

回答:


4

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

qemu-userパッケージには、つまり、x86プロセッサのエミュレータといくつかのハードウェアデバイスとそのharwdare上で実行されているLinuxカーネル、仮想マシン自体が含まれています。(qemu-systemパッケージには、選択したオペレーティングシステムをインストールできるハードウェアだけのエミュレーターが含まれています。)/lib/ld-linux.so.2(ダイナミックローダー、動的にリンクされた実行可能ファイルを実行するために必要な)などのランタイム環境を仮想マシンに入力する必要があります。そしてたくさんのライブラリ。これはqemu-libc-i386、Optware のパッケージが提供するものです。ia32-libsamd64システムと多少似ていますが、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システムから同じファイルを取得し)、postinstスクリプトの内容を確認control.tar.gzし、への適切なパスを指定しqemu-i386ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.