このプロジェクトについて
LIVI(Linux In-Vehicle Infotainment)は、Apple CarPlayおよびAndroid Autoのアクセサリ側をネイティブに実装したオープンソースのヘッドユニットアプリケーションです。Linux(ARMおよびx86_64、Raspberry Pi 4/5やCM4/CM5を含む)とmacOS(Apple SiliconおよびIntel)で動作し、GPL-3.0-or-laterの下で配布されています。
接続性
- Apple CarPlay、有線および無線、LinuxとmacOS上で。無線にはBluetoothアダプタと、LIVI専用のアクセスポイント用Wi-Fiインターフェースが必要です。有線はOTGなしの任意のUSBポートで動作します。
- Android Autoは全プラットフォームで有線、無線Android AutoはLinuxで。
- CarPlayにはAppleコプロセッサによるMFi認証が必要で、ボード上のI²Cバスに有線接続するか、LIVI Linkを介してネットワーク経由で到達します。LIVIはチップを出荷したりバイパスしたりせず、macOSでのAppleのBasic Accessory Authenticationをサポートしません。
メディアと入力
- ネイティブのゼロコピーGStreamerビデオパイプラインとハードウェアアクセラレーションによるH.264/H.265デコード。VA-APIドライバがない場合はソフトウェアデコードにフォールバックします。
- 低遅延オーディオ、通話とマイクアップリンク、アルバムアート付きの再生中メタデータ、ターンバイターンナビゲーションデータ。
- タッチ、ノブ/D-Padおよびハードキー入力、デイ/ナイトモード、GPSのスマートフォンへの転送。
マルチセッション
- 無線CarPlay、有線CarPlay、無線Android Autoにまたがって複数のスマートフォンを同時に接続できます。有線Android Autoは1台のデバイスに制限されます。セッションは状態、バッテリー、信号、メディアメタデータ、ナビゲーションをバックグラウンドで更新し続け、切り替えは再接続ではなくハンドオーバーです。
ディスプレイとキャリブレーション
- マルチディスプレイ対応:Main、Dash、Auxウィンドウを別々の物理ディスプレイに配置でき、機能は非排他的に割り当て可能です。
- ストリーム解像度、ビューエリアインセット、セーフエリアは、CarPlayとAndroid Autoの両方でメインストリームとクラスタストリームに対して独立して設定できます。
- ガンマ、コントラスト、RGBチャンネルのソフトウェアディスプレイキャリブレーション。完成したフレームに対して単一のコンポジタパスとして適用されます。
テレメトリとGPS
- ダッシュボード(作業中)はIPC/ソケット経由でテレメトリを消費します。scripts/toolsのCLIがテストデータをプッシュします。
- GPSはシリアルポート上のNMEA-0183レシーバを読み取り、モジュール識別とRFフロントエンド状態のために追加のu-blox UBXポーリングを行います。レシーバはシステム時刻とタイムゾーンも設定できます。
インストールとビルド
- 単一のインストールスクリプトがデスクトップとヘッドレスホストをサポートし、aptまたはdnfを使用、Raspberry Pi OS、Ubuntu 26.04、Fedora 44でテスト済みです。OpenGL ES 3.xが必要です。Pi 4/5とCM4/CM5はDebian 13(Trixie)が必要で、Pi 3以前はサポートされません。
- Linux x86_64用のビルド済みAppImageとmacOS arm64用のdmgが提供されています。
- ビルドにはNode.js 24.xとpnpm、安定版Rust(≥1.88)、GStreamer開発パッケージ、LinuxではWayland/xkbcommonヘッダーとCarPlayおよび無線Android Auto用のランタイムパッケージ(bluez、hostapd、dnsmasq-base、iw、rfkill、avahi、pulseaudio-utils)が必要です。macOSではビデオアドオンがGStreamer.frameworkにリンクします。
デバッグフラグとログの場所はDEBUGGING.mdに記載されています。このプロジェクトはAppleやGoogleと提携しておらず、承認も受けていません。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.