
renode v1.17.0
Framework di simulazione open-source per sviluppare, testare e fare debug di software non modificato per sistemi embedded e IoT multi-nodo, con supporto per ARM, RISC-V, x86 e altro.
Renode
Copyright (c) 2010-2026 Antmicro
Cos'è Renode?
Renode è stato creato da Antmicro come strumento di sviluppo virtuale per reti embedded multi-nodo (sia cablate che wireless) ed è pensato per abilitare un workflow scalabile per creare sistemi IoT efficaci, testati e sicuri.
Con Renode, sviluppare, testare, eseguire il debug e simulare software non modificato per dispositivi IoT è veloce, economico e affidabile.
Le architetture supportate includono:
- ARMv7 e ARMv8 Cortex-A, Cortex-R e Cortex-M
- x86 e x86_64
- RISC-V
- SPARC
- POWER
- Xtensa
- MSP430X
Perché usare Renode?
Renode è stato creato basandosi su molti anni di esperienza nello sviluppo di software per sistemi embedded – sia per gateway, computer di bordo, che per nodi sensore e microcontrollori.
Testare e sviluppare sistemi embedded fisici è difficile a causa della scarsa riproducibilità e della mancanza di visibilità sullo stato corrente del sistema, specialmente in scenari multi-nodo.
Renode affronta questo problema permettendoti di eseguire binari non modificati, identici a quelli che normalmente faresti sul loro hardware target, su una scheda virtuale o su un sistema di schede.
Un aspetto importante dello strumento è che simula non solo le CPU ma interi SoC (ad esempio SoC eterogenei multi-core e varie periferiche) così come le connessioni cablate o wireless tra di essi, permettendo agli utenti di affrontare scenari complessi e testare software di produzione reale.
Installazione
Build e release disponibili
Build notturne
Le build notturne di Renode per tutti i sistemi sono disponibili su builds.renode.io.
Le build più recenti sono sempre disponibili come pacchetti renode-latest.*.
Sono disponibili i seguenti formati di pacchetto:
renode-latest.linux-portable.tar.gz– pacchetto Linux portatile, include il runtime dotnetrenode-latest.linux.tar.gz– archivio precompilato Linux, richiede dotnet installato sull'hostrenode-latest.pkg.tar.xz– pacchetto Arch Linuxrenode-latest.x86_64.rpm– pacchetto Red Hat / Fedorarenode-latest.deb– pacchetto per distribuzioni basate su Debianrenode-latest.osx-arm64-portable.dmg– pacchetto macOS per mac Apple Silicon (arm64)renode-latest.osx-x64-portable.dmg– pacchetto macOS per mac Intel (x86_64)renode-latest.windows-portable.zip– pacchetto Windows portatile, senza installerrenode-latest.setup.exe– installer Windowsrenode-latest.tar.xz– sorgenti di Renode
Release stabili
Release stabili e numerate con le relative note di rilascio sono disponibili nella sezione Releases su GitHub.
Installazione dal tap homebrew
Su macOS sia le versioni stabili che quelle notturne di Renode possono essere installate con Homebrew dal nostro tap personalizzato.
Per installare la versione stabile usa brew install renode/tap/renode, oppure brew install renode/tap/renode-nightly per l'ultima build notturna.
Questo installerà tutte le dipendenze, inclusa la pre-configurazione dell'ambiente Python per renode-test.
Utilizzo della release portatile Linux
Se sei un utente Linux, il modo più semplice per usare Renode è scaricare l'ultimo linux-portatile dalla sezione releases e decomprimerlo 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
Per usarlo da qualsiasi posizione, entra nella directory creata e aggiungila al percorso di sistema:
cd renode_portable
export PATH="`pwd`:$PATH"
Nota che il pacchetto portatile richiede GTK2 per essere disponibile sull'host per funzionare con l'interfaccia abilitata.
Segui la sezione Prerequisiti aggiuntivi se desideri utilizzare Robot Framework per i test. Altrimenti, procedi alla sezione 'Esecuzione di Renode'.
Installazione delle dipendenze
dotnet
Renode richiede dotnet >= 6.0.
Per installare dotnet, segui la guida ufficiale.
Altre dipendenze (solo Linux)
Su Ubuntu 20.04, puoi installare le restanti dipendenze con il seguente comando:
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev libicu-dev gcc python3 python3-pip
Se stai usando una distribuzione diversa, dovrai installare un elenco analogo di pacchetti tramite il tuo gestore pacchetti; nota che i nomi dei pacchetti possono differire leggermente.
Installazione dai pacchetti
Vai alla sezione releases di questo repository e scarica il pacchetto appropriato per il tuo sistema.
Linux
Installa Renode con il tuo gestore pacchetti preferito utilizzando i pacchetti *.deb, *.rpm o *.pkg.tar.xz forniti.
macOS
Usa il *.dmg fornito come di consueto.
Inoltre, per usare Renode dalla riga di comando su macOS, crea alias appropriati aggiungendo alias renode='/Applications/Renode.app/Contents/MacOS/renode' e alias renode-test='/Applications/Renode.app/Contents/MacOS/renode-test' al tuo file .bashrc o .zshrc, a seconda della shell che stai utilizzando.
Windows
Installa Renode dal file *.msi fornito. L'installer ti permetterà di aggiungere icone sul Desktop e/o nel Menu Start e una voce nel PATH.
Prerequisiti aggiuntivi
Test con Robot Framework
Per scrivere ed eseguire casi di test, Renode si integra con il framework di test Robot.
Ciò richiede l'installazione di Python 3 (su Windows, avrai bisogno anche di Cygwin – vedi le istruzioni di installazione avanzate) con pip (nota che il pacchetto pertinente può essere chiamato python-pip o python3-pip su Linux).
Una volta che hai Python 3 e pip, installa i moduli aggiuntivi:
python3 -m pip install -r tests/requirements.txt
Altri strumenti
Inoltre, ciascuno degli strumenti nella sottodirectory /tools può contenere un file requirements.txt separato dai requisiti di Renode.
Installali nel tuo ambiente virtuale con pip install -r requirements.txt.
Build dai sorgenti
Per informazioni sulla compilazione di Renode dai sorgenti, consulta la documentazione.
Esecuzione di Renode
Dopo aver seguito le istruzioni sopra sull'installazione da un pacchetto, dovresti avere il comando renode disponibile a livello di sistema:
renode [flags] [file]
Se l'hai compilato dai sorgenti, naviga nella directory pertinente e usa:
./renode [flags] [file]
L'argomento opzionale [file] ti permette di fornire il percorso di uno script da eseguire all'avvio.
Lo script accetta diversi flag opzionali, i più utili dei quali sono presentati di seguito:
-p Rimuove i codici di controllo (es. colori) dall'output
-P INT32 Invece di aprire una finestra, ascolta i comandi Monitor sulla porta specificata
-e COMMAND Esegue un comando all'avvio (eseguito dopo lo script opzionale). Può essere usato più volte
--console Esegue il Monitor nella console invece che in una finestra separata
--disable-gui Disabilita il supporto GUI XWT. Imposta automaticamente HideMonitor
--hide-monitor Non mostra la finestra Monitor
--hide-log Non mostra i messaggi di log nella console
--hide-analyzers Non mostra gli analizzatori
-v Stampa la versione ed esce
-h Mostra aiuto e informazioni sull'uso
Renode può essere eseguito su sistemi Windows con un insieme simile di flag opzionali.
Scenario di esempio
Qui sotto puoi vedere un pezzo di firmware in esecuzione su hardware simulato. Il Monitor di Renode è visibile insieme a una finestra analizzatore che mostra l'output UART e il logger. Per maggiori informazioni su questa specifica configurazione, vedi il repository dedicato.
Modi alternativi per eseguire Renode su Linux
renode-run
renode-run è uno script Python che scarica ed esegue Renode, e ti permette di eseguire facilmente demo disponibili in Renodepedia così come file ELF locali.
Vai al repository per le istruzioni d'uso.
renode-run si basa su un pacchetto portatile e il suo principale vantaggio è la facilità di aggiornare Renode all'ultima build notturna con un singolo comando.
pyrenode3
pyrenode3 è una libreria Python per interagire con Renode a livello programmatico.
Vai al repository per le istruzioni d'uso.
Esecuzione di Renode in un container Docker
Se vuoi eseguire Renode in Docker, puoi usare le immagini precompilate disponibili su Docker Hub.
Per avviare Renode in modalità interattiva su Linux, supponendo di avere Docker installato nel sistema, esegui uno dei seguenti comandi:
- Per l'ultima build con numero di versione:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:latest - Per una build notturna dotnet:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly-dotnet
Questo mostrerà la finestra del Monitor di Renode. In alternativa, puoi fornire il tuo comando personalizzato alla fine della riga sopra.
Per eseguire l'immagine in modalità console senza passaggio X server, esegui:
docker run -ti antmicro/renode bash
Puoi aggiungere più opzioni -v al comando per montare le tue directory.
Per maggiori informazioni e il Dockerfile sottostante, visita il repository su GitHub.
Documentazione
La documentazione è disponibile su Read the Docs.
Licenza e contributi
Renode è rilasciato sotto la licenza MIT permissiva. Per i dettagli, consulta il file LICENSE.
Siamo felici di accettare segnalazioni di bug, richieste di funzionalità e contributi tramite pull request / issue su GitHub. Per i dettagli, consulta il file CONTRIBUTING.md.
Supporto commerciale
Il supporto commerciale per Renode è fornito da Antmicro, un'azienda specializzata nell'aiutare i propri clienti ad adottare nuove tecnologie embedded e metodologie di sviluppo moderne.
Antmicro ha creato e mantiene il Framework Renode e gli strumenti correlati ed è felice di fornire servizi come l'aggiunta di nuove piattaforme, integrazioni, plugin e strumenti.
Per richiedere informazioni sui nostri servizi, contattaci all'indirizzo [email protected].