Skip to content

nvidia-container-toolkit fails to create /etc/vulkan/icd.d/nvidia_icd.json #811

@buzmeg

Description

@buzmeg

When installing using toolbox on Fedora Silverblue 41, the nvidia-container-toolkit doesn't create the file /etc/vulkan/icd.d/nvidia_icd.json necessary for Vulkan to operate correctly--it doesn't find the nvidia card. If you take a working nvidia_icd.json from elsewhere and copy it into place, the card is found.

Probably related to #767

Installation transcript:

$ toolbox create -i registry.fedoraproject.org/fedora-toolbox:41 vk_new
Created container: vk_new
Enter with: toolbox enter vk_new
foo@fedora:~$ toolbox enter vk_new
⬢ [foo@toolbx ~]$ # Directions from https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
⬢ [foo@toolbx ~]$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
[nvidia-container-toolkit]
name=nvidia-container-toolkit
baseurl=https://nvidia.github.io/libnvidia-container/stable/rpm/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[nvidia-container-toolkit-experimental]
name=nvidia-container-toolkit-experimental
baseurl=https://nvidia.github.io/libnvidia-container/experimental/rpm/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
⬢ [foo@toolbx ~]$ sudo dnf install nvidia-container-toolkit
Updating and loading repositories:
 nvidia-container-toolkit                                                                                                                                                      100% |  49.0 KiB/s |   2.9 KiB |  00m00s
>>> Librepo error: repomd.xml GPG signature verification error: Signing key not found
 Fedora 41 openh264 (From Cisco) - x86_64                                                                                                                                      100% |   8.7 KiB/s |   4.8 KiB |  00m01s
 Fedora 41 - x86_64 - Updates                                                                                                                                                  100% |   2.4 MiB/s |   5.4 MiB |  00m02s
 Fedora 41 - x86_64                                                                                                                                                            100% |  18.9 MiB/s |  35.4 MiB |  00m02s
 https://nvidia.github.io/libnvidia-container/gpgkey                                                                                                                           100% | 124.8 KiB/s |   3.1 KiB |  00m00sImporting PGP key 0xF796ECB0:
 UserID     : "NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com>"
 Fingerprint: C95B321B61E88C1809C4F759DDCAE044F796ECB0
 From       : https://nvidia.github.io/libnvidia-container/gpgkey
Is this ok [y/N]: y
The key was successfully imported.

 nvidia-container-toolkit                                                                                                                                                      100% | 231.0 KiB/s |  19.4 KiB |  00m00s
Repositories loaded.
Package                                                                  Arch            Version                                                                  Repository                                       Size
Installing:
 nvidia-container-toolkit                                                x86_64          1.17.2-1                                                                 nvidia-container-toolkit                      3.9 MiB
Installing dependencies:
 libnvidia-container-tools                                               x86_64          1.17.2-1                                                                 nvidia-container-toolkit                    104.4 KiB
 libnvidia-container1                                                    x86_64          1.17.2-1                                                                 nvidia-container-toolkit                      3.1 MiB
 nvidia-container-toolkit-base                                           x86_64          1.17.2-1                                                                 nvidia-container-toolkit                     19.3 MiB

Transaction Summary:
 Installing:         4 packages

Total size of inbound packages is 8 MiB. Need to download 8 MiB.
After this operation, 26 MiB extra will be used (install 26 MiB, remove 0 B).
Is this ok [y/N]: y
[1/4] libnvidia-container-tools-0:1.17.2-1.x86_64                                                                                                                              100% | 325.4 KiB/s |  39.4 KiB |  00m00s
[2/4] nvidia-container-toolkit-0:1.17.2-1.x86_64                                                                                                                               100% |   5.4 MiB/s |   1.2 MiB |  00m00s
[3/4] nvidia-container-toolkit-base-0:1.17.2-1.x86_64                                                                                                                          100% |  22.9 MiB/s |   5.6 MiB |  00m00s
[4/4] libnvidia-container1-0:1.17.2-1.x86_64                                                                                                                                   100% |   2.0 MiB/s |   1.0 MiB |  00m00s
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[4/4] Total                                                                                                                                                                    100% |  13.0 MiB/s |   7.9 MiB |  00m01s
Running transaction
[1/6] Verify package files                                                                                                                                                     100% | 222.0   B/s |   4.0   B |  00m00s
[2/6] Prepare transaction                                                                                                                                                      100% | 102.0   B/s |   4.0   B |  00m00s
[3/6] Installing libnvidia-container1-0:1.17.2-1.x86_64                                                                                                                        100% |  35.7 MiB/s |   3.1 MiB |  00m00s
[4/6] Installing libnvidia-container-tools-0:1.17.2-1.x86_64                                                                                                                   100% |  12.9 MiB/s | 105.5 KiB |  00m00s
[5/6] Installing nvidia-container-toolkit-base-0:1.17.2-1.x86_64                                                                                                               100% |  85.9 MiB/s |  19.3 MiB |  00m00s
[6/6] Installing nvidia-container-toolkit-0:1.17.2-1.x86_64                                                                                                                    100% |  21.9 MiB/s |   3.9 MiB |  00m00s
Warning: skipped PGP checks for 4 packages from repository: nvidia-container-toolkit
Complete!
⬢ [foo@toolbx ~]$ nvidia-smi
Mon Nov 25 17:16:17 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.57.01              Driver Version: 565.57.01      CUDA Version: 12.7     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3070        Off |   00000000:01:00.0  On |                  N/A |
|  0%   40C    P8             19W /  240W |    1858MiB /   8192MiB |     17%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2310      G   /usr/bin/gnome-shell                          438MiB |
|    0   N/A  N/A      3560    C+G   /usr/bin/ptyxis                               248MiB |
|    0   N/A  N/A      3672      G   /usr/bin/Xwayland                               4MiB |
|    0   N/A  N/A     13845      G   /usr/lib64/firefox/firefox                   1088MiB |
+-----------------------------------------------------------------------------------------+
⬢ [foo@toolbx ~]$ vulkaninfo --summary
bash: vulkaninfo: command not found
⬢ [foo@toolbx ~]$ sudo dnf install vulkan-tools
Updating and loading repositories:
Repositories loaded.
Package                                                                   Arch             Version                                                                   Repository                                    Size
Installing:
 vulkan-tools                                                             x86_64           1.3.296.0-2.fc41                                                          updates                                    1.3 MiB

