Executando o binário Debian i386 no Debian armel via qemu

10

Estou tentando seguir este guia para configurar um servidor Ventrilo no meu SheevaPlug, executando o Debian armel. Esta página indica que eu posso usar o QEMU para executar o binário feito para o i386 no meu sistema de braço.

A instalação do qemu diz que eu preciso instalar o qemu, qemu-user e qemu-libc-i386. Encontrei os dois primeiros no apt-get , mas o qemu-libc-i386 não é um pacote. Então, tentei executar o qemu para rodar o servidor ventrilo como este:

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

Parece que ld-linux.so.2é a versão i386 do que tenho no armel como ld-linux.so.3.

Então eu sei o que fazer é para uma distribuição diferente do Linux, mas parece que eu deveria conseguir rodar isso no Debian se eles pudessem na sua louca distro. Existe um pacote que eu possa obter que instalará a libc-i386 para que eu possa executá-la (semelhante ao ia32-libs para um sistema x64?) Tentei também copiar o so.2de outro sistema i386 e isso não me pegou qualquer lugar.

muncherelli
fonte
Com relação ao seu problema, se você não depende deste servidor VOIP, existem soluções de servidor VoIP de Software Livre , algumas já incluídas no Debian / armel.
sr_ 03/03/12
Certo - quero dizer, eu poderia usar murmúrios ou algo assim, mas é mais um "posso fazê-lo funcionar dessa maneira" do que preciso de uma solução para um problema.
Muncherelli 31/03/2012

Respostas:

4

Sim, você pode executar binários x86 no QEmu com o QEmu em execução em um processador ARM. Será muito lento, porque o QEmu faz emulação de software do processador x86, e você pode ter falta de RAM, mas pode funcionar.

O qemu-userpacote contém a própria máquina virtual, ou seja, um emulador de um processador x86 e alguns dispositivos de hardware e um kernel do Linux em execução nesse harwdare. (O qemu-systempacote contém um emulador apenas do hardware no qual você pode instalar o sistema operacional de sua escolha.) Você ainda precisa preencher a máquina virtual com um ambiente de tempo de execução, incluindo /lib/ld-linux.so.2(o carregador dinâmico, necessário para executar qualquer executável vinculado dinamicamente) e um monte de bibliotecas. É isso que o qemu-libc-i386pacote do Optware fornece. É um pouco semelhante aos ia32-libssistemas amd64, mas é muito mais simples porque um processador amd64 pode executar binários i386 nativamente; aqui você precisa ter as bibliotecas dentro da VM x86.

Você pode tentar pegar o qemu-libc-i386pacote no Optware. O formato do pacote Optware é muito próximo do Debian, então você pode converter o ipk em um 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 

Não garanto que isso funcione. Pode ser necessário garantir que as versões do QEmu correspondam.

Se a instalação do ipk modificado não funcionar, tente reproduzir o conteúdo no seu sistema. Descompacte em data.tar.gzalgum lugar (ou obtenha os mesmos arquivos de outro sistema x86), veja o que o postinstscript control.tar.gzfaz e forneça os caminhos adequados qemu-i386.

Gilles 'SO- parar de ser mau'
fonte