Hello – I continue to tinker with the Inovato Quadra when I have time: How to customize ZFS kernel for new ARM board?
I was able to extract its device tree source file, sun50i-h6-inovato-quadra.dts
, from build artifacts from creating an Armbian image, as shown below.
It includes sun50i-h6-tanix.dtsi
(which then includes other files), but thankfully this file is already included in the linux source for kernels all the way back to 5.17: arm64: dts: allwinner: h6: tanix-tx6: Split to DT and DTSI · torvalds/linux@8ff8d69 · GitHub
However, when I try to build an image, I get a file not found for this include:
error: builder for '/nix/store/f772g1r9l7mh6mir9snxg6x3r19q977g-inovato-quadra-dtbo.drv' failed with exit code 1;
last 6 log lines:
> /nix/store/4y3hi1x5gpg1nw11ypn7b0m00imm45wi-sun50i-h6-inovato-quadra.dts:6:10: fatal error: sun50i-h6-tanix.dtsi: No such file or directory
> 6 | #include "sun50i-h6-tanix.dtsi"
> | ^~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> Error: /nix/store/4y3hi1x5gpg1nw11ypn7b0m00imm45wi-sun50i-h6-inovato-quadra.dts:4.9-10 syntax error
> FATAL ERROR: Unable to parse input tree
For full logs, run 'nix log /nix/store/f772g1r9l7mh6mir9snxg6x3r19q977g-inovato-quadra-dtbo.drv'.
error: 1 dependencies of derivation '/nix/store/ijwablvfbrdkjvjwalnxiwvclw4abbmb-overlays.json.drv' failed to build
error: 1 dependencies of derivation '/nix/store/6n274ikr2qi30agm7hh106x63pnp1nd9-device-tree-overlays.drv' failed to build
error: 1 dependencies of derivation '/nix/store/jh2ihqfhybwlq5xw5pz1y462p7p2rs0b-nixos-system-nixos-sd-card-25.05.20250204.a308483.drv' failed to build
error: 1 dependencies of derivation '/nix/store/yd1n374f416yj10njcbssdbg45zil1dj-ext4-fs.img.zst.drv' failed to build
error: 1 dependencies of derivation '/nix/store/07l3vlpnzxd6j0i5r5nq36iwr2xwx5fd-nixos-image-sd-card-25.05.20250204.a308483-aarch64-linux.img.zst.drv' failed to build
I had expected that the standard linux dts sources would be in the search path by default and that this would work.
Do I need to be doing something with devicetree filters or dtboBuildExtraIncludePaths
instead?
deviceTree = {
enable = true;
overlays = [
{
name = "inovato-quadra";
dtsFile = ./sun50i-h6-inovato-quadra.dts;
}
];
};
Here is ./sun50i-h6-inovato-quadra.dts
:
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (c) 2023 Gunjan Gupta <gunjan@armbian.com>
/dts-v1/;
#include "sun50i-h6-tanix.dtsi"
/ {
model = "Inovato Quadra";
compatible = "oranth,inovato-quadra", "allwinner,sun50i-h6";
aliases {
ethernet1 = &xr819;
};
leds {
compatible = "gpio-leds";
led-0 {
label = "red";
gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
};
led-1 {
label = "blue";
gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
default-state = "on";
};
};
};
&i2s1 {
status = "okay";
};
&mmc1 {
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
xr819: sdio_wifi@1 {
compatible = "xradio,xr819";
interrupt-names = "host-wake";
interrupt-parent = <&r_pio>;
interrupts = <1 0 IRQ_TYPE_EDGE_RISING>;
local-mac-address = [dc 44 6d c0 ff ee];
reg = <1>;
};
};
&sound_hdmi {
status = "okay";
};
&wifi_pwrseq {
post-power-on-delay-ms = <0xc8>;
};