Esecuzione del binario Debian i386 su Debian armel tramite qemu


10

Sto cercando di seguire questa guida per configurare un server Ventrilo sul mio SheevaPlug, con Debian armel. Questa pagina afferma che posso usare QEMU per eseguire il binario creato per i386 sul mio sistema arm.

La configurazione di qemu dice che devo installare qemu, qemu-user e qemu-libc-i386. Ho trovato i primi due in apt-get , ma qemu-libc-i386 non è un pacchetto. Quindi ho provato a eseguire qemu per eseguire il server ventrilo in questo modo:

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

Sembra che ld-linux.so.2sia la versione i386 di quello che ho in Armel come ld-linux.so.3.

Quindi so come fare per una diversa distribuzione di Linux, ma sembra che dovrei riuscire a farlo funzionare in Debian se potessero nella loro folle distribuzione. Esiste un pacchetto che posso ottenere che installa libc-i386 in modo da poterlo eseguire (simile a ia32-libs per un sistema x64?) Ho provato anche a copiare il so.2da un altro sistema i386 e che non mi ha procurato dovunque.


Per quanto riguarda il tuo problema, se non dipendi da questo server VOIP, ci sono soluzioni VoIP per server di software libero , alcune già confezionate per Debian / armel.
sr_

Giusto, intendo dire che potrei usare la mummia o qualcosa del genere, ma è più un "posso farlo funzionare in questo modo" che ho bisogno di una soluzione a un problema.
Muncherelli,

Risposte:


4

Sì, è possibile eseguire binari x86 in QEmu con QEmu in esecuzione su un processore ARM. Sarà molto lento, perché QEmu esegue l'emulazione software del processore x86 e potresti trovarti a corto di RAM, ma può funzionare.

Il qemu-userpacchetto contiene la macchina virtuale stessa, ovvero un emulatore di un processore x86 e alcuni dispositivi hardware e un kernel Linux in esecuzione su quella harwdare. (Il qemu-systempacchetto contiene un emulatore del solo hardware su cui è possibile installare il sistema operativo di propria scelta.) È comunque necessario popolare la macchina virtuale con un ambiente di runtime, incluso /lib/ld-linux.so.2(il caricatore dinamico, necessario per eseguire qualsiasi eseguibile collegato dinamicamente) e un mucchio di biblioteche. Questo è ciò qemu-libc-i386che fornisce il pacchetto su Optware. È in qualche modo simile ai ia32-libssistemi amd64, ma è molto più semplice perché un processore amd64 può eseguire nativamente i binari i386; qui è necessario disporre delle librerie all'interno della VM x86.

Puoi provare a prendere il qemu-libc-i386pacchetto da Optware. Il formato del pacchetto Optware è molto vicino a quello di Debian, quindi puoi convertire manualmente l'ipk in un 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 

Non garantisco che funzionerà. Potrebbe essere necessario assicurarsi che le versioni di QEmu corrispondano.

Se l'installazione dell'ipk modificato non funziona, prova a riprodurne il contenuto sul tuo sistema. Disimballare data.tar.gzda qualche parte (o ottenere gli stessi file da qualche altro sistema x86), vedere cosa fa lo postinstscript control.tar.gze fornire i percorsi corretti a qemu-i386.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.