Package: arm64_raspi3
Version: ascii_2.0.0

I was using devuan_ascii_2.0.0_arm64_raspi3.img.xz downloaded on January 19th 2019 at around 18:00 UTC.

This image comes with a /boot/overlays directory containing a large number Device Tree Overlay files and a /boot/config.txt that contain at least one dtoverlay= directive.

So it seems reasonable to suppose that this Devuan image is supposed to be Device Tree Overlay capable.  It appears not to be.

It appears DT overlays are not loaded.  There are no error messages printed or logged:  such failures are silent.

There is a tool named vcdbg that can be used to extract the Device Tree load time logs but this is closed source and, as yet, there is no arm64 binary.  I did get the following using a different tool:

pi@devuan:~$ dtmerge /boot/bcm2710-rpi-3-b-plus.dtb merge.dtbo /boot/overlays/tft35a.dtbo
DTOVERLAY[error]: No symbols found
* Exiting with error code 1

Without symbols you can't overlay.  Sadly the tool dtmerge is not available for Devuan.  You can build it from source or pinch an arm64 binary from the Ubuntu ubuntu-raspi2 PPA.

What you can do under Devuan is confirm that Device Tree Blob is missing symbols.  Install the device-tree-compiler-package first.

pi@devuan:~$ fdtdump /boot/overlays/tft35a.dtbo | fgrep '__ {'
        __overlay__ {
        __overlay__ {
        __overlay__ {
    __overrides__ {
    __symbols__ {
    __fixups__ {
    __local_fixups__ {
pi@devuan:~$ fdtdump /boot/bcm2710-rpi-3-b-plus.dtb | fgrep '__ {'
    __overrides__{

This confirms that the symbols are missing from the Devuan DT Blob, not my DT Overlay.

The DT Overlay describes my device.  When applied, the kernel will load the appropriate modules (ads7846 and fb_ili9486).  The modules should appear in the dmesg output and also the output of lsmod.

Under Devuan, they do not.  The current versions of these modules do not take parameters but expect to extract them from the Device Tree so manual loading of these has no effect.

My device is unusable.

A quick work around is to take the equivalent Device Tree Blob from Raspian.  It contains symbols, the kernel loads the modules, the device springs into life and everyone lives happily ever after.

A more sensible approach might be to upgrade the device tree compiler to a version that is symbol capable, build the Device Tree Blobs passing the -@ option to the device tree compiler and reissue the SD image(s).