这个项目能做什么
LIVI(Linux 车载信息娱乐系统)是一款开源车载主机应用,原生实现了 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 上支持有线和无线连接。无线连接需要蓝牙适配器以及一个专用于 LIVI 自身接入点的 Wi-Fi 接口;有线连接可通过任何 USB 端口实现,无需 OTG。
- Android Auto 在所有平台上支持有线连接;无线 Android Auto 仅在 Linux 上支持。
- CarPlay 需要通过 Apple 协处理器进行 MFi 认证,该协处理器可连接到板上的 I²C 总线,或通过 LIVI Link 通过网络访问。LIVI 不附带或绕过该芯片,也不支持 macOS 上的 Apple 基本配件认证。
媒体和输入
- 原生零拷贝 GStreamer 视频管线,支持硬件加速的 H.264/H.265 解码;在没有 VA-API 驱动时提供软件解码回退。
- 低延迟音频、电话通话和麦克风上行、带专辑封面的正在播放元数据,以及逐向导航数据。
- 支持触摸、旋钮/方向键和硬键输入,白天/夜间模式,以及向手机转发 GPS 数据。
多会话
- 多个手机可同时连接,涵盖无线 CarPlay、有线 CarPlay 和无线 Android Auto;有线 Android Auto 仅限于一台设备。会话在后台保持状态、电池、信号、媒体元数据和导航更新,切换是交接而非重新连接。
显示和校准
- 多显示器支持:主窗口、仪表盘窗口和辅助窗口可放置在单独的物理显示器上,功能可非独占分配。
- 流分辨率、视图区域内边距和安全区域可在 CarPlay 和 Android Auto 上分别为主流和仪表盘流独立配置。
- 软件显示校准支持伽马、对比度和 RGB 通道,作为单次合成器通道应用于最终帧。
遥测和 GPS
- 仪表盘(开发中)通过 IPC/套接字消费遥测数据;scripts/tools 中的 CLI 可推送测试数据。
- GPS 通过串口读取 NMEA-0183 接收器,并额外支持 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 无关联,也未获其认可。
评论
0 评分人数达到10人后显示
登录后参与讨论。