You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何解决CM3L启动Android Things 0.6.1预览版仅显彩虹屏问题

针对CM3L加载Android Things 0.6.1彩虹屏问题的解决方案

我之前帮同行排查过类似Compute Module 3 Lite与Android Things的适配问题,结合你已经做的尝试,给你几个更精准的排查和修复方向:

1. 强制指定DTB并调整boot分区配置

你已经添加了bcm2710-rpi-cm3.dtb,但要确保config.txt文件明确指向这个设备树,同时适配CM3L无内置eMMC的特性:

  • 编辑boot分区的config.txt,添加或修改:
    device_tree=bcm2710-rpi-cm3.dtb
    dtparam=sd_poll_once=on
    enable_uart=1
    
    其中enable_uart=1是为后续串口调试做准备,sd_poll_once能优化SD卡启动的兼容性,避免CM3L反复检测不存在的eMMC。

2. 替换适配CM3L的bootloader文件

Android Things 0.6.1默认的bootcode.binstart.elf是针对RPI3优化的,CM3L需要专属的bootloader支持:

  • 从官方Raspberry Pi Compute Module固件包(对应Linux 4.4内核版本,和Android Things 0.6.1匹配)中提取bootcode.binstart.elf,替换掉现有boot分区的同名文件。

3. 用串口调试定位启动卡滞点

彩虹屏消失后无反应,大概率是内核初始化阶段出错,通过串口日志能直接找到问题根源:

  • 用USB转TTL模块连接CM3L的GPIO14(TX)、GPIO15(RX)和GND到电脑;
  • config.txt中追加console=ttyAMA0,115200,启动后用串口工具(比如minicom)查看输出,重点关注内核挂起前的最后一行日志——比如是根文件系统挂载失败,还是某个硬件驱动加载异常。

4. 微调根文件系统的驱动兼容性

如果串口日志显示驱动加载失败,可能是Android Things默认包含了RPI3专属的外设驱动,与CM3L冲突:

  • 挂载Android Things的根文件系统,进入/lib/modules/4.4.x+/kernel/drivers目录,移除RPI3特有的驱动(比如eMMC相关的mmc_bcm2835模块);
  • 或者从CM3的官方Linux固件中提取对应的驱动模块,添加到Android Things的模块目录中。

内容的提问来源于stack exchange,提问作者Camilo Londono

火山引擎 最新活动