Sudo ./apply_binaries.sh gives error when using debian rootfs

Hi,

I am using Jetson AGX Orin 64GB developer kit. I am trying to copy the debian based rootfs instead of the default one from nvidia (ubuntu) for the project requirement.
While preparing the rootfs using “sudo ./apply_binaries.sh”, i am getting below error. I am using debian (bookworm) rootfs.
Could you suggest what might be the issue?

admin@machine1:~/jp6-ga/Linux_for_Tegra$ sudo ./apply_binaries.sh
Using rootfs directory of: /home/admin/jp6-ga/Linux_for_Tegra/rootfs
Installing extlinux.conf into /boot/extlinux in target rootfs
/home/admin/jp6-ga/Linux_for_Tegra/nv_tegra/nv-apply-debs.sh
Root file system directory is /home/admin/jp6-ga/Linux_for_Tegra/rootfs
Copying public debian packages to rootfs
Skipping installation of nvidia-igx-systemd-reboot-hooks_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-dgpu-apt-source_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-dgpu-config_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-dgpu-tools_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-dgpu-x11_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-factory-service_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-igx-bootloader_36.3.0-20240506102626_arm64.deb …
Skipping installation of nvidia-l4t-jetson-orin-nano-qspi-updater_36.3.0-20240506102626_arm64.deb …
Start L4T BSP package installation
QEMU binary is not available, looking for QEMU from host system
Found /usr/bin/qemu-aarch64-static
Installing QEMU binary in rootfs
/home/admin/jp6-ga/Linux_for_Tegra/rootfs /home/admin/jp6-ga/Linux_for_Tegra
Installing BSP Debian packages in /home/admin/jp6-ga/Linux_for_Tegra/rootfs
Selecting previously unselected package nvidia-l4t-core.
(Reading database … 21933 files and directories currently installed.)
Preparing to unpack …/nvidia-l4t-core_36.3.0-20240506102626_arm64.deb …
Pre-installing… skip compatibility checking.
Unpacking nvidia-l4t-core (36.3.0-20240506102626) …
dpkg: dependency problems prevent configuration of nvidia-l4t-core:
nvidia-l4t-core depends on libegl1; however:
Package libegl1 is not installed.

dpkg: error processing package nvidia-l4t-core (–install):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.36-9+deb12u8) …
Errors were encountered while processing:
nvidia-l4t-core

Thanks,
Rajesh

Is this being run on the Jetson itself, or it being run on a separate Linux host PC? What do you see from “cat /etc/lsb-release”?

Hi @linuxdev

I am running this on the separate Linux host PC, not on the Jetson AGX Orin.

admin@machine1:~/jp6-ga/Linux_for_Tegra$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION=“Ubuntu 22.04.3 LTS”

L4T R36.x (JetPack 6.x) should work on your Ubuntu 22.04 host PC. However, there might be some dependencies to install.

On your host PC, does this succeed?

sudo updatedb
sudo apt-get upgrade

Just a general comment, JetPack/SDK Manager is designed to work with a large number of products, many of which are not Jetsons (there is “Drive” hardware as well; the IGX is a very nice industrial type device capable of using a very powerful external GPU and with a remote base board management system…you don’t have this). It could be that part of what you see in the errors do actually need to be skipped because they don’t apply to your situation (e.g., the IGX part).

If you look at your JetPack GUI, then it isn’t always obvious that you can uncheck many items, e.g., you could actually uncheck flash (you wouldn’t want to do this in this case, but it is an example of something not obvious). There are also examples and other CUDA-related code and/or debugging software which will work on your host PC only if you have the NVIDIA GPU on this, and the correct NVIDIA drivers. If you uncheck any sample programs and uncheck any debugging type feature, then it is possible that some of those errors will simply go away (assuming they are related to needing an NVIDIA GPU and correct driver, then not installing the feature avoids the dependency requirement). Parts of this though definitely need to function, e.g., anything regarding QEMU would still need to exist because it is part of setting up the root filesystem.

I have done the upgrade as you suggested, followed by I found the depedent packages list in the debian roots, enabled them. Most of packages are now ok in the apply_binaries.sh execution except one package which not present in debian mirror itself.

dpkg: dependency problems prevent configuration of nvidia-l4t-weston:
nvidia-l4t-weston depends on libjpeg-turbo8; however:
Package libjpeg-turbo8 is not installed.
dpkg: error processing package nvidia-l4t-weston (–install):

Do you know how to enable this in debian? or Can i remove this dependency?

Regards,
Rajesh

That I don’t know. Maybe @KevinFFF or @WayneWWW knows more about this. I have not worked with the Vulkan drivers and software yet, and Weston is related to that. On the host PC this might in part depend on the host PC’s video driver (and in turn you might mention if your host PC has an NVIDIA GPU, and its model).

Hi @linuxdev

I managed with installing the “sudo dpkg -i --instdir=./rootfs libjpeg-turbo8_2.1.2-0ubuntu1_arm64.deb” ubuntu component in debian rootfs. Now the apply_binaries.sh script is working fine.

I booted the debian rootfs, i don’t see the login prompt even i executed “sudo ./tools/l4t_create_default_user.sh -u nvidia -p nvidia” while preparing the rootfs on the host machine.

console stuck after the below boot log.

[ 10.212498] systemd[1]: Starting systemd-modules-load.service - Load Kernel Modules…
[ 10.221773] systemd[1]: Starting systemd-network-generator.service - Generate network units from Kernel command line…
[ 10.234044] systemd[1]: Starting systemd-remount-fs.service - Remount Root and Kernel File Systems…
[ 10.244663] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices…
[ 10.255522] systemd[1]: Mounted dev-hugepages.mount - Huge Pages File System.
[ 10.263155] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[ 10.271247] systemd[1]: Mounted sys-kernel-debug.mount - Kernel Debug File System.
[ 10.279239] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[ 10.287404] systemd[1]: elxr-growfs.service: Main process exited, code=exited, status=1/FAILURE
[ 10.296629] systemd[1]: elxr-growfs.service: Failed with result ‘exit-code’.
[ 10.304159] systemd[1]: Failed to start elxr-growfs.service - Grow Root Filesystem.
[ 10.312661] systemd[1]: Finished kmod-static-nodes.service - Create List of Static Device Nodes.
[ 10.322213] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[ 10.329389] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
[ 10.329834] systemd[1]: Finished modprobe@configfs.service - Load Kernel Module configfs.
[ 10.344879] systemd[1]: Started systemd-journald.service - Journal Service.
[ 10.482426] systemd-journald[278]: Received client request to flush runtime journal.

//No login prompt here

Someone from NVIDIA will need to answer this. What I think is happening is that elxr-growfs.service is related to first boot. On systems with more unused boot space, where the partition can be enlarged from the default to whatever extents the storage device has remaining, that this is what it is for. I have no idea what limitations or possibilities there are for this.

@KevinFFF or @WayneWWW : Is elxr-growfs.service the first boot expansion of remaining storage partition size limits? If so, then I don’t know what would cause it to fail.

Hi rajeshkumar.ramasamy,

I don’t see this service on my AGX Orin devkit with L4T R36.3.0.

Could you help to provide the steps how you perform this for us to verify it on the devkit locally?

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