{"id":13472605,"url":"https://github.com/renode/renode","last_synced_at":"2026-02-16T19:17:44.863Z","repository":{"id":37733489,"uuid":"95903234","full_name":"renode/renode","owner":"renode","description":"Renode - Antmicro's open source simulation and virtual development framework for complex embedded systems","archived":false,"fork":false,"pushed_at":"2024-10-29T09:33:11.000Z","size":15058,"stargazers_count":1604,"open_issues_count":288,"forks_count":287,"subscribers_count":69,"default_branch":"master","last_synced_at":"2024-10-29T11:43:50.380Z","etag":null,"topics":["arm","embedded-systems","iot","renode","risc-v","simulation","x86"],"latest_commit_sha":null,"homepage":"https://renode.io","language":"RobotFramework","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-30T15:52:08.000Z","updated_at":"2024-10-29T09:33:15.000Z","dependencies_parsed_at":"2023-02-17T08:45:58.049Z","dependency_job_id":"4474f259-0f0d-4d35-a33b-151063e7929e","html_url":"https://github.com/renode/renode","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renode%2Frenode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renode%2Frenode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renode%2Frenode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renode%2Frenode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renode","download_url":"https://codeload.github.com/renode/renode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248008627,"owners_count":21032556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arm","embedded-systems","iot","renode","risc-v","simulation","x86"],"created_at":"2024-07-31T16:00:56.161Z","updated_at":"2026-02-16T19:17:44.634Z","avatar_url":"https://github.com/renode.png","language":"RobotFramework","readme":"# Renode\n\nCopyright (c) 2010-2026 [Antmicro](https://www.antmicro.com)\n\n[![View on Antmicro Open Source Portal](https://img.shields.io/badge/View%20on-Antmicro%20Open%20Source%20Portal-332d37?style=flat-square)](https://opensource.antmicro.com/projects/renode)\n\n## What is Renode?\n\nRenode was created by Antmicro as a virtual development tool for multi-node embedded networks (both wired and wireless) and is intended to enable a scalable workflow for creating effective, tested and secure IoT systems.\n\nWith Renode, developing, testing, debugging and simulating unmodified software for IoT devices is fast, cost-effective and reliable.\n\nSupported architectures include:\n\n* ARMv7 and ARMv8 Cortex-A, Cortex-R and Cortex-M\n* x86 and x86_64\n* RISC-V\n* SPARC\n* POWER\n* Xtensa\n* MSP430X\n\n## Why use Renode?\n\nRenode was created based on many years of experience with the development of software for embedded systems - both for gateways, on-board computers, as well as sensor nodes and microcontrollers.\n\nTesting and developing physical embedded systems is difficult due to poor reproducibility and lack of insight into the current state of a system, especially in multi-node scenarios.\n\nRenode addresses this issue by letting you run unmodified binaries identical to the ones you would normally flash onto their target hardware on a virtual board or system of boards.\n\nOne important aspect of the tool is that it simulates not only CPUs but entire SoCs (e.g., heterogeneous multicore SoCs and various peripherals) as well as the wired or wireless connections between them, allowing users to address complex scenarios and test real production software.\n\n## Installation\n\n### Available builds and releases\n\n#### Nightly builds\n\nNightly builds of Renode for all systems are available at [builds.renode.io](https://builds.renode.io).\n\nThe latest builds are always available as `renode-latest.*` packages.\nThe following packages formats are available:\n* [`renode-latest.linux-portable-dotnet.tar.gz`](https://builds.renode.io/renode-latest.linux-portable-dotnet.tar.gz) -  portable Linux package, embeds dotnet runtime\n* [`renode-latest.linux-portable.tar.gz`](https://builds.renode.io/renode-latest.linux-portable.tar.gz) - portable Linux package, embeds Mono runtime\n* [`renode-latest.linux-dotnet.tar.gz`](https://builds.renode.io/renode-latest.linux-dotnet.tar.gz) - Linux prebuilt archive, requires dotnet installed on host\n* [`renode-latest.pkg.tar.xz`](https://builds.renode.io/renode-latest.pkg.tar.xz) - Arch Linux package\n* [`renode-latest.x86_64.rpm`](https://builds.renode.io/renode-latest.x86_64.rpm) - Red Hat / Fedora package\n* [`renode-latest.deb`](https://builds.renode.io/renode-latest.deb) - Debian-based distribution package\n* [`renode-latest.dmg`](https://builds.renode.io/renode-latest.dmg) - macOS package\n* [`renode-latest.windows-portable-dotnet.zip`](https://builds.renode.io/renode-latest.windows-portable-dotnet.zip) - Windows portable package, without installer\n* [`renode-latest.setup.exe`](https://builds.renode.io/renode-latest.setup.exe) - Windows installer\n* [`renode-latest.tar.xz`](https://builds.renode.io/renode-latest.tar.xz) - Renode sources\n\n#### Stable releases\n\nStable, numbered releases and their release notes are available in the [Releases section](https://github.com/renode/renode/releases) on GitHub.\n\n### Using the Linux portable release\n\nIf you are a Linux user, the easiest way to use Renode is to download the latest `linux-portable` from [the releases section](https://github.com/renode/renode/releases/latest) and unpack it using:\n\n```\nmkdir renode_portable\nwget https://builds.renode.io/renode-latest.linux-portable.tar.gz\ntar xf  renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1\n```\n\nTo use it from any location, enter the created directory and add it to the system path:\n\n```\ncd renode_portable\nexport PATH=\"`pwd`:$PATH\"\n```\n\nPlease note that the portable package requires GTK2 to be available on the host to run with the UI enabled.\n\nFollow the [Additional Prerequisites](#additional-prerequisites-for-robot-framework-testing) section if you wish to use Robot Framework for testing.\nOtherwise, proceed to the 'Running Renode' section.\n\n### Installing dependencies\n\n#### Mono/dotnet\n\nRenode requires Mono \u003e= 5.20 (Linux, macOS) or .NET Framework \u003e= 4.7 (Windows).\nOn all systems, you can also use dotnet \u003e= 6.0.\n\n##### Linux\n\nTo install dotnet on Linux, follow [the official installation guide](https://learn.microsoft.com/en-us/dotnet/core/install/linux).\n\nAlternatively, install the `mono-complete` package as per the installation instructions for various Linux distributions you can find on [the Mono project website](https://www.mono-project.com/download/stable/#download-lin).\n\n##### macOS\n\nTo install dotnet on macOS, follow [the official installation guide](https://learn.microsoft.com/en-us/dotnet/core/install/macos).\n\nAlternatively, for Mono-based setups, you can download the Mono package directly from [the Mono project website](https://download.mono-project.com/archive/mdk-latest-stable.pkg).\n\n##### Windows\n\nTo install modern dotnet (as opposed to .NET Framework) on Windows, follow [the official installation guide](https://learn.microsoft.com/en-us/dotnet/core/install/windows).\nThe **.NET SDK** includes runtime, so you will be able to build and run Renode.\n\n#### Other dependencies (Linux only)\n\nOn Ubuntu 20.04, you can install the remaining dependencies with the following command:\n\n```\nsudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev libicu-dev gcc python3 python3-pip\n```\n\nIf you are running a different distribution, you will need to install an analogous list of packages using your package manager; note that the package names may differ slightly.\n\n### Installing from packages\n\nGo to [the releases section](https://github.com/renode/renode/releases/latest) of this repository and download an appropriate package for your system.\n\n#### Linux\n\nInstall Renode with your preferred package manager using the provided `*.deb`, `*.rpm` or `*.pkg.tar.xz` packages.\n\n#### macOS\n\nUse the provided `*.dmg` as normal. \nAdditionally, to use Renode from the command line on macOS, create appropriate aliases by adding `alias renode='mono /Applications/Renode.app/Contents/MacOS/bin/Renode.exe'` and `alias renode-test='/Applications/Renode.app/Contents/MacOS/tests/renode-test'` to your `.bashrc` or `.zshrc` file, depending on the shell you're using.\n\n#### Windows\n\nInstall Renode from the provided `*.msi` file. The installer will allow you to add icons to your Desktop and/or Start Menu and an entry to your PATH.\n\n### Additional prerequisites\n\n#### Robot Framework testing\n\nTo write and run test cases, Renode integrates with the Robot testing framework.\nThis requires you to install Python 3 (on Windows, you will also need Cygwin - see [the advanced installation instructions](https://renode.readthedocs.io/en/latest/advanced/building_from_sources.html#windows)) with `pip` (note that the relevant package may be called `python-pip` or `python3-pip` on Linux).\n\nOnce you have Python 3 and `pip`, install additional modules:\n\n```\npython3 -m pip install -r tests/requirements.txt\n```\n\n#### Other tools\n\nAdditionally, each of the tools in the `/tools` subdirectory may contain a `requirements.txt` file separate from Renode's requirements.\n\nInstall them in your virtual environment with `pip install -r requirements.txt`.\n\n### Building from source\n\nFor information on building Renode from source, see [the documentation](https://renode.readthedocs.io/en/latest/advanced/building_from_sources.html).\n\n## Running Renode\n\nAfter following the instructions above on installation from a package, you should have the `renode` command available system-wide:\n\n```\nrenode [flags] [file]\n```\n\nIf you built it from source, navigate to the relevant directory and use:\n\n```\n./renode [flags] [file]\n```\n\nThe optional `[file]` argument allows you to provide the path to a script to be run on startup.\n\nThe script allows several optional flags, the most useful of which are presented below:\n\n```\n-p                  Remove steering codes (e.g., colours) from output\n-P      INT32       Instead of opening a window, listen for Monitor commands on the specified port\n-e      COMMAND     Execute command on startup (executed after the optional script). May be used multiple times\n--console           Run the Monitor in the console instead of a separate window\n--disable-gui       Disable XWT GUI support. It automatically sets HideMonitor\n--hide-monitor      Do not show the Monitor window\n--hide-log          Do not show log messages in console\n--hide-analyzers    Do not show analyzers\n-v                  Print version and exit\n-h                  Display help and usage information\n```\n\nRenode can be run on Windows systems with a similar set of optional flags.\n\n### Sample scenario\n\nBelow, you can see a piece of firmware running on simulated hardware.\nThe Renode Monitor is visible alongside an analyzer window displaying UART output and logger.\nFor more information about this particular setup, see [its dedicated repository](https://github.com/antmicro/renode-tesla-roadster-simulation).\n\n![Renode screencast](./images/renode-screencast.svg \"Renode screencast\")\n\n### Alternative ways for running Renode on Linux\n\n#### renode-run\n\n`renode-run` is a Python script that downloads and runs Renode, and lets you easily run demos available in [Renodepedia](https://zephyr-dashboard.renode.io/renodepedia/) as well as local ELF files.\nGo to [the repository](https://github.com/antmicro/renode-run) for usage instructions.\n\n`renode-run` relies on a portable package and its main advantage is the ease of updating Renode to the latest nightly build using a single command.\n\n#### pyrenode3\n\n`pyrenode3` is a A Python library for interacting with Renode programmatically.\nGo to [the repository](https://github.com/antmicro/pyrenode3) for usage instructions.\n\n#### Running Renode in a Docker container\n\nIf you want to run Renode in Docker, you can use prebuilt images available on [Docker Hub](https://hub.docker.com/r/antmicro/renode).\n\nTo start Renode in interactive mode on Linux, assuming you have Docker installed in your system, run one of the following:\n\n* For the latest numbered version build:\n    ```\n    docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:latest\n    ```\n* For a nightly mono build:\n    ```\n    docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly\n    ```\n* For a nightly dotnet build:\n    ```\n    docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly-dotnet\n    ```\n\nThis will display the Renode Monitor window.\nAlternatively, you can provide your custom command at the end of the line above.\n\nTo run the image in console mode without X server passthrough, run:\n\n```\ndocker run -ti antmicro/renode bash\n```\n\nYou can add more `-v` switches to the command to mount your own directories.\n\nFor more information and the underlying Dockerfile, visit the [repository on GitHub](https://github.com/renode/renode-docker).\n\n## Documentation\n\nDocumentation is available on [Read the Docs](https://renode.readthedocs.io).\n\n## License \u0026 contributions\n\nRenode is released under the permissive MIT license.\nFor details, see the [LICENSE](LICENSE) file.\n\nWe're happy to accept bug reports, feature requests, and contributions via GitHub pull requests / issues.\nFor details, see the [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\n## Commercial support\n\nCommercial support for Renode is provided by [Antmicro](https://antmicro.com), a company specializing in helping its clients to adopt new embedded technologies and modern development methodologies.\n\nAntmicro created and maintains the Renode Framework and related tooling and is happy to provide services such as adding new platforms, integrations, plugins, and tools.\n\nTo inquire about our services, contact us at [support@renode.io](mailto:support@renode.io).\n","funding_links":[],"categories":["RobotFramework","Tools","Development frameworks","Electronics Simulators","Test Frameworks","Toolkits Include Non-OS","Firmware Security","Emulators"],"sub_categories":["Simulation Frameworks","VSCode extensions","Mocking and Hardware Simulation","Android Things","Dynamic Analysis and Emulation","Fuzzing \u0026 Analysis Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenode%2Frenode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenode%2Frenode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenode%2Frenode/lists"}