Search code examples
raspberry-pi3android-things

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


Actually I can boot Android Things "0.6.1 Developer Preview" in Raspberry Pi 3 (RPI3), I'm develop a project with Computer Module 3 Lite (CM3L) this have the same processor of the Raspberry Pi 3 (RPI3) but I only see the rainbow screen, never continue, I suppose the problem is relatad with DTB (Device Tree).

I try some options 1. Add DTB file for CM3 "bcm2710-rpi-cm3.dtb" on boot partition, when I do that the rainbow screen appear an the disappear but not do anything more 2. Replace the original DTB file "BCM271~1.DTB" for "bcm2710-rpi-cm3.dtb", when I do that the rainbow screen never disappear (equal to the original boot partition)


Solution

  • Finally i do it

    The main reason by the CM3L don't start with the Android Things RPI3 is the hardware configuration, although the RPI3 and the CM3L have the same processor but the additional hardware of RPI3 (Ethernet, Wifi and Bluethoot) has a configuration on DTB file, and this configuration avoid the start, for change it, you need decompile DTB file, remove this hardware and recompile the file

    Requiremets:

    • Linux (I use ubuntu VM on Windows)
    • Install Device Tree Compiler Link on this you find the DTC tool (convert tool from DTB to DTS or from DTS to DTB) to use see this answer

    Procedure

    1. Get DTB file form the microSD with Android Things (bcm2710-rpi-cm3.dtb)
    2. Copy it on linux and decompile using DTC tool DTC -I dtb -O dts -o bcm2710-rpi-3-b.dts bcm2710-rpi-3-b.dtb
    3. Modify the file (search and comment some lines) In section SOC search and comment blocks sdio_pins, bt_pins, uart0_pins and uart1_pins In the final section sysmbols comment some definitions, sdio_pins, bt_pins, uart0_pins and uart1_pins NOTE: You can comment like C with // or /**/
    4. Compile the file with DTC tool DTC -I dts -O dtb -o bcm2710-rpi-cm3.dtb bcm2710-rpi-3-b.dts
    5. Copy bcm2710-rpi-cm3.dtb file on microSD and run CM3L