Rebuilding the Holiday – Pt2


Short-form notes on rebuilding the MooresCloud Holiday Lights from scratch and making the lights work.

This is part 2/3, it covers building a custom devicetree blob for the Holiday.

You will need:

  • A computer running Ubuntu or ‘Bash on Ubuntu on Windows 10’ (other Linux variants will work, and probably macOS too, but I haven’t tested and documented them)
  • My imx23-holiday.dts source file from https://gist.github.com/Froosh/03a13ce2550c2779f46880f7b5ebbd9d [Make sure you download the RAW file to use – I don’t want to link directly to the raw content so I don’t have to update the link if I make revisions…]
  • The latest copy of Linux kernel source code from https://kernel.org (linux-4.x.x.tar.xz)

Process:

  1. Install the development tools you’ll need to generate the devicetree blob
    sudo apt-get install build-essential gcc-arm-none-eabi
  2. Unpack the Linux kernel
    tar xJf linux-4.x.x.tar.xz
    cd linux-4.x.x/
  3. Copy the downloaded imx23-holiday.dts file to arch/arm/boot/dts/imx23-holiday.dts
    cp ../imx23-holiday.dts arch/arm/boot/dts/imx23-holiday.dts
  4. Compile the devicetree source (dts) to a devicetree blob (dtb)
    make ARCH=arm CROSS_COMPILE=arm-none-eabi- mxs_defconfig
    make ARCH=arm CROSS_COMPILE=arm-none-eabi- imx23-holiday.dtb
  5. Copy the resulting imx23-holiday.dtb file to somewhere you can use it for step 3
    cp arch/arm/boot/dts/imx23-holiday.dtb ../imx23-holiday.dtb

Easy enough, now move on to part 3 where we’ll build the fresh Arch Linux ARM onto a new memory card.


3 responses to “Rebuilding the Holiday – Pt2”

  1. When building the .dtb I got a syntax error.

    Error: arch/arm/boot/dts/imx23-holiday.dts:7.1-2 syntax error
    FATAL ERROR: Unable to parse input tree
    scripts/Makefile.lib:313: recipe for target ‘arch/arm/boot/dts/imx23-holiday.dtb’ failed
    make[1]: *** [arch/arm/boot/dts/imx23-holiday.dtb] Error 1
    arch/arm/Makefile:336: recipe for target ‘imx23-holiday.dtb’ failed
    make: *** [imx23-holiday.dtb] Error 2

    It turned out that I had downloaded the webpage for the .dts using the above link, rather than the raw file. I guess that’s what happens when you try to rush things… It built fine after I corrected that.

    Just noting this in case anyone else hits the same issue.

  2. Also the 2nd paragraph “This is part 2/3, it covers getting access to the memory card and serial port.” should probably be something like “This is part 2/3, it covers building a custom devicetree blob for the Holiday.”