
renode v1.17.0
Framework de simulação de código aberto para desenvolver, testar e depurar software não modificado para sistemas embarcados e IoT multinó, suportando ARM, RISC-V, x86 e mais.
Renode
Copyright (c) 2010-2026 Antmicro
O que é o Renode?
O Renode foi criado pela Antmicro como uma ferramenta virtual de desenvolvimento para redes embarcadas multi-nó (com e sem fio) e tem como objetivo permitir um fluxo de trabalho escalável para criar sistemas IoT eficazes, testados e seguros.
Com o Renode, desenvolver, testar, depurar e simular software não modificado para dispositivos IoT é rápido, econômico e confiável.
As arquiteturas suportadas incluem:
- ARMv7 and ARMv8 Cortex-A, Cortex-R and Cortex-M
- x86 and x86_64
- RISC-V
- SPARC
- POWER
- Xtensa
- MSP430X
Por que usar o Renode?
O Renode foi criado com base em muitos anos de experiência no desenvolvimento de software para sistemas embarcados — tanto para gateways, computadores de bordo, quanto para nós sensores e microcontroladores.
Testar e desenvolver sistemas embarcados físicos é difícil devido à baixa reprodutibilidade e falta de visibilidade do estado atual de um sistema, especialmente em cenários multi-nó.
O Renode resolve esse problema permitindo que você execute binários não modificados — idênticos aos que você normalmente gravaria no hardware alvo — em uma placa virtual ou sistema de placas.
Um aspecto importante da ferramenta é que ela simula não apenas CPUs, mas SoCs inteiros (por exemplo, SoCs heterogêneos multi-core e vários periféricos), bem como as conexões com e sem fio entre eles, permitindo que os usuários abordem cenários complexos e testem software de produção real.
Instalação
Builds e versões disponíveis
Nightly builds
Nightly builds do Renode para todos os sistemas estão disponíveis em builds.renode.io.
Os builds mais recentes estão sempre disponíveis como pacotes renode-latest.*.
Os seguintes formatos de pacote estão disponíveis:
renode-latest.linux-portable.tar.gz- pacote Linux portátil, incorpora o runtime dotnetrenode-latest.linux.tar.gz- arquivo pré-compilado Linux, requer dotnet instalado no hostrenode-latest.pkg.tar.xz- pacote Arch Linuxrenode-latest.x86_64.rpm- pacote Red Hat / Fedorarenode-latest.deb- pacote para distribuições baseadas em Debianrenode-latest.osx-arm64-portable.dmg- pacote macOS para Macs Apple Silicon (arm64)renode-latest.osx-x64-portable.dmg- pacote macOS para Macs Intel (x86_64)renode-latest.windows-portable.zip- pacote Windows portátil, sem instaladorrenode-latest.setup.exe- instalador Windowsrenode-latest.tar.xz- código fonte do Renode
Lançamentos estáveis
Lançamentos estáveis numerados e suas notas de lançamento estão disponíveis na seção Releases no GitHub.
Instalação a partir do homebrew tap
No macOS, tanto as versões estáveis quanto as nightly do Renode podem ser instaladas com Homebrew a partir do nosso tap personalizado.
Para instalar a versão estável, use brew install renode/tap/renode, ou brew install renode/tap/renode-nightly para a última nightly build.
Isso instalará todas as dependências, incluindo a pré-configuração do ambiente python para renode-test
Usando o lançamento portátil Linux
Se você é um usuário Linux, a maneira mais fácil de usar o Renode é baixar o linux-portable mais recente da seção de releases e descompactá-lo usando:
mkdir renode_portable
wget https://builds.renode.io/renode-latest.linux-portable.tar.gz
tar xf renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1
Para usá-lo de qualquer local, entre no diretório criado e adicione-o ao PATH do sistema:
cd renode_portable
export PATH="`pwd`:$PATH"
Observe que o pacote portátil requer GTK2 disponível no host para ser executado com a UI ativada.
Siga a seção Pré-requisitos Adicionais se desejar usar o Robot Framework para testes. Caso contrário, prossiga para a seção 'Executando o Renode'.
Instalando dependências
dotnet
O Renode requer dotnet >= 6.0.
Para instalar o dotnet, siga o guia de instalação oficial.
Outras dependências (somente Linux)
No Ubuntu 20.04, você pode instalar as dependências restantes com o seguinte comando:
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev libicu-dev gcc python3 python3-pip
Se estiver usando uma distribuição diferente, você precisará instalar uma lista análoga de pacotes usando seu gerenciador de pacotes; note que os nomes dos pacotes podem diferir ligeiramente.
Instalando a partir de pacotes
Vá para a seção de releases deste repositório e baixe um pacote apropriado para o seu sistema.
Linux
Instale o Renode com seu gerenciador de pacotes preferido usando os pacotes fornecidos *.deb, *.rpm ou *.pkg.tar.xz.
macOS
Use o *.dmg fornecido normalmente.
Além disso, para usar o Renode pela linha de comando no macOS, crie aliases apropriados adicionando alias renode='/Applications/Renode.app/Contents/MacOS/renode' e alias renode-test='/Applications/Renode.app/Contents/MacOS/renode-test' ao seu arquivo .bashrc ou .zshrc, dependendo do shell que você está usando.
Windows
Instale o Renode a partir do arquivo *.msi fornecido. O instalador permitirá adicionar ícones à sua Área de Trabalho e/ou Menu Iniciar e uma entrada ao seu PATH.
Pré-requisitos adicionais
Testes com Robot Framework
Para escrever e executar casos de teste, o Renode se integra ao framework de testes Robot.
Isso requer que você instale o Python 3 (no Windows, você também precisará do Cygwin - veja as instruções de instalação avançadas) com pip (note que o pacote relevante pode ser chamado de python-pip ou python3-pip no Linux).
Uma vez que você tenha Python 3 e pip, instale módulos adicionais:
python3 -m pip install -r tests/requirements.txt
Outras ferramentas
Além disso, cada uma das ferramentas no subdiretório /tools pode conter um arquivo requirements.txt separado dos requisitos do Renode.
Instale-os em seu ambiente virtual com pip install -r requirements.txt.
Compilando a partir do código fonte
Para informações sobre como compilar o Renode a partir do código fonte, veja a documentação.
Executando o Renode
Após seguir as instruções acima sobre instalação a partir de um pacote, você deve ter o comando renode disponível em todo o sistema:
renode [flags] [file]
Se você o compilou a partir do código fonte, navegue até o diretório relevante e use:
./renode [flags] [file]
O argumento opcional [file] permite fornecer o caminho para um script a ser executado na inicialização.
O script aceita várias flags opcionais, as mais úteis são apresentadas abaixo:
-p Remove códigos de controle (ex.: cores) da saída
-P INT32 Em vez de abrir uma janela, escuta comandos do Monitor na porta especificada
-e COMANDO Executa comando na inicialização (executado após o script opcional). Pode ser usado várias vezes
--console Executa o Monitor no console em vez de uma janela separada
--disable-gui Desativa o suporte GUI XWT. Define automaticamente HideMonitor
--hide-monitor Não mostra a janela do Monitor
--hide-log Não mostra mensagens de log no console
--hide-analyzers Não mostra analisadores
-v Exibe a versão e sai
-h Exibe informações de ajuda e uso
O Renode pode ser executado em sistemas Windows com um conjunto similar de flags opcionais.
Cenário de exemplo
Abaixo, você pode ver um pedaço de firmware executando em hardware simulado. O Monitor do Renode é visível junto com uma janela de analisador exibindo a saída UART e o logger. Para mais informações sobre esta configuração específica, veja seu repositório dedicado.
Formas alternativas de executar o Renode no Linux
renode-run
renode-run é um script Python que baixa e executa o Renode, e permite executar facilmente demos disponíveis no Renodepedia bem como arquivos ELF locais.
Vá para o repositório para instruções de uso.
renode-run depende de um pacote portátil e sua principal vantagem é a facilidade de atualizar o Renode para a última nightly build usando um único comando.
pyrenode3
pyrenode3 é uma biblioteca Python para interagir com o Renode programaticamente.
Vá para o repositório para instruções de uso.
Executando o Renode em um container Docker
Se você deseja executar o Renode no Docker, pode usar imagens pré-construídas disponíveis no Docker Hub.
Para iniciar o Renode em modo interativo no Linux, assumindo que você tenha o Docker instalado em seu sistema, execute um dos seguintes:
- Para a versão numerada mais recente:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:latest - Para uma nightly build dotnet:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly-dotnet
Isso exibirá a janela do Monitor do Renode. Alternativamente, você pode fornecer seu comando personalizado no final da linha acima.
Para executar a imagem em modo console sem passagem do servidor X, execute:
docker run -ti antmicro/renode bash
Você pode adicionar mais switches -v ao comando para montar seus próprios diretórios.
Para mais informações e o Dockerfile subjacente, visite o repositório no GitHub.
Documentação
A documentação está disponível no Read the Docs.
Licença e contribuições
O Renode é distribuído sob a licença MIT permissiva. Para detalhes, veja o arquivo LICENSE.
Estamos felizes em aceitar relatórios de bugs, solicitações de funcionalidades e contribuições via pull requests / issues no GitHub. Para detalhes, veja o arquivo CONTRIBUTING.md.
Suporte comercial
Suporte comercial para o Renode é fornecido pela Antmicro, uma empresa especializada em ajudar seus clientes a adotar novas tecnologias embarcadas e metodologias de desenvolvimento modernas.
A Antmicro criou e mantém o Framework Renode e ferramentas relacionadas e está feliz em fornecer serviços como adição de novas plataformas, integrações, plugins e ferramentas.
Para consultar sobre nossos serviços, entre em contato conosco pelo e-mail [email protected].