如何在 CM3L(Computer Module 3 Lite)中启动 Android Things 0.6.1 DevPreview

How to boot Android Things 0.6.1 DevPreview in CM3L (Computer Module 3 Lite)

实际上我可以在 Raspberry Pi 3 (RPI3) 中启动 Android Things “0.6.1 Developer Preview”,我正在使用 Computer Module 3 Lite (CM3L) 开发一个项目,它有Raspberry Pi 3 (RPI3) 的相同处理器,但我只看到彩虹屏幕,永远不会继续,我想问题与 DTB(设备树)有关。

我尝试了一些选项 1. 在引导分区上为 CM3 "bcm2710-rpi-cm3.dtb" 添加 DTB 文件,当我这样做时,彩虹屏幕出现并消失但没有做任何其他事情 2.将原来的DTB文件"BCM271~1.DTB"替换为"bcm2710-rpi-cm3.dtb",这样彩虹屏就不会消失(相当于原来的boot分区)

CM3 确实有 GPIO。 CM3 和 RP3 之间的主要区别是设备必须从板载 eMMC 内存启动。 CM3 是一种工业 SOM 单元,至少在 2023 年之前可用,因此它是工业应用的理想选择。我会对任何能够在 CM3 上运行此功能的人以及使用 Apollo Displays 的 Artista IoT 向我们的客户推荐的人感兴趣。

我终于做到了

CM3L 不从 Android Things RPI3 开始的主要原因是硬件配置,虽然 RPI3 和 CM3L 具有相同的处理器,但 RPI3 的附加硬件(以太网、Wifi 和bluethoot)对DTB文件有配置,这个配置避免了启动,要改变它,需要反编译DTB文件,移除这个硬件重新编译文件

要求:

  • Linux(我在 Windows 上使用 ubuntu 虚拟机)
  • 安装设备树编译器Link on this you find the DTC tool (convert tool from DTB to DTS or from DTS to DTB) to use see this

程序

  1. 使用 Android Things (bcm2710-rpi-cm3.dtb)
  2. 从 microSD 获取 DTB 文件
  3. 复制到linux,使用DTC工具反编译 DTC -I dtb -O dts -o bcm2710-rpi-3-b.dts bcm2710-rpi-3-b.dtb
  4. 修改文件(搜索并注释某些行) 在 SOC 搜索和注释块中 sdio_pins、bt_pins、uart0_pins 和 uart1_pins 在最后一节 sysmbols 注释一些定义,sdio_pins、bt_pins、uart0_pins 和 uart1_pins 注意:您可以像 C 一样使用 // 或 /**/
  5. 进行注释
  6. 使用DTC工具编译文件 DTC -I dts -O dtb -o bcm2710-rpi-cm3.dtb bcm2710-rpi-3-b.dts
  7. 将 bcm2710-rpi-cm3.dtb 文件复制到 microSD 和 运行 CM3L