
renode v1.17.0
マルチノードの組み込みシステムおよびIoTシステム向けに、未変更のソフトウェアを開発、テスト、デバッグするためのオープンソースシミュレーションフレームワーク。ARM、RISC-V、x86などをサポート。
Renode
Copyright (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は、仮想ボードまたはボードシステム上で、通常ターゲットハードウェアに書き込むのと同一の未改変バイナリを実行できるようにすることで、この問題に対処します。
このツールの重要な側面は、CPUだけでなくSoC全体(例:ヘテロジニアスなマルチコアSoCや各種ペリフェラル)と、それらの間の有線または無線接続をシミュレーションすることで、複雑なシナリオに対応し、実際のプロダクションソフトウェアをテストできるようにすることです。
インストール
利用可能なビルドとリリース
ナイトリービルド
全システム向けのRenodeのナイトリービルドは、builds.renode.io で入手できます。
最新のビルドは常に renode-latest.* パッケージとして利用可能です。
以下のパッケージ形式が利用できます。
renode-latest.linux-portable.tar.gz- ポータブルLinuxパッケージ、dotnetランタイム同梱renode-latest.linux.tar.gz- Linuxプリビルドアーカイブ、ホストにdotnetのインストールが必要renode-latest.pkg.tar.xz- Arch Linuxパッケージrenode-latest.x86_64.rpm- Red Hat / Fedoraパッケージrenode-latest.deb- Debianベースのディストリビューション向けパッケージrenode-latest.osx-arm64-portable.dmg- Apple Silicon (arm64) Mac向けmacOSパッケージrenode-latest.osx-x64-portable.dmg- Intel (x86_64) Mac向けmacOSパッケージrenode-latest.windows-portable.zip- Windowsポータブルパッケージ(インストーラーなし)renode-latest.setup.exe- Windowsインストーラーrenode-latest.tar.xz- Renodeソースコード
安定リリース
安定版の番号付きリリースとそのリリースノートは、GitHubのReleasesセクションから入手できます。
Homebrew tap からのインストール
macOSでは、安定版とナイトリー版の両方のRenodeを、カスタムtapからHomebrewを使ってインストールできます。
安定版をインストールするには brew install renode/tap/renode、最新のナイトリービルドをインストールするには brew install renode/tap/renode-nightly を使用します。
これにより、renode-test 用のPython環境の事前設定を含む、すべての依存関係がインストールされます。
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"
ポータブルパッケージでは、UIを有効にして実行するためにホストに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
提供されている *.deb、*.rpm または *.pkg.tar.xz パッケージを使用して、お好みのパッケージマネージャーでRenodeをインストールします。
macOS
提供されている *.dmg を通常通り使用します。
さらに、macOSのコマンドラインからRenodeを使用するには、使用しているシェルに応じて、.bashrc または .zshrc ファイルに alias renode='/Applications/Renode.app/Contents/MacOS/renode' と alias renode-test='/Applications/Renode.app/Contents/MacOS/renode-test' を追加して適切なエイリアスを作成します。
Windows
提供されている *.msi ファイルからRenodeをインストールします。インストーラーは、デスクトップやスタートメニューにアイコンを追加し、PATHにエントリを追加することを許可します。
追加の前提条件
Robot Framework テスト
テストケースを作成して実行するために、RenodeはRobotテストフレームワークと統合されています。
これには、pip を使用してPython 3をインストールする必要があります(Windowsでは、Cygwinも必要です。高度なインストール手順を参照)。Linuxでは、該当するパッケージが python-pip または python3-pip と呼ばれる場合があることに注意してください。
Python 3と pip を用意したら、追加のモジュールをインストールします。
python3 -m pip install -r tests/requirements.txt
その他のツール
さらに、/tools サブディレクトリ内の各ツールには、Renodeの要件とは別の requirements.txt ファイルが含まれている場合があります。
仮想環境で 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 XWT GUIサポートを無効にする。自動的にHideMonitorを設定する
--hide-monitor Monitorウィンドウを表示しない
--hide-log ログメッセージをコンソールに表示しない
--hide-analyzers アナライザを表示しない
-v バージョンを表示して終了する
-h ヘルプと使用法の情報を表示する
RenodeはWindowsシステムでも同様のオプションフラグセットで実行できます。
サンプルシナリオ
以下は、シミュレートされたハードウェア上で動作するファームウェアの一部です。 Renode Monitorが、UART出力とロガーを表示するアナライザウィンドウと共に表示されています。 この特定のセットアップの詳細については、専用のリポジトリを参照してください。
Linux上でRenodeを実行する代替方法
renode-run
renode-run は、Renodeをダウンロードして実行するPythonスクリプトで、Renodepedia で利用可能なデモやローカルのELFファイルを簡単に実行できます。
使用手順はリポジトリを参照してください。
renode-run はポータブルパッケージに依存しており、その主な利点は、単一のコマンドでRenodeを最新のナイトリービルドに簡単に更新できることです。
pyrenode3
pyrenode3 は、Renodeとプログラム的に連携するためのPythonライブラリです。
使用手順はリポジトリを参照してください。
DockerコンテナでのRenodeの実行
DockerでRenodeを実行したい場合は、Docker Hub で利用可能なプリビルドイメージを使用できます。
LinuxでインタラクティブモードでRenodeを起動するには、システムに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
これによりRenode Monitorウィンドウが表示されます。 または、上記の行の最後にカスタムコマンドを指定することもできます。
Xサーバーのパススルーなしでコンソールモードでイメージを実行するには、以下を実行します。
docker run -ti antmicro/renode bash
コマンドにさらに -v スイッチを追加して、独自のディレクトリをマウントできます。
詳細と基になるDockerfileについては、GitHub上のリポジトリを参照してください。
ドキュメント
ドキュメントはRead the Docsで入手できます。
ライセンスとコントリビューション
Renodeは寛容なMITライセンスの下でリリースされています。 詳細はLICENSEファイルを参照してください。
バグ報告、機能リクエスト、GitHubのプルリクエストやIssueによるコントリビューションを歓迎します。 詳細はCONTRIBUTING.mdファイルを参照してください。
商用サポート
Renodeの商用サポートは、クライアントが新しい組み込み技術と最新の開発手法を採用するのを支援することに特化した企業であるAntmicroによって提供されています。
AntmicroはRenode Frameworkと関連ツールを作成し、維持しており、新しいプラットフォーム、統合、プラグイン、ツールの追加などのサービスを喜んで提供します。
サービスに関するお問い合わせは、[email protected]までご連絡ください。