
Automotive Grade LinuxをMacOS上で動かしてみた
大阪オフィスの小倉です。
AWS IoT FleetWiseに関連して調べていく中で、Automotive Grade Linuxというものを見つけました。
この記事ではMacOS上でAutomotive Grade Linuxのデモを動かしてみる方法を紹介します。
Automotive Grade Linuxとは
車載インフォテインメントやコネクテッドカー機能の開発を効率化する共通基盤、という理解をしています。
以下はウェブサイトからの抜粋(日本語訳)です
Automotive Grade Linuxは、自動車メーカー、サプライヤー、テクノロジー企業を結集し、
コネクテッドカー向けの完全にオープンなソフトウェアスタックの開発と導入を加速させる、共同オープンソースプロジェクトです。
AGLは、Linuxを中核として、新機能や技術の迅速な開発を可能にする、
事実上の業界標準となるオープンプラットフォームをゼロから開発しています。
参加企業を見ると、日本の企業が数多く参加しているようです。またAWSの名前も見えますね。
やってみる
言葉だとどんなものかピンとこないので動かしてみます。
環境 | バージョン |
---|---|
ローカルMac | M2 Pro 16GB MacOS 15.4.1 |
QEMU | 10.0.0 |
以下のクイックスタートの手順を見ながら進めます。
Quickstart - Using Ready Made Images - AARCH64 - ARM 64bit
1.イメージのダウンロード
ドキュメントにリンクされている圧縮されたビルド済みイメージとカーネルイメージをダウンロードしておきます。
- https://download.automotivelinux.org/AGL/release/salmon/latest/qemuarm64/deploy/images/qemuarm64/agl-ivi-demo-qt-qemuarm64.ext4.xz
- https://download.automotivelinux.org/AGL/release/salmon/latest/qemuarm64/deploy/images/qemuarm64/Image
2.QEMUのインストール
homebrewを使ってQEMUをインストールします
brew install qemu
3.VNCビューアのインストール
リモート接続用ビューアについてはvinagre
が紹介されていますが、任意のVNCクライアントで良さそうです。
私はRealVNC Viewerをインストールしました。
brew install --cask vnc-viewer
4.圧縮ファイルの解凍
ダウンロードした2つのファイルを作業用ディレクトリに配置し、圧縮イメージを展開します。
xz -v -d agl-ivi-demo-qt-qemuarm64.ext4.xz
ogura.koichi: agl-demo/ % tree
.
├── agl-ivi-demo-qt-qemuarm64.ext4
└── Image
1 directory, 2 files
5.QEMU起動
ドキュメントに記載されたコマンドは以下です。
( sleep 5 && vncviewer ) &
qemu-system-aarch64 -cpu cortex-a57 -machine virt -nographic \
-net nic,model=virtio,macaddr=52:54:00:12:34:58 \
-net user -m 2048 -monitor none -smp 2 -soundhw hda -device usb-ehci \
-device virtio-rng-pci -device VGA,vgamem_mb=64,edid=on \
-device qemu-xhci -device usb-tablet -device usb-kbd -vnc :0 \
-kernel Image -append "console=ttyAMA0,115200 root=/dev/vda verbose systemd.log_color=false " \
-drive format=raw,file=agl-ivi-demo-qt-qemuarm64.ext4 \
-snapshot
私の環境ではオプション指定でエラーになったため、修正し以下コマンドで起動しました。
qemu-system-aarch64 -cpu cortex-a57 -machine virt -nographic \
-net nic,model=virtio,macaddr=52:54:00:12:34:58 \
-net user -m 2048 -monitor none -smp 2 -device intel-hda -device hda-duplex -device usb-ehci \
-device virtio-rng-pci -device VGA,vgamem_mb=64,edid=on \
-device qemu-xhci -device usb-tablet -device usb-kbd -vnc :0 \
-kernel Image -append "console=ttyAMA0,115200 root=/dev/vda verbose systemd.log_color=false " \
-drive format=raw,file=agl-ivi-demo-qt-qemuarm64.ext4 \
-snapshot
変更点
- 1行目の
( sleep 5 && vncviewer ) &
はVNCビューアに接続するためのコマンドなので、一旦除外し、後で接続します。 -soundhw: invalid option
のエラーとなったため、-soundhw hda
を-device intel-hda -device hda-duplex
に変更
起動したら、VNC Viewerでlocalhostに対して接続します。
車のIVIに相当する画面が表示されました。なお、画面操作すると反応は遅いです。
VNC接続すると画面が横向き表示されますが、うまく縦向きに変更できなかったため、
以降は画面を90度回転させた画面で紹介していきます。
画面の紹介
スタート画面
スマートフォンのように、様々な機能のボタンがならんでいます。
HVAC画面
社内のエアコンを操作する画面のようです。
以前車を購入したとき、メーカの純正ナビを付けているとタッチパネルから車の操作ができる話を聞いた記憶がありますが、
こういうことだったんだな、と今更理解しました。
DASHBOARD画面
上部に走行スピード、下部に回転数とガソリン、タイヤについては空気圧を表示するようですね。かっこいい。
NAVIGATION画面
当然のようにナビ地図も搭載されています。
まとめ
Automotive Grade LinuxをMacOS上で起動してさわってみました。 実際に動かしてみると、ちょっと車の裏側を覗けた気分になれました。
今回挙げた内容はおそらく機能のほんの一部で、ドキュメントを見ると、音声エージェント/アシスタント
や統合HMI
のような項もあります。
また、実行方法も、Raspberry Pi 4で実行する方法や、EC2で動かすためのドキュメントが書かれているので、機会があれば試してみたいと思います。