In the GTC catalog, I am trying to find an image that has nvidia-l4t-jetson-multimedia-api already installed, but im not able to find one.
Currently, im trying to use nvcr.io/nvidia/l4t-cuda:11.4.19-devel and install nvidia-l4t-jetson-multimedia-api manually, but I get the following:
root@EAC-5000:/opt/ros/noetic# sudo apt-get install nvidia-l4t-jetson-multimedia-api
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
nvidia-l4t-jetson-multimedia-api : PreDepends: nvidia-l4t-core (> 35.3-0) but it is not installable
PreDepends: nvidia-l4t-core (< 35.4-0) but it is not installable
Depends: nvidia-l4t-camera (= 35.3.1-20230319081403) but it is not installable
Depends: nvidia-l4t-multimedia (= 35.3.1-20230319081403) but it is not installable
Depends: nvidia-l4t-multimedia-utils (= 35.3.1-20230319081403) but it is not installable
E: Unable to correct problems, you have held broken packages.
Any suggestions to move forward here? Due to other stack dependencies, I can not go past ubuntu 20.04.
The motivation for needing nvidia-l4t-jetson-multimedia-api is to enable the compiling and running of the tegra-multimedia-api code examples and modify them for camera applications.
Update 00: for some reason, the /etc/apt/sources.list.d/nvidia-l4t-apt-source.list did not exist in the container. I copied that from the host jetson, then attempted to run an install however it fails now with:
Get:7 https://repo.download.nvidia.com/jetson/common r35.3/main arm64 nvidia-l4t-jetson-multimedia-api arm64 35.3.1-20230319081403 [75.3 MB]
Fetched 100 MB in 9s (11.3 MB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 7.)
debconf: falling back to frontend: Readline
W: Target Packages (main/binary-arm64/Packages) is configured multiple times in /etc/apt/sources.list:50 and /etc/apt/sources.list.d/nvidia-l4t-apt-source.list:11
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:50 and /etc/apt/sources.list.d/nvidia-l4t-apt-source.list:11
(Reading database ... 70543 files and directories currently installed.)
Preparing to unpack .../nvidia-l4t-core_35.3.1-20230319081403_arm64.deb ...
/var/lib/dpkg/tmp.ci/preinst: line 59: /proc/device-tree/compatible: No such file or directory
dpkg: error processing archive /var/cache/apt/archives/nvidia-l4t-core_35.3.1-20230319081403_arm64.deb (--unpack):
new nvidia-l4t-core package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-l4t-core_35.3.1-20230319081403_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@EAC-5000:/home/ubuntu/workspace/tegra/tegra_multimedia_api/samples/01_video_encode#
Get:18 https://repo.download.nvidia.com/jetson/t194 r35.1/main arm64 nvidia-l4t-camera arm64 35.1.0-20220825113828 [5392 kB]
Fetched 89.9 MB in 7s (13.4 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 70423 files and directories currently installed.)
Preparing to unpack .../nvidia-l4t-core_35.1.0-20220825113828_arm64.deb ...
Pre-installing... skip compatibility checking.
Unpacking nvidia-l4t-core (35.1.0-20220825113828) ...
dpkg: error processing archive /var/cache/apt/archives/nvidia-l4t-core_35.1.0-20220825113828_arm64.deb (--unpack):
unable to make backup link of './usr/lib/aarch64-linux-gnu/tegra/ld.so.conf' before installing new version: Invalid cross-device link
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-l4t-core_35.1.0-20220825113828_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
And when trying to apply this issues solution I am again left with a similar error:
...
Preparing to unpack .../17-libdrm-dev_2.4.107-8ubuntu1~20.04.2_arm64.deb ...
Unpacking libdrm-dev:arm64 (2.4.107-8ubuntu1~20.04.2) ...
Errors were encountered while processing:
/tmp/apt-dpkg-install-oMHwMF/05-nvidia-l4t-3d-core_35.1.0-20220825113828_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Hi,
Please run $ cat /etc/nv_tegra_release to get your release version, and replace it to the commands. In the sample commands, r35.1 is Jetpack 5.0.2.
1 Questions on this:
Is there a way to pass in an arg to the following prompt so that i can add this step to a docker file?
Configuration file '/etc/ld.so.conf.d/nvidia-tegra.conf'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** nvidia-tegra.conf (Y/I/N/O/D/Z) [default=N] ? Y
While the previous steps get me past the #include<xf86drm.h> error, hen trying to make the /usr/src/jetson_multimedia_api/samples/01_video_encode sample, i get
/usr/src/jetson_multimedia_api/include/NvVulkanRenderer.h:43:10: fatal error: vulkan/vulkan.h: No such file or directory
43 | #include <vulkan/vulkan.h>
Im somewhat surprised that I am not able to make any of the samples out of the box, and that I have to do these install steps manually. Is this what you would expect @DaneLLL ?
for installing volkan, i was installing the wrong apt package - I should have been installing:libvulkan-dev. This gets me to the point where i can compile samples within nvcr.io/nvidia/l4t-jetpack:r35.4.1! Woo!
One final thing to track down here is that all of this was being done on my host machine, x86/64 with a QEMU emulator. When trying this on an orin I get the following error:
Get:12 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-dev arm64 2.4.107-8ubuntu1~20.04.2 [135 kB]
Get:13 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 libvulkan-dev arm64 1.2.131.2-1 [482 kB]
Get:14 https://repo.download.nvidia.com/jetson/t194 r35.4/main arm64 nvidia-l4t-camera arm64 35.4.1-20230801124926 [5571 kB]
Fetched 27.8 MB in 2s (16.5 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package nvidia-l4t-core.
(Reading database ... 43923 files and directories currently installed.)
Preparing to unpack .../nvidia-l4t-core_35.4.1-20230801124926_arm64.deb ...
Pre-installing... skip compatibility checking.
Unpacking nvidia-l4t-core (35.4.1-20230801124926) ...
dpkg: error processing archive /var/cache/apt/archives/nvidia-l4t-core_35.4.1-20230801124926_arm64.deb (--unpack):
unable to make backup link of './usr/lib/aarch64-linux-gnu/tegra/ld.so.conf' before installing new version: Invalid cross-device link
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package libegl1-mesa:arm64.
Preparing to unpack .../libegl1-mesa_21.2.6-0ubuntu0.1~20.04.2_arm64.deb ...
Unpacking libegl1-mesa:arm64 (21.2.6-0ubuntu0.1~20.04.2) ...
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-l4t-core_35.4.1-20230801124926_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Any idea why this action would have different behaviors on my host vs the orin? Its the same exact docker image, with the same commands.
Update: If I don’t use --runtime=nvidia --gpus=all then i can run the install no problem
The host version of jetpack is Jetpack 5.1.1 [L4T 35.3.1] , so i attempted to use the respective jetpack image: nvcr.io/nvidia/l4t-jetpack:r35.3.1, but I get a pretty much the same error (subbing 35.4.1 with 35.3.11)
Preparing to unpack .../nvidia-l4t-core_35.3.1-20230319081403_arm64.deb ...
Pre-installing... skip compatibility checking.
Unpacking nvidia-l4t-core (35.3.1-20230319081403) ...
dpkg: error processing archive /var/cache/apt/archives/nvidia-l4t-core_35.3.1-20230319081403_arm64.deb (--unpack):
unable to make backup link of './usr/lib/aarch64-linux-gnu/tegra/ld.so.conf' before installing new version: Invalid cross-device link
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-l4t-core_35.3.1-20230319081403_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Again, with the fact that this only occurs with --runtime=nvidia. Maybe something with the host nvidia keys are wrong?