Armadillo-IoT(A6E) 開発環境を Macで整える
はじめに
armadilloの推奨開発環境にMac(Mチップ)は存在しないため自分で構築する必要があります。
Lチカまでは仮想環境でできたのでメモとして公開します。
セミナー資料からポイントを絞ってしますので参考程度にどうぞ。
機種と環境
- armadillo A6E
- M4 Macbook pro
- 仮想環境はUTM+ubuntu22.04
引用元資料
こちらが公式の資料です。
検索すると様々なドキュメントが出てきますがこれが一番みやすい。
推奨の仮想環境パッケージはMacでは動かない
VirtualBox 7.1 以降の開発者プレビュー版では Apple Silicon に対応し始めましたが、x86/x86_64 ゲスト OS のエミュレーションには対応しておらず、M チップ上で実用的に使える状態ではありません。
やったこと
- UTMにubuntuをインストール
- ATDE環境を構築
- armadilloの準備/設定
1.UTMにubuntuをインストール
こちらは割愛。
私はubuntu22.04にしました。本家がDebian11ベースなのでそちらに合わせたほうが無難だったかもしれません。
合わせてVScodeもインストールしてください
2.ATDE環境を構築
UTM

Mac<->armadillo<->UTMをネットワーク
公式の通りに接続。
(ルーターはなくてもいいと思います。)

Mac <-> armadillo
こちらはmicroUSBで armadilloとMacを接続してください。
シリアルで接続確認
ls -la /dev/cu*
crw-rw-rw- 1 root wheel 0x9000003 Jul 16 10:22 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 0x9000001 Jul 16 10:22 /dev/cu.debug-console
crw-rw-rw- 1 root wheel 0x9000005 Jul 25 15:48 /dev/cu.usbserial-3140
// シリアルで接続してみる
screen /dev/cu.usbserial-3140 115200
UTM <-> Armadillo 接続メモ
UTM上のUbuntu仮想マシンから、Armadilloデバイスに対して通信を行う設定手順。
ネットワーク設定:UTM で 2つのNICをブリッジ接続
UTM のネットワーク設定画面で、2つのネットワークインターフェースを追加し、それぞれブリッジに接続します。
- 1つ目:通常のインターネットアクセス用。(ex: enp0s1)
- 2つ目:ArmadilloとのLink-Local通信用。(ex: enp0s2)
設定イメージ


初期状態の確認
ping 169.254.190.160
# → Destination Host Unreachable
ip a
# enp0s2 は DOWN 状態
設定手順
1. enp0s1 の不要なアドレスとルートを削除
sudo ip addr del 169.254.190.200/16 dev enp0s1
sudo ip route del 169.254.0.0/16 dev enp0s1
# RTNETLINK errors は無視してOK
2. enp0s2 を UP にする
sudo ip link set dev enp0s2 up
3. enp0s2 に IP アドレスを付与
sudo ip addr add 169.254.190.200/16 dev enp0s2
4. ルートを enp0s2 向けに追加
sudo ip route add 169.254.0.0/16 dev enp0s2
# 「File exists」と出たら無視してOK
動作確認
ping -I enp0s2 169.254.190.160
# → 応答が返ればOK
curl -I http://169.254.190.160:58080
ブラウザで以下のURLを開いてアクセス確認:
http://169.254.190.160:58080

結果ログ例
仮想環境-> armadillo
PING 169.254.190.160 (169.254.190.160) from 169.254.190.200 enp0s2: 56(84) bytes of data.
64 bytes from 169.254.190.160: icmp_seq=1 ttl=64 time=3.24 ms
64 bytes from 169.254.190.160: icmp_seq=2 ttl=64 time=2.12 ms
...
備考
-
169.254.x.xは Link-Local アドレス (自動割当IP) - enp0s2 を Armadillo接続用に専用化するのがポイント
- UTM側に2つのNICが必要(通常LAN + Armadillo用)
3.armadilloの初期設定
mkswuインストール
1. mkswu とは
- Armadillo向けの SWUファイル (ソフトウェアアップデート) を生成する公式ツール
- Atmark Techno が GitHub で公開、ATDEにも同梱
2. 入手方法
-
ATDE を使う (公式推奨)
- OVA イメージを VirtualBox などで起動すると最初から mkswu が利用可能
-
GitHub から clone
sudo apt update
sudo apt install cpio zstd jq xxd gawk
git clone https://github.com/atmark-techno/mkswu.git
cd mkswu
./mkswu/mkswu --config-dir ./conf デスクリプションファイル.desc
3. PATH の設定
cd ..
mkdir -p ~/.local/bin
ln -s ~/mkswu/mkswu ~/.local/bin/mkswu
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
which mkswu # → /home/user/.local/bin/mkswu
4. VSCode の settings.json 設定 (VSCodeターミナル用)
"terminal.integrated.env.linux": {
"PATH": "/home/user/.local/bin:${env:PATH}"
}
mkswu 初期化 (鍵・設定ファイル生成)
./mkswu --config-dir ./conf --init
- Common Name: 任意 (例: armadillo)
- 秘密鍵パスワード: 空でもOK(2回 Enter)/本番は8字以上推奨
- AES 暗号化: N(通常)
- Atmark署名許可: Y(通常)
- root パスワード: 8文字以上+英数字記号
出力ファイル(conf/ 内):
mkswu.conf-
swupdate.pem(公開鍵) -
swupdate.key(秘密鍵)
SWU ファイル生成
./mkswu --config-dir ./conf initial_setup.desc
# → initial_setup.swu が生成される
VSCode 拡張からの実行エラー対策
-
問題:
generate_initial_setup_swu.shがmkswu: command not found - 原因: VSCode は非対話シェルで ~/.bashrc を読まない
-
解決策: 以下を
settings.jsonに追加
"terminal.integrated.env.linux": {
"PATH": "/home/user/.local/bin:${env:PATH}"
}
VSCode 再起動後に mkswu が認識される
セットアップ後

初期化
資料の通りinitial_setup.swuをインストールすればOK
他人の署名が残っている場合
初期化しても署名エラーが残っている場合は署名をリセットした方がいい。
Armadillo上で実行:
abos-ctrl certificates reset
その後 initial_setup.swu を再適用

Discussion