Adding device tree overlay to extlinux.conf

Hi,
I use Jetson Xavier NX with below OS spec :

$ cat /etc/nv_tegra_release 
# R35 (release), REVISION: 5.0, GCID: 35550185, BOARD: t186ref, EABI: aarch64, DATE: Tue Feb 20 04:46:31 UTC 2024

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

I want add device tree overlay by editing /boot/extlinux/extlinux.conf file as below :

$ cat /boot/extlinux/extlinux.conf
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      FDT /boot/dtb/kernel_tegra194-p3668-0001-p3509-0000.dtb
      FDT_OVERLAY /boot/tegra194-p3668-all-p3509-0000-adafruit-sph0645lm4h.dtbo
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=efifb:off nospectre_bhb

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    FDT /boot/dtb/kernel_tegra194-p3668-0001-p3509-0000.dtb
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

The device tree file is presented and permission set to 644 :

$ ls -lh /boot/tegra194-p3668-all-p3509-0000-adafruit-sph0645lm4h.dtbo
-rw-r--r-- 1 root root 1.1K Feb 20  2024 /boot/tegra194-p3668-all-p3509-0000-adafruit-sph0645lm4h.dtbo

but after reboot I get this Error in booting time :

Jetson UEFI firmware (version 202210.4-d00a5d3a-dirty built on 2024-10-16T05:00:
52+03:30)

** WARNING: Test Key is used. **

L4TLauncher: Attempting Direct Boot
OpenAndReadUntrustedFileToBuffer: Failed to open _OVERLAY \boot\tegra194-p3668-a
11-p3509-0000-adafruit-sph06451m4h.dtbo: Not Found
ExtLinuxBoot:sds Failed to Authenticate boot\extlinux\extlinux.conf (Not Found)
LATLauncher: Unable to boot via extlinux: Not Found
LATLauncher: Attempting Kernel Boot
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services and installing virtual address map...

Why dose this error occur and bootloader is unable to find device tree file?
How to solve it?

Thanks.

Hi, try FDTOVERLAYS instead of FDT_OVERLAY. You can also check this page https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3275/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/uboot_guide.html#wwpID0E0YD0HA.

Hi 1408,
Thanks to replay to me.
My nv_tegra_release is : 35.5.0 and boot loader is UEFI.
But your link is for older version, and about u-boot not UEFI.

I’m no expert in bootloaders, but if you use extlinux, the procedure should be the same. I made it work for 35.5.0 in the same way (it was on a AGX Xavier, though).
Did you give it a try by replacing FDT_OVERLAY with FDTOVERLAYS in the extlinux.conf file?

boot parameters in the extlinux.conf file depended to the boot loader, and boot loader must be supported it.
yes i was try FDTOVERLAYS. but boot loader only response to FDT_OVERLAY by error message.

FDT_OVERLAY is not supported in rel-35 bootloader.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.