Executando aplicativos x86 em um Raspberry Pi usando o Box86

Fala pessoal, tudo bem com vocês? Hoje vamos aprender a executar aplicativos x86 em um Raspberry Pi, usando o software box86, que é um software de emulação do espaço do usuário que permite executar aplicativos Linux x86 em um dispositivo ARM como o Raspberry Pi. Usando este software, podemos executar uma variedade de softwares x86 em nosso Rasp, isto inclui aplicativos como Zoom ou jogos como World of Goo.

Conhecendo o Box86

Existem algumas ressalvas ao usar o box86, a primeira é que os softwares x86 são construídos na arquitetura 32 bits, assim sendo, aqueles programas construídos na arquitetura 64 bits não funcionam no box86.

A segunda é que você precisa estar executando um sistema de 32 bits. O modo como o box86 é projetado é que ele converte as chamadas x86 típicas em chamadas ARM de 32 bits. Uma das melhores características do Box86 é que ele possui um recompilador dinâmico (DynaRec). Como o nome sugere, um recompilador dinâmico pega as instruções e as recompila ativamente em instruções ARM otimizadas. Um intérprete, por outro lado, mapearia as instruções x86 para um equivalente ARM sem levar em consideração o quão bem otimizado seria o resultado.

No caso do box86, o recurso DynaRec permite que o emulador execute o software 5 a 10 vezes mais rápido do que seu intérprete é capaz. Observe que o box86 é puramente um emulador de x86 para ARM. Você não pode executar aplicativos do Windows usando o box86 no seu Raspberry Pi. Em vez disso, você precisará usar o Wine junto com o box86 para isso.

Preparando seu Raspberry Pi para Box86

Primeiro de tudo, você vai precisar do Raspberry Pi OS/Raspbian instalado no seu Rasp, você pode clicar aqui para ver o nosso tutorial completo para a instalação do Raspberry Pi OS.

Antes de podermos compilar o emulador x86 para nosso Raspberry Pi, precisaremos nos preparar um pouco. Compilar o box86 no Raspberry Pi requer alguns pacotes que podem não estar instalados em seu sistema.

Atualizando o Raspberry Pi OS

Para garantir que temos uma lista de pacotes atualizada e estamos trabalhando com os pacotes mais recentes, vamos primeiro atualizar o sistema operacional. Se você estiver executando o Raspberry Pi OS, poderá executar os dois comandos a seguir para atualizá-lo.

sudo apt update
sudo apt full-upgrade

Instalando pacotes

Assim que o sistema operacional terminar de atualizar, podemos instalar todos os pacotes de que precisamos para compilar o box86. Podemos instalar todos os pacotes que precisamos executando o comando abaixo:

sudo apt install git build-essential cmake

Nesse caso, precisamos instalar o pacote do git para que possamos clonar o repositório do GitHub. O pacote build-essential contém o próprio compilador, entre outras coisas que precisamos para compilar o próprio box86 em nosso Raspberry Pi. Por último, precisamos instalar o cmake, esta ferramenta é para gerar arquivos de construção para que possamos compilar o emulador x86 no Raspberry Pi.

Clonando o repositório do box86

Agora que temos os pacotes necessários instalados, vamos clonar o código box86. A clonagem de código do GitHub é super simples. graças ao gitpacote. Execute o seguinte comando no seu dispositivo para clonar o código do emulador x86 para o seu Raspberry Pi.

git clone https://github.com/ptitSeb/box86

Compilando o emulador x86 no Raspberry Pi

Agora que preparamos o Raspberry Pi para compilar o box86, podemos seguir em frente. Compilar o emulador x86 em nosso dispositivo é relativamente simples agora que temos os pacotes de que precisamos. 

Comece mudando para o diretório onde clonamos o código box86. Você pode fazer isso executando o seguinte comando.

cd ~/box86

Precisamos criar um diretório adicional onde o compilador armazenará as compilações do box86. Execute os dois comandos a seguir para criar o diretório “build”, em seguida, mude para ele.

mkdir build
cd build

Dentro deste diretório, podemos preparar o emulador box86 para compilar em nosso Raspberry Pi. Conseguimos isso usando o pacote cmake que instalamos anteriormente. Este comando difere um pouco se você está compilando o emulador x86 para o Raspberry Pi 2, 3 ou 4.

Gerando o Makefile no Raspberry Pi 4

cmake .. -DRPI4=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Usando o comando CMake no Raspberry Pi 3

cmake .. -DRPI3=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Comando CMake para Raspberry Pi 2

cmake .. -DRPI2=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Embora o box86 suporte o Raspberry Pi 1 e Zero, não vale a pena usá-lo para esses dispositivos devido à falta de suporte para o recompilador dinâmico.

