
renode v1.17.0
Open-source simulation framework for developing, testing, and debugging unmodified software for multi-node embedded and IoT systems, supporting ARM, RISC-V, x86, and more.
Renode
Авторское право (c) 2010-2026 Antmicro
Что такое Renode?
Renode был создан компанией Antmicro как инструмент виртуальной разработки для многомодульных встроенных сетей (как проводных, так и беспроводных) и предназначен для обеспечения масштабируемого рабочего процесса по созданию эффективных, протестированных и безопасных IoT-систем.
С Renode разработка, тестирование, отладка и симуляция неизменяемого ПО для IoT-устройств становится быстрой, экономичной и надежной.
Поддерживаемые архитектуры включают:
- ARMv7 и ARMv8 Cortex-A, Cortex-R и Cortex-M
- x86 и x86_64
- RISC-V
- SPARC
- POWER
- Xtensa
- MSP430X
Зачем использовать Renode?
Renode был создан на основе многолетнего опыта разработки программного обеспечения для встроенных систем — как для шлюзов, бортовых компьютеров, так и для сенсорных узлов и микроконтроллеров.
Тестирование и разработка физических встроенных систем затруднены из-за плохой воспроизводимости и отсутствия возможности заглянуть внутрь текущего состояния системы, особенно в многомодульных сценариях.
Renode решает эту проблему, позволяя запускать неизменяемые бинарные файлы, идентичные тем, которые вы обычно прошиваете на целевое оборудование, на виртуальной плате или системе плат.
Важный аспект инструмента заключается в том, что он симулирует не только ЦП, но и целые SoC (например, гетерогенные многоядерные SoC и различные периферийные устройства), а также проводные или беспроводные соединения между ними, что позволяет пользователям решать сложные сценарии и тестировать реальное производственное программное обеспечение.
Установка
Доступные сборки и релизы
Ночные сборки
Ночные сборки Renode для всех систем доступны на builds.renode.io.
Последние сборки всегда доступны как пакеты renode-latest.*.
Доступны следующие форматы пакетов:
renode-latest.linux-portable.tar.gz— переносимый пакет для Linux, включает среду выполнения dotnetrenode-latest.linux.tar.gz— предварительно собранный архив для Linux, требует установки dotnet на хостеrenode-latest.pkg.tar.xz— пакет для Arch Linuxrenode-latest.x86_64.rpm— пакет для Red Hat / Fedorarenode-latest.deb— пакет для дистрибутивов на основе Debianrenode-latest.osx-arm64-portable.dmg— пакет для macOS для Mac на Apple Silicon (arm64)renode-latest.osx-x64-portable.dmg— пакет для macOS для Mac на Intel (x86_64)renode-latest.windows-portable.zip— переносимый пакет для Windows, без установщикаrenode-latest.setup.exe— установщик для Windowsrenode-latest.tar.xz— исходный код Renode
Стабильные релизы
Стабильные, номерные релизы и их примечания к выпуску доступны в разделе Релизы на GitHub.
Установка через homebrew tap
На macOS как стабильные, так и ночные версии Renode можно установить с помощью Homebrew из нашего собственного tap. Чтобы установить стабильную версию, используйте brew install renode/tap/renode, или brew install renode/tap/renode-nightly для последней ночной сборки. Это установит все зависимости, включая предварительную настройку окружения Python для renode-test.
Использование переносимого пакета для Linux
Если вы пользователь Linux, проще всего использовать Renode — скачать последнюю версию linux-portable из раздела релизов и распаковать её с помощью:
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
Чтобы использовать его из любого места, перейдите в созданную директорию и добавьте её в системный путь:
cd renode_portable
export PATH="`pwd`:$PATH"
Обратите внимание, что переносимый пакет требует наличия GTK2 на хосте для работы с включенным графическим интерфейсом.
Перейдите к разделу Дополнительные требования, если хотите использовать Robot Framework для тестирования. В противном случае переходите к разделу 'Запуск Renode'.
Установка зависимостей
dotnet
Renode требует dotnet >= 6.0.
Чтобы установить dotnet, следуйте официальному руководству по установке.
Другие зависимости (только Linux)
В Ubuntu 20.04 вы можете установить оставшиеся зависимости с помощью следующей команды:
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev libicu-dev gcc python3 python3-pip
Если вы используете другой дистрибутив, вам нужно установить аналогичный список пакетов с помощью вашего менеджера пакетов; обратите внимание, что названия пакетов могут незначительно отличаться.
Установка из пакетов
Перейдите в раздел релизов этого репозитория и скачайте подходящий пакет для вашей системы.
Linux
Установите Renode с помощью вашего предпочтительного менеджера пакетов, используя предоставленные пакеты *.deb, *.rpm или *.pkg.tar.xz.
macOS
Используйте предоставленный *.dmg как обычно. Кроме того, чтобы использовать Renode из командной строки на macOS, создайте соответствующие алиасы, добавив alias renode='/Applications/Renode.app/Contents/MacOS/renode' и alias renode-test='/Applications/Renode.app/Contents/MacOS/renode-test' в ваш файл .bashrc или .zshrc, в зависимости от используемой оболочки.
Windows
Установите Renode из предоставленного файла *.msi. Установщик позволит добавить иконки на Рабочий стол и/или в меню Пуск, а также запись в PATH.
Дополнительные требования
Тестирование с помощью Robot Framework
Для написания и запуска тестовых сценариев Renode интегрируется с тестовым фреймворком Robot. Это требует установки Python 3 (в Windows также потребуется Cygwin — см. расширенные инструкции по установке) с pip (обратите внимание, что соответствующий пакет может называться python-pip или python3-pip в Linux).
После установки Python 3 и pip установите дополнительные модули:
python3 -m pip install -r tests/requirements.txt
Другие инструменты
Кроме того, каждый из инструментов в поддиректории /tools может содержать файл requirements.txt, отдельный от требований Renode.
Установите их в вашем виртуальном окружении с помощью pip install -r requirements.txt.
Сборка из исходного кода
Информацию о сборке Renode из исходного кода см. в документации.
Запуск Renode
После выполнения инструкций выше по установке из пакета команда renode должна быть доступна системно:
renode [flags] [file]
Если вы собрали его из исходного кода, перейдите в соответствующую директорию и используйте:
./renode [flags] [file]
Необязательный аргумент [file] позволяет указать путь к скрипту, который будет выполнен при запуске.
Скрипт поддерживает несколько опциональных флагов, наиболее полезные из которых представлены ниже:
-p Удаляет управляющие коды (например, цвета) из вывода
-P INT32 Вместо открытия окна прослушивает команды Monitor на указанном порту
-e COMMAND Выполняет команду при запуске (выполняется после опционального скрипта). Можно использовать несколько раз
--console Запускает Monitor в консоли вместо отдельного окна
--disable-gui Отключает поддержку GUI XWT. Автоматически устанавливает HideMonitor
--hide-monitor Не показывать окно Monitor
--hide-log Не показывать сообщения журнала в консоли
--hide-analyzers Не показывать анализаторы
-v Вывести версию и выйти
-h Показать справку и информацию об использовании
Renode можно запускать в системах Windows с аналогичным набором опциональных флагов.
Пример сценария
Ниже вы можете увидеть фрагмент прошивки, работающий на симулированном оборудовании. Monitor Renode отображается вместе с окном анализатора, показывающим вывод UART и логгер. Для получения дополнительной информации об этой конкретной настройке см. её выделенный репозиторий.
Альтернативные способы запуска Renode в Linux
renode-run
renode-run — это скрипт Python, который загружает и запускает Renode, и позволяет легко запускать демонстрации, доступные в Renodepedia, а также локальные ELF-файлы. Перейдите в репозиторий для получения инструкций по использованию.
renode-run полагается на переносимый пакет, и его главное преимущество — простота обновления Renode до последней ночной сборки одной командой.
pyrenode3
pyrenode3 — это библиотека Python для программного взаимодействия с Renode. Перейдите в репозиторий для получения инструкций по использованию.
Запуск Renode в Docker-контейнере
Если вы хотите запустить Renode в Docker, вы можете использовать предварительно собранные образы, доступные на Docker Hub.
Чтобы запустить Renode в интерактивном режиме на Linux, при условии, что Docker установлен в вашей системе, выполните одну из следующих команд:
- Для последней номерной версии:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:latest - Для ночной сборки dotnet:
docker run -ti -e DISPLAY -v $XAUTHORITY:/home/developer/.Xauthority --net=host antmicro/renode:nightly-dotnet
Это отобразит окно Monitor Renode. В качестве альтернативы вы можете указать свою собственную команду в конце строки выше.
Чтобы запустить образ в консольном режиме без передачи X-сервера, выполните:
docker run -ti antmicro/renode bash
Вы можете добавить дополнительные ключи -v в команду для монтирования своих собственных директорий.
Для получения дополнительной информации и соответствующего Dockerfile посетите репозиторий на GitHub.
Документация
Документация доступна на Read the Docs.
Лицензия и вклад
Renode выпущен под пермиссивной лицензией MIT. Подробности см. в файле LICENSE.
Мы рады принять сообщения об ошибках, запросы функций и вклад через GitHub pull request'ы / issue. Подробности см. в файле CONTRIBUTING.md.
Коммерческая поддержка
Коммерческая поддержка Renode предоставляется компанией Antmicro, которая специализируется на помощи своим клиентам в освоении новых встроенных технологий и современных методологий разработки.
Antmicro создала и поддерживает фреймворк Renode и связанные инструменты, и с удовольствием предоставляет такие услуги, как добавление новых платформ, интеграций, плагинов и инструментов.
Чтобы узнать о наших услугах, свяжитесь с нами по адресу [email protected].