Ejecutar el binario i386 de Debian en Debian Armel a través de qemu

10

Estoy tratando de seguir esta guía para configurar un servidor Ventrilo en mi SheevaPlug, ejecutando Debian Armel. Esta página indica que puedo usar QEMU para ejecutar el binario que se hizo para i386 en mi sistema de brazo.

La configuración de qemu dice que necesito instalar qemu, qemu-user y qemu-libc-i386. Encontré los dos primeros en apt-get , pero qemu-libc-i386 no es un paquete. Así que intenté ejecutar qemu para ejecutar el servidor ventrilo de esta manera:

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

Parece que ld-linux.so.2es la versión i386 de lo que tengo en armel como ld-linux.so.3.

Así que sé cómo hacerlo para una distribución diferente de Linux, pero parece que debería poder ejecutar esto en Debian si pudieran en su loca distribución. ¿Hay un paquete que pueda obtener que instale el libc-i386 para que pueda ejecutar esto (similar a ia32-libs para un sistema x64?) Intenté también copiar el so.2de otro sistema i386 y eso no me consiguió en cualquier sitio.

muncherelli
fuente
Con respecto a su problema, si no depende de este servidor VOIP, existen soluciones de servidor VoIP de software libre , algunas ya empaquetadas para Debian / armel.
Sr_
Correcto, quiero decir que podría usar un murmullo o algo así, pero es más un "¿puedo hacer que funcione de esta manera" de lo que necesito una solución a un problema.
muncherelli

Respuestas:

4

Sí, puede ejecutar binarios x86 en QEmu con QEmu ejecutándose en un procesador ARM. Será muy lento, porque QEmu realiza la emulación de software del procesador x86, y es posible que tenga poca RAM, pero puede funcionar.

El qemu-userpaquete contiene la máquina virtual en sí, es decir, un emulador de un procesador x86 y algunos dispositivos de hardware y un kernel de Linux que se ejecuta en ese hardware. (El qemu-systempaquete contiene un emulador de solo el hardware en el que puede instalar el sistema operativo de su elección). Todavía necesita llenar la máquina virtual con un entorno de tiempo de ejecución, que incluye /lib/ld-linux.so.2(el cargador dinámico, necesario para ejecutar cualquier ejecutable vinculado dinámicamente) y un montón de bibliotecas. Esto es lo que proporciona el qemu-libc-i386paquete en Optware. Es algo similar a los ia32-libssistemas amd64, pero eso es mucho más simple porque un procesador amd64 puede ejecutar binarios i386 de forma nativa; Aquí necesita tener las bibliotecas dentro de la VM x86.

Puedes intentar agarrar el qemu-libc-i386paquete de Optware. El formato del paquete Optware es muy similar al de Debian, por lo que puede convertir el ipk a un deb manualmente:

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 

No garantizo que esto funcione. Es posible que deba asegurarse de que las versiones de QEmu coincidan.

Si la instalación del ipk modificado no funciona, intente reproducir su contenido en su sistema. Desempaquete en data.tar.gzalgún lugar (u obtenga los mismos archivos de algún otro sistema x86), vea lo que hace el postinstscript control.tar.gzy proporcione las rutas adecuadas qemu-i386.

Gilles 'SO- deja de ser malvado'
fuente