À propos du projet

LIVI (Linux In-Vehicle Infotainment) est une application d'unité centrale open source qui implémente nativement le côté accessoire d'Apple CarPlay et d'Android Auto. Elle fonctionne sous Linux (ARM et x86_64, y compris Raspberry Pi 4/5 et CM4/CM5) et macOS (Apple Silicon et Intel), et est distribuée sous GPL-3.0-or-later. Connectivité - Apple CarPlay, filaire et sans fil, sous Linux et macOS. Le sans fil nécessite un adaptateur Bluetooth plus une interface Wi-Fi dédiée au point d'accès propre à LIVI ; le filaire fonctionne sur n'importe quel port USB sans OTG. - Android Auto filaire sur toutes les plateformes ; Android Auto sans fil sous Linux. - CarPlay nécessite une authentification MFi via un coprocesseur Apple, soit connecté au bus I²C de la carte, soit atteint par le réseau via un LIVI Link. LIVI ne fournit ni ne contourne la puce, et ne prend pas en charge l'authentification Basic Accessory d'Apple sous macOS. Médias et entrées - Pipeline vidéo GStreamer natif sans copie avec décodage matériel H.264/H.265 ; repli sur décodage logiciel en l'absence de pilote VA-API. - Audio à faible latence, appels téléphoniques et liaison montante du microphone, métadonnées de lecture en cours avec pochette d'album, et données de navigation turn-by-turn. - Entrées tactiles, molette/D-Pad et touches physiques, mode jour/nuit, et transmission du GPS vers le téléphone. Sessions multiples - Plusieurs téléphones peuvent être connectés simultanément en CarPlay sans fil, CarPlay filaire et Android Auto sans fil ; Android Auto filaire est limité à un appareil. Les sessions conservent leur état, la batterie, le signal, les métadonnées multimédias et la navigation mis à jour en arrière-plan, et le basculement est un transfert plutôt qu'une reconnexion. Écrans et GPS - Prise en charge multi-écrans : les fenêtres Main, Dash et Aux peuvent être placées sur des écrans physiques distincts, avec une attribution non exclusive. - La résolution du flux, les marges de la zone de vue et la zone de sécurité sont configurables indépendamment pour les flux principaux et de cluster, sur CarPlay comme sur Android Auto. - Calibration logicielle de l'affichage pour le gamma, le contraste et les canaux RVB, appliquée en une seule passe de composition sur l'image finale. Télémétrie et GPS - Un tableau de bord (en cours de développement) consomme la télémétrie via IPC/socket ; une CLI dans scripts/tools pousse des données de test. - Récepteurs GPS NMEA-0183 sur un port série, avec interrogation u-blox UBX supplémentaire pour l'identité du module et l'état du front-end RF. Le récepteur peut aussi régler l'heure et le fuseau horaire du système. Installation et compilation - Un script d'installation unique prend en charge les hôtes de bureau et sans écran, via apt ou dnf, testé sur Raspberry Pi OS, Ubuntu 26.04 et Fedora 44. OpenGL ES 3.x est requis ; Pi 4/5 et CM4/CM5 nécessitent Debian 13 (Trixie), tandis que Pi 3 et antérieurs ne sont pas pris en charge. - Un AppImage précompilé pour Linux x86_64 et un dmg pour macOS arm64 sont fournis. - La compilation nécessite Node.js 24.x avec pnpm, Rust stable (≥1.88), les paquets de développement GStreamer, et sous Linux les en-têtes Wayland/xkbcommon plus les paquets d'exécution pour CarPlay et Android Auto sans fil (bluez, hostapd, dnsmasq-base, iw, rfkill, avahi, pulseaudio-utils). Sous macOS, l'addon vidéo se lie à GStreamer.framework. Les indicateurs de débogage et les emplacements des journaux sont documentés dans DEBUGGING.md. Le projet n'est ni affilié à Apple ou Google, ni approuvé par eux.