ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

树莓派 Android Auto 车载主机如何搭建:Crankshaft 完整指南

树莓派 Android Auto 车载主机如何搭建:Crankshaft 完整指南 树莓派 Android Auto 车载主机如何搭建Crankshaft 完整指南【免费下载链接】crankshaftCrankshaft: A turnkey GNU/Linux solution that transforms a Raspberry Pi to an Android Auto head unit.项目地址: https://gitcode.com/gh_mirrors/cr/crankshaftCrankshaft 是一个把普通树莓派改造成 Android Auto 车机的 GNU/Linux 镜像项目。如果你不想购买整套车机只希望在车里获得手机投屏导航体验这套开源系统值得尝试。系统开机时显示的 Plymouth 启动画面splash.png 为什么用树莓派改 Android Auto 车机原厂车机功能固化、升级看厂家脸色改装车机价格偏高且系统封闭。Crankshaft 的思路是反过来树莓派本身只有几百元量级的成本系统跑在 GNU/Linux 上从开机画面到车载服务全部是仓库里的脚本和配置文件任何一步都能拆开看、改掉、重新构建。对比维度商业改装车机Crankshaft树莓派方案成本整机价格较高树莓派 SD 卡 屏幕系统封闭性多数为封闭系统GNU/Linux 开源镜像可由源码重建自定义空间仅限厂商开放菜单壁纸、主题、系统服务、开机脚本均可修改升级方式依赖官方推送镜像内置开机更新服务也可自行重建对电子爱好者来说额外的好处是整套流程stage0 到 stage4 的构建脚本本身就是一份树莓派系统定制的完整范例。上车后系统能做什么Android Auto 连接车载核心的 Android Auto 应用由 OpenAuto 提供仓库在 stage3/03-crankshaft-base/ 阶段把autoapp、autoapp_helper、btservice可执行文件和libaasdk.so动态库放进镜像并附带 MD5 校验文件。手机端通过车载 USB 接口接入51-android.rulesudev 规则udev 是内核的设备管理组件监听设备插入和拔出触发/opt/crankshaft/usb_action.sh做处理。蓝牙侧则配了btautopair、btrestore、btdevicedetect三个服务负责配对、状态恢复和设备发现。物理按键与交互车机上没有鼠标键盘交互靠硬件信号完成gpio2kbd把 GPIO 引脚树莓派板上的通用输入输出引脚映射成键盘信号镜像内附带预编译的wiringpi-latest.deb驱动库配置在boot/crankshaft/gpio2kbd.cfgtap2wake触摸屏幕唤醒系统gpiotrigger triggerhappy处理游戏手柄/触发器类输入映射表在triggerhappy.confrpicamserver摄像头画面叠加服务cam_overlay目录里放有 shader 着色器文件显示与音频显示走 X11/etc/X11/xorg.conf.d/10-monitor.conf负责显示器参数音频走 PulseAudio/etc/pulse/下有csng_system.pa、csng_daemon.conf等专属配置。界面随时间切换白天/夜晚主题daymode、nightmode服务加定时器光线传感器服务lightsensor可参与判断。系统内置多张壁纸其中频谱均衡器风格那张最能体现车载娱乐属性内置的频谱均衡器风格壁纸wallpaper-eq.png树莓派 Android Auto 车载主机需要什么硬件部件说明树莓派 3B 或更新型号参考硬件门槛旧型号没有列出保证Micro SD 卡存放系统镜像电源适配器车载取电时注意电压稳定显示设备HDMI 接屏或树莓派兼容触摸屏触摸唤醒、触摸界面按触屏优化USB 数据线手机接入车载 USB 口承载 Android Auto 信号 Docker 一键构建系统镜像仓库是一个 pi-gen 风格的分阶段构建工程stage0用 debootstrap 拉起 Debian Buster 基础系统后续各 stage 依次叠加内容export-image负责收尾打包。整个过程用 Docker 跑避免宿主机被构建依赖污染。跨架构模拟的前置条件在 x86 机器上构建 ARM 镜像需要 binfmt 支持让内核能透明执行其他架构的二进制文件安装qemu-user-static内核不低于 4.8然后按仓库里binfmt-misc.md的步骤注册 binfmt 并重启服务。这一步没做好构建到安装 ARM 包时会直接失败。构建步骤克隆仓库git clone https://gitcode.com/gh_mirrors/cr/crankshaft准备构建配置镜像名、SSH 开关、默认用户都在config.example里然后启动构建cp config.example config ./build-docker.sh产物落在 deploy 目录.img镜像文件加 MD5/SHA1/SHA256 校验文件开启打包开关时还会输出 zip。仓库里另附了一份docker-compose.yml可顺带拉起 apt 缓存代理监听 3142 端口重复构建时能省掉大量重复下载。烧录镜像与首次启动把产出的.img用任意通用刷写工具写入 SD 卡插卡上电即可无需进系统做任何初始化。首次开机时仓库预埋的一次性脚本resize2fs_once会把根文件系统扩展到整块 SD 卡完成后自我卸载删除。boot 分区里的cmdline.txt和config.txt含树莓派 4 的 vc4-fkms-v3d 显示驱动参数在 stage1/00-boot-files/ 阶段就已就位。两点默认行为要注意ENABLE_SSH默认为 0即 SSH 关闭默认账户为pi/raspberry都在config.example中可以调整。启动流程如何运转模块在哪里开机服务顺序/opt/crankshaft/start_order文件把整机启动画成了一张流程图顺序大致是usbrestore恢复 USB 状态display启动显示usbdetect检测手机 USB 接入gpio2kbd激活物理按键devmode、wifisetup、networking、hotspot组网支持热点模式tap2wake等待触屏唤醒crankshaft主系统服务user_startup执行用户自定义脚本openauto启动 Android Auto最后跑update更新检查分阶段构建结构目录职责stage0/apt 源与 GPG 密钥、区域语言、固件stage1/启动文件、fstab 与系统补丁、网络与基础包stage2/用户创建、swap、首次启动扩盘脚本、网络调优以及 base/蓝牙/X11/DKMS 分组包stage3/OpenAuto 应用、全部车载 systemd 服务、Plymouth 主题、X11、只读系统保护导出镜像与 NOOBS 安装包stage4/armv7 兼容性修正与最终导出export-image/ / export-noobs/镜像收尾zerofree 瘦身、哈希计算NOOBS 风格安装包的分区与元数据导出发布说明中展示的系统桌面环境常见改装壁纸、开机脚本与服务配置几个改动成本低、效果明显的入口换壁纸壁纸集中在opt/crankshaft/wallpaper/除频谱、烟花、圣诞款外还有wallpaper-classic、wallpaper-night两套日夜主题直接替换 png 文件即可自定义开机动作boot/crankshaft/startup.sh是留给用户的钩子脚本注释写明默认什么都不做想加启动行为就写在这里调整界面参数boot/crankshaft/openauto.ini控制时钟显示、光标显示、刷新帧率和音频输出后端改按键映射物理按键行为在gpio2kbd.cfg手柄/触发器在triggerhappy.conf⚠️ 常见坑与注意事项binfmt 没配好构建在 x86 上执行 ARM 包时失败先按binfmt-misc.md完成注册更新qemu-user-static后可能需要重新执行一次注册步骤忘记生成 config直接跑构建脚本会报配置缺失必须先从config.example复制一份config默认无 SSHENABLE_SSH0是有意为之需要远程管理时在 config 中打开并注意默认口令pi/raspberry上车前改掉系统基线较老基础系统来自 Debian Busterstage0 的 bootstrap 调用依赖的 apt 源和内核版本以仓库配置为准不要期待和最新桌面镜像一致的软件版本硬件下限官方给出的门槛是树莓派 3B 或更新型号更老的板子未做承诺首启扩盘只执行一次resize2fs_once完成即自我删除若 SD 卡容量后续变化脚本不会再跑【免费下载链接】crankshaftCrankshaft: A turnkey GNU/Linux solution that transforms a Raspberry Pi to an Android Auto head unit.项目地址: https://gitcode.com/gh_mirrors/cr/crankshaft创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表