Exécuter Debian i386 binaire sur Debian armel via qemu

10

J'essaie de suivre ce guide pour configurer un serveur Ventrilo sur mon SheevaPlug, exécutant Debian armel. Cette page indique que je peux utiliser QEMU pour exécuter le binaire créé pour i386 sur mon système de bras.

La configuration de qemu indique que je dois installer qemu, qemu-user et qemu-libc-i386. J'ai trouvé les deux premiers dans apt-get , mais qemu-libc-i386 n'est pas un package. J'ai donc essayé d'exécuter qemu pour exécuter le serveur ventrilo comme ceci:

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

Il semble que ce ld-linux.so.2soit la version i386 de ce que j'ai en armel ld-linux.so.3.

Je sais donc comment faire pour une distribution différente de Linux, mais il semble que je devrais être en mesure de faire fonctionner cela dans Debian s'ils le pouvaient dans leur folle distribution. Existe-t-il un package que j'obtiendrai qui installera la libc-i386 afin que je puisse le faire fonctionner (similaire à ia32-libs pour un système x64?) J'ai également essayé de copier le so.2depuis un autre système i386 et cela ne m'a pas permis nulle part.

muncherelli
la source
Concernant votre problème, si vous n'êtes pas dépendant de ce serveur VOIP, il existe des solutions de serveur VoIP de logiciels libres , certaines déjà packagées pour Debian / armel.
sr_
C'est vrai - je veux dire que je pourrais utiliser marmonnement ou quelque chose, mais c'est plus un "puis-je le faire fonctionner de cette façon" que j'ai besoin d'une solution à un problème.
muncherelli

Réponses:

4

Oui, vous pouvez exécuter des binaires x86 dans QEmu avec QEmu exécuté sur un processeur ARM. Ce sera très lent, car QEmu fait une émulation logicielle du processeur x86, et vous pouvez vous retrouver à court de RAM, mais cela peut fonctionner.

Le qemu-userpaquet contient la machine virtuelle elle-même, c'est-à-dire un émulateur d'un processeur x86 et certains périphériques matériels et un noyau Linux fonctionnant sur ce programme. (Le qemu-systempackage contient un émulateur du matériel sur lequel vous pouvez installer le système d'exploitation de votre choix.) Vous devez toujours remplir la machine virtuelle avec un environnement d'exécution, y compris /lib/ld-linux.so.2(le chargeur dynamique, nécessaire pour exécuter tout exécutable lié dynamiquement) et un tas de bibliothèques. C'est ce que qemu-libc-i386propose le package sur Optware. Il est quelque peu similaire à celui des ia32-libssystèmes amd64, mais c'est beaucoup plus simple car un processeur amd64 peut exécuter les binaires i386 en natif; ici, vous devez avoir les bibliothèques à l'intérieur de la machine virtuelle x86.

Vous pouvez essayer de récupérer le qemu-libc-i386package d'Optware. Le format du package Optware est très proche de celui de Debian, vous pouvez donc convertir l'ipk en deb manuellement:

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 

Je ne garantis pas que cela fonctionnera. Vous devrez peut-être vous assurer que les versions de QEmu correspondent.

Si l'installation de l'ipk modifié ne fonctionne pas, essayez de reproduire son contenu sur votre système. Décompressez data.tar.gzquelque part (ou récupérez les mêmes fichiers d'un autre système x86), voyez ce que fait le postinstscript control.tar.gzet fournissez les chemins d'accès appropriés qemu-i386.

Gilles 'SO- arrête d'être méchant'
la source