通过qemu在Debian armel上运行Debian i386二进制文件


10

我试图按照该指南在运行Debian armel的SheevaPlug上设置Ventrilo服务器。该页面指出,我可以使用QEMU在arm系统上运行为i386制作的二进制文件。

qemu的安装程序说我需要安装qemu,qemu-user和qemu-libc-i386。我在apt-get中找到了前两个,但是qemu-libc-i386不是软件包。所以我试图运行qemu来运行ventrilo服务器,如下所示:

# 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_

正确-我的意思是我可以使用喃喃之语或其他方式,但是它比“我需要解决问题”更多的是“我能以这种方式工作”。
muncherelli 2012年

Answers:


4

是的,您可以在QEmu中运行x86二进制文件,而QEmu在ARM处理器上运行。这将非常慢,因为QEmu会对x86处理器进行软件仿真,并且您可能会发现自己的RAM不足,但是它可以正常工作。

qemu-user软件包包含虚拟机本身,即x86处理器和某些硬件设备的仿真器以及在该硬件上运行的Linux内核。(该qemu-system软件包仅包含可在其上安装所选操作系统的硬件的仿真器。)您仍然需要在运行时环境中填充虚拟机,其中包括/lib/ld-linux.so.2(动态加载程序,运行任何动态链接的可执行文件是必需的)和一堆图书馆。这就是qemu-libc-i386Optware上的软件包所提供的。它有点类似于ia32-libsamd64系统上的内容,但这要简单得多,因为amd64处理器可以本地执行i386二进制文件。在这里,您需要在x86 VM中拥有这些库。

您可以尝试qemu-libc-i386从Optware 获取软件包。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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.