Qemu ARM EABI no Scratchbox

Se você está usando o PyMaemo deve ter reparado na mensagem de erro "sem_post: Function not implemented" quando chama o Python2.5 no target ARMEL do Chinook. Isso tem a ver, entre outras coisas, com funcionalidades não implementadas na versão do Qemu usada no Scratchbox. O Lauro Venâncio reuniu os patches necessários pra modernizar esse bicho, criou um projeto no SourceForge e pretende mantê-los sincronizados com o head do CVS do Qemu até os caras se dignarem a implementar as melhorias.

Se você quer usar o Qemu ARM EABI em seu Scratchbox, siga as instruções abaixo. Lembre de fechar quaisquer seções abertas do Scratchbox.

Compilar o Qemu ARM EABI

Na máquina host, instale o gcc-3.4 e baixe o qemu com os patches já aplicados.

$ sudo apt-get install gcc-3.4
$ svn co https://qemu-arm-eabi.svn.sourceforge.net/svnroot/qemu-arm-eabi/trunk qemu-arm-eabi
$ cd qemu-arm-eabi
$ ./configure --target-list=arm-linux-user --static
$ make

Update: o luck sentiu falta da zlib no processo de compilação:

$ sudo apt-get install zlib1g-dev

Update 2: o lauro resolveu organizar o repo dele, criando branches, tag e trunk. As instruções acima foram atualizadas.

Instalar no Qemu ARM EABI no Scratchbox

Como se pode ver, o binário gerado foi linkado estaticamente, então nada de dependências cabulosas, basta copiar para o lugar certo:

$ sudo cp arm-linux-user/qemu-arm /scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2

Edite o cputransp-methods:

$ sudo vim /scratchbox/devkits/cputransp/etc/cputransp-methods

e adicione a linha:

qemu-arm-eabi-sb2

Depois edite o arquivo config do seu target (ou dos targets) ARMEL:

vim /scratchbox/users/USERNAME/targets/SDK_ARMEL.config

e altere a variável do método de transparência do CPU para:

SBOX_CPUTRANSPARENCY_METHOD=/scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2

Veja também:

Um pensamento sobre “Qemu ARM EABI no Scratchbox

  1. Pingback: Qemu ARM EABI no Scratchbox: O Script « Head Like a Hole

Deixe um comentário