Agora com o CMake temos que gerar o makefile para compilar o software box86 em nosso Raspberry Pi. Podemos usar esse arquivo para compilar o emulador x86 em nosso Raspberry Pi usando o seguinte comando:

make -j$(nproc)

Usamos o argumento “-j” para dizer ao compilador para usar vários processadores para compilar o software. Usando “$(nproc)”, inserimos automaticamente o número de núcleos que nosso processador possui no comando.

Assim que o compilador terminar de funcionar, podemos instalar o emulador box86 em nosso Raspberry Pi. Execute o seguinte comando para instalar o software em nosso dispositivo.

sudo make install

Finalmente, precisamos reiniciar o serviço systemd-binfmt. Reiniciar o serviço após a instalação do box86 permite que ele conheça os formatos binários adicionais que agora pode suportar.

sudo systemctl restart systemd-binfmt

Se ocorrer um erro ao executar este comando, tente reiniciar o Raspberry Pi:

sudo reboot

Executando um aplicativo usando box86 em seu Raspberry Pi

Agora que temos o emulador x86 instalado no Raspberry Pi, vamos rapidamente fazer um teste para mostrar que ele está funcionando. Para mostrar como o box86 é executado no Raspberry Pi, vamos instalar o servidor TeamSpeak. Escolhemos o servidor TeamSpeak, pois ele está disponível apenas para a versão x86 do Linux e está disponível gratuitamente, e não possui nenhuma construção para a arquitetura ARM.

Comece verificando se você está de volta ao diretório inicial do Raspberry Pi. Você pode usar o comando cd seguido pelo símbolo de til (~) para voltar para a home.

cd ~

Baixando o TeamSpeak para o teste final

Quando estiver de volta ao diretório inicial, vamos usar “wget” para baixar o TeamSpeak. Observe que a versão do TeamSpeak que estamos baixando pode não ser a mais recente disponível.

wget https://files.teamspeak-services.com/releases/server/3.13.3/teamspeak3-server_linux_x86-3.13.3.tar.bz2

Como o servidor TeamSpeak é construído para versões x86 do Linux, ele normalmente não funcionaria no Raspberry Pi. No entanto, graças ao box86, agora seremos capazes de executar o software, e isto se deve a emulação x86.

Configurando o TeamSpeak

Assim que o download do arquivo for concluído em seu Raspberry Pi, precisamos extraí-lo. Podemos extrair a versão x86 do TeamSpeak de seu arquivo para o nosso Raspberry Pi usando o comando tar.

tar -xvpf teamspeak3-server_linux_x86-3.13.3.tar.bz2

Agora que extraímos o servidor TeamSpeak, vamos mudar para o diretório. Utilizando novamente o comando cd, mude para o diretório.

cd teamspeak3-server_linux_x86-3.13.3

Antes de podermos usar o Box86 para executar este aplicativo x86 em nosso Raspberry Pi, precisamos fazer uma última coisa. Antes de o servidor TeamSpeak ser executado, ele exige que aceitemos seus termos e condições. Podemos fazer isso criando um arquivo chamado “.ts3server_license_accepted” no mesmo diretório do servidor.

touch .ts3server_license_accepted

Finalmente, podemos ver o Box86 em funcionamento, executando o servidor TeamSpeak.

./ts3server

A mágica do Box86 é que você não precisa usar nenhum comando adicional para executar o software x86 no seu Raspberry Pi, pois o box86 é configurado automaticamente para detectar quando um aplicativo x86 está sendo executado e assumir a partir daí.

Ao executar o software x86 na linha de comando do Raspberry Pi, você verá o texto a seguir. Ao ver este texto, você saberá que o box86 agora está encarregado de emular o software. No nosso caso, ele está usando o recompilador dinâmico:

Box86 with Dynarec v0.2.1 ddd4d37a built on May 12 2021 05:11:18

Conclusão

Agora você entende como pode usar o box86 para executar aplicativos x86 em um Raspberry Pi. O emulador box86 é um software poderoso, mas tem algumas ressalvas com as quais você deve lidar.

Embora o emulador não seja perfeito, ele pode executar uma grande quantidade de software em velocidades decentes com poucos ou nenhum problema. Neste tutorial, mostramos como o box86 pode executar softwares como o servidor TeamSpeak. Você também pode usar o box86 para rodar vários videogames.

Se for um videogame relativamente antigo ou que use gráficos 2D, você poderá executá-lo usando o box86 no seu Raspberry Pi. Vimos jogos como Undertale, World of Goo e FTL jogados em um Raspberry Pi 4 usando o box86. Se você tiver problemas para executar o box86 no Raspberry Pi, deixe um comentário abaixo. Abraço e até a próxima!

Sobre Yuri Azevedo 4 artigos
Especialista em Engenharia de Automação e Controle e Engenheiro Eletricista.

Seja o primeiro a comentar

Deixe uma resposta

O seu endereço de email não será publicado.


*