
renode v1.17.0
Open-Source-Simulationsframework zum Entwickeln, Testen und Debuggen unveränderter Software für Multi-Node-Eingebettete- und IoT-Systeme, mit Unterstützung für ARM, RISC-V, x86 und mehr.
Renode
Copyright (c) 2010-2026 Antmicro
Was ist Renode?
Renode wurde von Antmicro als virtuelles Entwicklungswerkzeug für Multi-Node-Eingebettete Netzwerke (sowohl kabelgebunden als auch drahtlos) entwickelt und soll einen skalierbaren Workflow für die Erstellung effektiver, getesteter und sicherer IoT-Systeme ermöglichen.
Mit Renode ist die Entwicklung, das Testen, das Debuggen und die Simulation unveränderter Software für IoT-Geräte schnell, kosteneffizient und zuverlässig.
Unterstützte Architekturen umfassen:
- ARMv7 and ARMv8 Cortex-A, Cortex-R and Cortex-M
- x86 and x86_64
- RISC-V
- SPARC
- POWER
- Xtensa
- MSP430X
Warum Renode verwenden?
Renode wurde auf Basis langjähriger Erfahrungen mit der Entwicklung von Software für eingebettete Systeme entwickelt – sowohl für Gateways, Bordcomputer als auch für Sensorknoten und Mikrocontroller.
Das Testen und Entwickeln physischer eingebetteter Systeme ist aufgrund der schlechten Reproduzierbarkeit und des mangelnden Einblicks in den aktuellen Zustand eines Systems, insbesondere in Multi-Node-Szenarien, schwierig.
Renode adressiert dieses Problem, indem es Ihnen ermöglicht, unveränderte Binärdateien auszuführen, die mit denen identisch sind, die Sie normalerweise auf die Zielhardware flashen würden, auf einer virtuellen Platine oder einem System von Platinen.
Ein wichtiger Aspekt des Werkzeugs ist, dass es nicht nur CPUs, sondern ganze SoCs (z. B. heterogene Multicore-SoCs und verschiedene Peripheriegeräte) sowie die kabelgebundenen oder drahtlosen Verbindungen zwischen ihnen simuliert, sodass Benutzer komplexe Szenarien bewältigen und reale Produktionssoftware testen können.
Installation
Verfügbare Builds und Releases
Nightly builds
Nächtliche Builds von Renode für alle Systeme sind unter builds.renode.io verfügbar.
Die neuesten Builds sind immer als renode-latest.*-Pakete verfügbar.
Die folgenden Paketformate sind verfügbar:
renode-latest.linux-portable.tar.gz- tragbares Linux-Paket, enthält dotnet-Laufzeitrenode-latest.linux.tar.gz- Linux vorgebautes Archiv, erfordert dotnet auf dem Hostrenode-latest.pkg.tar.xz- Arch Linux-Paketrenode-latest.x86_64.rpm- Red Hat / Fedora-Paketrenode-latest.deb- Debian-basiertes Distributionspaketrenode-latest.osx-arm64-portable.dmg- macOS-Paket für Apple Silicon (arm64) Macsrenode-latest.osx-x64-portable.dmg- macOS-Paket für Intel (x86_64) Macsrenode-latest.windows-portable.zip- Windows-tragbares Paket, ohne Installerrenode-latest.setup.exe- Windows-Installerrenode-latest.tar.xz- Renode Quellen
Stabile Releases
Stabile, nummerierte Releases und deren Versionshinweise sind im Releases-Bereich auf GitHub verfügbar.
Installation über Homebrew Tap
Auf macOS können sowohl stabile als auch nächtliche Versionen von Renode mit Homebrew aus unserem benutzerdefinierten Tap installiert werden.
Um die stabile Version zu installieren, verwenden Sie brew install renode/tap/renode, oder brew install renode/tap/renode-nightly für den neuesten nächtlichen Build.
Dies installiert alle Abhängigkeiten, einschließlich der Vorkonfiguration der Python-Umgebung für renode-test.
Verwendung des tragbaren Linux-Release
Wenn Sie ein Linux-Benutzer sind, ist der einfachste Weg, Renode zu verwenden, das Herunterladen des neuesten linux-portable aus dem Releases-Bereich und das Entpacken mit:
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
Um es von jedem Ort aus zu verwenden, wechseln Sie in das erstellte Verzeichnis und fügen Sie es zum Systempfad hinzu:
cd renode_portable
export PATH="`pwd`:$PATH"
Bitte beachten Sie, dass das tragbare Paket GTK2 auf dem Host benötigt, um mit aktivierter Benutzeroberfläche ausgeführt zu werden.
Folgen Sie dem Abschnitt Zusätzliche Voraussetzungen, wenn Sie Robot Framework zum Testen verwenden möchten. Andernfalls fahren Sie mit dem Abschnitt 'Renode ausführen' fort.
Installieren von Abhängigkeiten
dotnet
Renode benötigt dotnet >= 6.0.
Um dotnet zu installieren, folgen Sie der offiziellen Installationsanleitung.
Andere Abhängigkeiten (nur Linux)
Unter Ubuntu 20.04 können Sie die restlichen Abhängigkeiten mit dem folgenden Befehl installieren:
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev libicu-dev gcc python3 python3-pip
Wenn Sie eine andere Distribution verwenden, müssen Sie eine analoge Liste von Paketen mit Ihrem Paketmanager installieren; beachten Sie, dass die Paketnamen geringfügig abweichen können.
Installieren aus Paketen
Gehen Sie zum Releases-Bereich dieses Repositorys und laden Sie ein geeignetes Paket für Ihr System herunter.
Linux
Installieren Sie Renode mit Ihrem bevorzugten Paketmanager unter Verwendung der bereitgestellten *.deb-, *.rpm- oder *.pkg.tar.xz-Pakete.
macOS
Verwenden Sie die bereitgestellte *.dmg wie gewohnt.
Um Renode unter macOS über die Befehlszeile zu verwenden, erstellen Sie außerdem geeignete Aliase, indem Sie alias renode='/Applications/Renode.app/Contents/MacOS/renode' und alias renode-test='/Applications/Renode.app/Contents/MacOS/renode-test' zu Ihrer .bashrc- oder .zshrc-Datei hinzufügen, je nachdem, welche Shell Sie verwenden.
Windows
Installieren Sie Renode aus der bereitgestellten *.msi-Datei. Der Installer ermöglicht es Ihnen, Symbole auf Ihrem Desktop und/oder Startmenü sowie einen Eintrag in Ihrem PATH hinzuzufügen.
Zusätzliche Voraussetzungen
Robot Framework-Tests
Um Testfälle zu schreiben und auszuführen, integriert Renode das Robot-Test-Framework.
Dies erfordert die Installation von Python 3 (unter Windows benötigen Sie auch Cygwin – siehe die erweiterten Installationsanweisungen) mit pip (beachten Sie, dass das entsprechende Paket unter Linux python-pip oder python3-pip heißen kann).
Sobald Sie Python 3 und pip haben, installieren Sie zusätzliche Module:
python3 -m pip install -r tests/requirements.txt
Andere Werkzeuge
Darüber hinaus kann jedes der Werkzeuge im Unterverzeichnis /tools eine separate requirements.txt-Datei enthalten, die nicht mit den Renode-Anforderungen übereinstimmt.
Installieren Sie sie in Ihrer virtuellen Umgebung mit pip install -r requirements.txt.
Aus Quellen bauen
Informationen zum Bauen von Renode aus den Quellen finden Sie in der Dokumentation.
Renode ausführen
Nachdem Sie den obigen Anweisungen zur Installation aus einem Paket gefolgt sind, sollte der Befehl renode systemweit verfügbar sein:
renode [flags] [file]
Wenn Sie es aus Quellen gebaut haben, navigieren Sie zum entsprechenden Verzeichnis und verwenden Sie:
./renode [flags] [file]
Das optionale [file]-Argument ermöglicht es Ihnen, den Pfad zu einem Skript anzugeben, das beim Start ausgeführt werden soll.
Das Skript erlaubt mehrere optionale Flags, von denen die nützlichsten unten aufgeführt sind:
-p Remove steering codes (e.g., colours) from output
-P INT32 Instead of opening a window, listen for Monitor commands on the specified port
-e COMMAND Execute command on startup (executed after the optional script). May be used multiple times
--console Run the Monitor in the console instead of a separate window
--disable-gui Disable XWT GUI support. It automatically sets HideMonitor
--hide-monitor Do not show the Monitor window
--hide-log Do not show log messages in console
--hide-analyzers Do not show analyzers
-v Print version and exit
-h Display help and usage information
Renode kann auf Windows-Systemen mit einem ähnlichen Satz optionaler Flags ausgeführt werden.
Beispielszenario
Unten sehen Sie ein Stück Firmware, das auf simulierter Hardware läuft. Das Renode-Monitor-Fenster ist zusammen mit einem Analysatorfenster sichtbar, das die UART-Ausgabe und den Logger anzeigt. Weitere Informationen zu diesem speziellen Setup finden Sie in seinem dedizierten Repository.
Alternative Möglichkeiten zum Ausführen von Renode unter Linux
renode-run
renode-run ist ein Python-Skript, das Renode herunterlädt und ausführt und es Ihnen ermöglicht, einfach Demos aus Renodepedia sowie lokale ELF-Dateien auszuführen.
Besuchen Sie das Repository für Nutzungshinweise.
renode-run basiert auf einem tragbaren Paket und sein Hauptvorteil ist die einfache Aktualisierung von Renode auf den neuesten nächtlichen Build mit einem einzigen Befehl.
pyrenode3
pyrenode3 ist eine Python-Bibliothek zur programmatischen Interaktion mit Renode.
Besuchen Sie das Repository für Nutzungshinweise.
Renode in einem Docker-Container ausführen
Wenn Sie Renode in Docker ausführen möchten, können Sie vorgebaute Images verwenden, die auf Docker Hub verfügbar sind.
Um Renode im interaktiven Modus unter Linux zu starten, vorausgesetzt Sie haben Docker auf Ihrem System installiert, führen Sie einen der folgenden Befehle aus:
- Für den neuesten nummerierten Versionsbuild:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:latest - Für einen nächtlichen dotnet-Build:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly-dotnet
Dies zeigt das Renode-Monitor-Fenster an. Alternativ können Sie Ihren eigenen Befehl am Ende der obigen Zeile angeben.
Um das Image im Konsolenmodus ohne X-Server-Durchleitung auszuführen, führen Sie aus:
docker run -ti antmicro/renode bash
Sie können dem Befehl weitere -v-Schalter hinzufügen, um Ihre eigenen Verzeichnisse einzubinden.
Weitere Informationen und das zugrunde liegende Dockerfile finden Sie im Repository auf GitHub.
Dokumentation
Dokumentation ist auf Read the Docs verfügbar.
Lizenz & Beiträge
Renode wird unter der großzügigen MIT-Lizenz veröffentlicht. Einzelheiten finden Sie in der Datei LICENSE.
Wir nehmen gerne Fehlerberichte, Funktionsanfragen und Beiträge über GitHub Pull Requests / Issues entgegen. Einzelheiten finden Sie in der Datei CONTRIBUTING.md.
Kommerzieller Support
Kommerzieller Support für Renode wird von Antmicro angeboten, einem Unternehmen, das sich darauf spezialisiert hat, seinen Kunden bei der Einführung neuer eingebetteter Technologien und moderner Entwicklungsmethoden zu helfen.
Antmicro hat das Renode-Framework und die zugehörigen Werkzeuge entwickelt und pflegt sie und bietet gerne Dienstleistungen wie das Hinzufügen neuer Plattformen, Integrationen, Plugins und Werkzeuge an.
Für Anfragen zu unseren Dienstleistungen kontaktieren Sie uns unter [email protected].