はじめに
Armadillo Base OS上で動作するアプリケーションを構築するには、アプリケーションを実行するためのコンテナ構築が必要です。
アプリケーションコンテナを構築するためのソフトウェア資産をダウンロードするために開発環境をインターネットへ接続することが欠かせません。
また、開発環境で構築したコンテナをArmadilloへ転送してリモートデバッグを行うには、Armadilloと開発環境がネットワーク経由で接続されている必要があります。
このため、開発環境とArmadilloがインターネット接続可能な同一ネットワーク上に接続されているのが最も適当でありますが、
様々な理由からそのような接続構成を取ることが出来ない場合もあるかと存じます。
このような場合にも、Oracle VirtualBoxやATDEのネットワーク設定を都度切り替えることで、少し手間はかかりますがArmadillo Base OSのアプリケーション開発を行うことが出来ます。
具体的な方法について説明します。
VirtualBoxおよびATDEのネットワーク接続について
当社が提供する開発環境ATDEはVirtualBox上で動作する仮想マシンです。
仮想マシンがネットワークに接続するためには、いくつかの方法がありますが、
最もシンプルでわかりやすいのは、ホストOSのネットワークインタフェースに対してブリッジ接続を行うというものです。
例えば、PCが無線LANで社内ネットワークに繋がっていて、かつArmadilloとはEthernetで接続しているような場合、
無線LANインタフェースとブリッジ接続すると、社内ネットワークおよびそこから先のインターネットへ接続できます。
ただし、この時Armadilloとは通信が出来ません。
一方で、Ethernetポートとブリッジ接続を行うと、Armadilloとは通信が出来ます。
ただし、社内ネットワークに接続することが出来ません。
以上のように、インターネット接続とArmadilloとの接続がそれぞれ異なるネットワークインタフェースを利用している場合、
ブリッジ接続先を切り替えてそれぞれ個別に通信を行う必要があります。
ただ、そのような方法は非常に手間がかかるので、出来れば一括で通信できるようにしたいと思います。
この記事で紹介する手順では、以下のような環境を想定しています。
- 開発環境(ATDE)をWindows PCでOracle VirtualBoxを使って動作させていること
- Windows PCは無線LANで社内ネットワークに接続されていること
- 無線LANのIPアドレスは自動設定となっていること
- Windows PCは社内ネットワーク経由でインターネットへ接続していること
- WIndows PCとArmadilloがEthernetケーブルで1対1でつながっていること
- Windows PCのEthernetポートのIPアドレスは固定IPアドレスが設定されておらず、自動設定となっていること
- ArmadilloのEthernetポートのIPアドレスは出荷時のまま設定変更されておらず、自動設定となっていること
このケースの場合、Windows PCのEthernetポートのIPアドレス設定が自動設定になっていれば、
Windows PCのネットワーク設定については特段設定を変更することなく通信することが出来ます。
本来、複数のネットワーク機器が通信を行う場合には、それぞれに適切なIPアドレスを割り当てる必要があります。
多くのネットワークでは、DHCPサーバによってIPアドレスの割り当てが行われます。
そのため、DHCPサーバ機能を持たない2つの機器を持たない複数の機器を接続しても、IPアドレスが割り当てられることなく、通信を行うことが出来ません。
このようなケースへの対策として、Windows PCやArmadilloにはリンクローカルアドレスという機能が存在します。
DHCPサーバが存在しない場合に、特定の範囲内のIPアドレスを自身に割り当てる機能です。
この機能によって、Armadilloと開発環境のPCを1対1でEthernet接続した場合も、IPアドレスの設定を行うことなく通信を行うことが出来ます。
設定方法
VirtualBoxの設定を変更して複数のネットワークに接続できるようにします。
また、それぞれのネットワークに同時に接続できるようにするために、ATDE内のファイルを編集します。
仮想マシン設定
ATDEを起動していない状態でOracle VirtualBoxの仮想マシン設定画面を開きます。 「ネットワーク」タブを開いてください。 「アダプター1」のタブを選択して「割り当て」に「ブリッジアダプター」を選択、 「名前」に適切なネットワークアダプターを選択します。

ここには各ネットワークアダプターの種別で無く正式な名称が表示されるのでご注意ください。
各ネットワークアダプタの名称がわからないときは、
Windows 11では、「設定」→「ネットワークとインターネット」→「ネットワークの詳細設定」画面を開くと、
ネットワークアダプターの種別と名称が表示されるので、ここを参照してください。
「アダプター2」のタブを開いて、「ネットワークアダプターを有効化」にチェックを入れ、「アダプター1」と同様に設定を行います。
「アダプター1が無線LANであれば、アダプター2はEthernet」というように「名前」には「アダプター1]で選んだのとは別のネットワークアダプターを選択してください。

設定を完了したらATDEを起動してください。ATDEのネットワークアダプタとして「enp0s3」と「enp0s8」が作られています。
ATDE設定
ATDEのネットワーク設定を変更します。 画面右上のネットワークのアイコンをクリックしてください。
「enp0s3」と「enp0s8」のどちらでもよいので、三角形のアイコンをクリックして、
「有線設定」をクリックしてください。
表示されたメニューのうち、enp0s8の歯車アイコンをクリックしてください。
「IPV4」のタブを選択して「IPV4メソッド」の「リンクローカルのみ」を選択して「適用」をクリックしてください。
enp0s8の横のトグルスイッチをクリックして一度OFFにした後、再度クリックしてONにすると、変更した設定が適用されます。
これで、それぞれのネットワークが同時に使用できるようになります。
付録 Armadillo Base OSアプリケーション開発時のネットワーク接続の必要性について
Armadillo Base OS向けアプリケーションの開発各フェーズにおけるネットワーク接続の必要性について説明します。
初期設定
初めてATDEでのアプリケーション開発を行う場合は、様々な環境設定が必要となります。 この時は様々なソフトウェアのインストールを行うこととなるため、インターネット接続が必要となります。
プロジェクト作成
ABOSで動作するコンテナアプリケーションの開発にあたって、VSCodeの拡張機能を使ってプロジェクト作成を行います。 この時、プロジェクトに必要なファイルをダウンロードしてくるため、インターネット接続が必要となります。
コンテナ作成
プロジェクト内の各ファイルを編集してコンテナアプリケーションを作成します。 DockerhubやDebianリポジトリなどから様々なリソースをダウンロードしてコンテナをビルドするため、インターネット接続が必要となります。
SWUファイルの書き込み
コンテナアプリケーションやユーザー固有の証明書などをArmadilloに書き込むには、開発環境で生成したSWUファイルをArmadilloへ転送する必要があります。 USBメモリ等の外部メディアでファイルをコピーすることも可能ですので、必ずしもArmadilloと通信する必要はありませんが、 Armadilloと通信できる状態にしておくと、VSCodeのメニュー操作でインストールを行うことが出来るため便利です。
アプリケーションのデバッグ実行
開発環境で構築したコンテナアプリケーションをArmadillo上で動作させ、標準出力を開発環境でモニタすることが出来ます。 開発環境とArmadilloとの間でSSHによる通信を行う必要があるため、Armadilloとの通信が出来る状態にする必要があります。
Armadilloの各種設定
各種のネットワーク設定など、Armadillo Base OSの設定については、ABOS Webという設定GUIを用意しています。 ABOS WebはブラウザからArmadilloにアクセスして表示します。 ATDEにインストールされているブラウザ(Firefox)でアクセスする場合は、ATDEのネットワーク設定をArmadilloと通信できる状態にしておく必要があります。 ただし、ホストOS(Windows)のブラウザからアクセスする場合は特にATDEの設定を変更する必要はありません。