Transaction Summary:
 Installing:         1 package

Total size of inbound packages is 322 KiB. Need to download 322 KiB.
After this operation, 1 MiB extra will be used (install 1 MiB, remove 0 B).
Is this ok [y/N]: y
[1/1] vulkan-tools-0:1.3.296.0-2.fc41.x86_64                                                                                                                                   100% | 826.9 KiB/s | 322.5 KiB |  00m00s
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[1/1] Total                                                                                                                                                                    100% | 487.1 KiB/s | 322.5 KiB |  00m01s
Running transaction
[1/3] Verify package files                                                                                                                                                     100% |   0.0   B/s |   1.0   B |  00m00s
[2/3] Prepare transaction                                                                                                                                                      100% |  50.0   B/s |   1.0   B |  00m00s
[3/3] Installing vulkan-tools-0:1.3.296.0-2.fc41.x86_64                                                                                                                        100% |  10.2 MiB/s |   1.3 MiB |  00m00s
Complete!
⬢ [foo@toolbx ~]$ vulkaninfo --summary
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.296


Instance Extensions: count = 24
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_EXT_headless_surface                : extension revision 1
VK_EXT_surface_maintenance1            : extension revision 1
VK_EXT_swapchain_colorspace            : extension revision 4
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_portability_enumeration         : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_wayland_surface                 : extension revision 6
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6
VK_LUNARG_direct_driver_loading        : extension revision 1

Instance Layers: count = 2
--------------------------
VK_LAYER_MESA_device_select Linux device selection layer 1.3.211  version 1
VK_LAYER_NV_optimus         NVIDIA Optimus layer         1.3.289  version 1

Devices:
========
GPU0:
	apiVersion         = 1.3.289
	driverVersion      = 0.0.1
	vendorID           = 0x10005
	deviceID           = 0x0000
	deviceType         = PHYSICAL_DEVICE_TYPE_CPU
	deviceName         = llvmpipe (LLVM 19.1.0, 256 bits)
	driverID           = DRIVER_ID_MESA_LLVMPIPE
	driverName         = llvmpipe
	driverInfo         = Mesa 24.2.6 (LLVM 19.1.0)
	conformanceVersion = 1.3.1.1
	deviceUUID         = 6d657361-3234-2e32-2e36-000000000000
	driverUUID         = 6c6c766d-7069-7065-5555-494400000000
⬢ [foo@toolbx ~]$ cp nvidia_icd.json /etc/vulkan/
explicit_layer.d/ icd.d/            implicit_layer.d/ 
⬢ [foo@toolbx ~]$ sudo cp nvidia_icd.json /etc/vulkan/icd.d/
⬢ [foo@toolbx ~]$ vulkaninfo --summary
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.296


Instance Extensions: count = 24
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_EXT_headless_surface                : extension revision 1
VK_EXT_surface_maintenance1            : extension revision 1
VK_EXT_swapchain_colorspace            : extension revision 4
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_portability_enumeration         : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_wayland_surface                 : extension revision 6
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6
VK_LUNARG_direct_driver_loading        : extension revision 1

Instance Layers: count = 2
--------------------------
VK_LAYER_MESA_device_select Linux device selection layer 1.3.211  version 1
VK_LAYER_NV_optimus         NVIDIA Optimus layer         1.3.289  version 1

Devices:
========
GPU0:
	apiVersion         = 1.3.289
	driverVersion      = 565.57.1.0
	vendorID           = 0x10de
	deviceID           = 0x2488
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = NVIDIA GeForce RTX 3070
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 565.57.01
	conformanceVersion = 1.3.8.2
	deviceUUID         = 3c4b693b-0187-c02a-92f8-3fb533a66f2c
	driverUUID         = a40eb34f-a796-5990-89ac-95d78eb83699
GPU1:
	apiVersion         = 1.3.289
	driverVersion      = 0.0.1
	vendorID           = 0x10005
	deviceID           = 0x0000
	deviceType         = PHYSICAL_DEVICE_TYPE_CPU
	deviceName         = llvmpipe (LLVM 19.1.0, 256 bits)
	driverID           = DRIVER_ID_MESA_LLVMPIPE
	driverName         = llvmpipe
	driverInfo         = Mesa 24.2.6 (LLVM 19.1.0)
	conformanceVersion = 1.3.1.1
	deviceUUID         = 6d657361-3234-2e32-2e36-000000000000
	driverUUID         = 6c6c766d-7069-7065-5555-494400000000

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions