UbuntuにORiN3 Remote Engineをインストールしてみる

# UbuntuにORiN3 Remote Engineをインストールしてみる

## はじめに
ORiN3はWindowsだけでなくLinuxでも動作します。今回は、WSL上のUbuntu 24に **ORiN3 Remote Engine** をインストールする手順をまとめました。  
実際に試しながら動作確認を行っているので、WSLを使っている方やLinux環境で試したい方の参考になれば幸いです。

## 1. 前準備

### プロキシ設定

もしネットワークがプロキシ経由になっている場合、APTコマンドもプロキシ設定が必要です。  
以下の設定ファイルを確認してください。

```bash
$ sudo nano /etc/apt/apt.conf.d/95proxies
```

設定例：
```conf
Acquire::http::Proxy "http://<プロキシのIP>:<ポート>";
Acquire::https::Proxy "http://<プロキシのIP>:<ポート>";
```

プロキシを使用していない場合、この手順はスキップできます。

### Ubuntuのバージョンなど

以下の環境で試してみた結果を記事に書いています。

```bash
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble
```

## 2. .NET8.0のインストール

ORiN3 Remote Engineは.NET 8.0で動作するため、まずは.NET Runtimeのインストールを行います。
パッケージリストの更新して.NET 8.0 RuntimeとASP.NET Core Runtimeをインストールしてください。

```bash
$ sudo apt update
$ sudo apt install -y dotnet-runtime-8.0
$ sudo apt install -y aspnetcore-runtime-8.0
```

ランタイムを列挙して以下の項目が確認できればOKです。
8.0系のランタイムが入っていれば問題ないですがなるべく新しいものを使ってください。

```bash
$ dotnet --list-runtimes
Microsoft.AspNetCore.App 8.0.15 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.15 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
```

無事に表示されればインストール完了です。
※Runtimeの代わりに.NET 8.0 SDKをインストールしても構いません

## 3. APTの設定

### 公開鍵の登録

次に、ORiN3 Remote Engineのパッケージを取得するための公開鍵を登録します。
もし `gpg` がインストールされていない場合は先にgpgをインストールしてください。

```bash
$ sudo apt install gpg
```

以下のコマンドを実行して公開鍵を登録します。

```bash
$ sudo mkdir -p /etc/apt/keyrings  
$ curl -fsSL https://packages.iot.fa.denso-wave.com/fa/iot/apt/public.key | sudo gpg --dearmor -o /etc/apt/keyrings/dnwa.gpg
```

### リポジトリの追加

APTのパッケージリストにORiN3のリポジトリを追加します。

```bash
$ echo "deb [signed-by=/etc/apt/keyrings/dnwa.gpg] https://packages.iot.fa.denso-wave.com/fa/iot/apt stable main" | sudo tee /etc/apt/sources.list.d/dnwa.list
```

リポジトリを追加したらパッケージリストを更新しておきます。
```bash
$ sudo apt update
```

## 4. ORiN3 Remote Engineのインストール

準備が整ったら、いよいよインストールです。

```bash
$ sudo apt install orin3.remoteengine
```

インストールが完了したら、以下のコマンドで確認できます。
正常に起動している場合はバージョンやエンドポイントが表示されるはずです。

```bash
$ orin3.remoteengine version
ORiN3.RemoteEngine  : 1.1.7
ORiN3.RemoteEngined : 1.1.7

$ orin3.remoteengine ep ls
PROTOCOL        IP              PORT            CLIENT_AUTHENTICATION
http            127.0.0.1       7103            Disabled
```
### 接続確認

WSL環境であればホストのWindowsからORiN3 Configuratorを使ってWSL上のORiN3 Remote Engineに127.0.0.1のアドレスを指定して接続可能です。
※ORiN3 Configuratorのセットアップ手順に関しては [ORiN3入門：環境構築ガイド＋GUIツールで動かしてみる①](https://qiita.com/kkikzk/items/11b2e353c1e8e629154d) を参照ください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263117/97d82361-7646-4b2c-8824-6c4c33685854.png)

> 注意点①
ホストのWindowsから接続しようとしてつながらない場合はプロキシの設定を見直してみてください。

> 注意点②
ホストのWindows側にもORiN3 Remote Engineがセットアップされていると127.0.0.1:7103を指定した場合にはWindows側のORiN3 Remote Engineに接続されてしまします。
その場合どちらかのポートを変更してください。

> 注意点③
ホストのWindows側から接続する際に127.0.0.1ではなく外部向けのIPアドレスで接続する場合は注意が必要です。
ORiN3 Remote Engineはデフォルトでは127.0.0.1からの通信しか許可していません。
権限設定を変更する必要があります。

---

**関連情報（公式）**
- [ORiN協議会 GitHubリポジトリ](https://github.com/ORiN-Consortium/ORiN3)
- [デンソーウェーブ ORiN3公式ページ](https://www.denso-wave.com/ja/system/iot/product/orin3-runtime.html)
- [Microsoft Store ORiN3 Runtime](https://apps.microsoft.com/detail/xpdmcgrx6kwj25?hl=ja-JP&gl=JP)