DC drivers PACKAGING issues and feedback

Feedback regarding packaging of DC drivers seem to get easily lost and overlooked when reported in driver release threads, hence I thought a separate thread may be useful.

Reports of bugs in DC drivers should still be reported in appropriate release feedback threads as previously: this thread is dedicated exclusively for DC packaging matters, like problems with package dependencies, missing links, conflicts etc.

Please also note that DC repositories take much more conservative approach to publishing new releases comparing to standalone *.run installers, so do not report ā€œmissing version X for distro Yā€ unless it’s available for other distros already.


Let me start by summarizing the recent problems with Debian-12 repo:

  1. the main nvidia-open metapackage is currently uninstallable due to broken versioning of libnvidia-egl-xcb1 and libnvidia-egl-xlib1 packages (first reported here, then here and here). The easiest workaround is to manually repackage nvidia-driver-libs package (both amd64 and i386 versions) by modifying in their control files, version constraints of the problematic libnvidia-egl-xcb1 and libnvidia-egl-xlib1 packages: replace libnvidia-egl-xcb1 (<= 575.51.03-1), libnvidia-egl-xcb1 (>= 1.0.0) with libnvidia-egl-xcb1 (>= 1:1.0.1-2) and libnvidia-egl-xlib1 (<= 575.51.03-1), libnvidia-egl-xlib1 (>= 1.0.0) with libnvidia-egl-xlib1 (>= 1:1.0.1-2).
  2. package nvidia-settings does not create links for its executable, desktop entry nor man page as reported here. The easiest workaround is to create links manually as described in the linked post.
  3. local repository package (useful for installing the driver in isolated environments) for version 575.51.03 is missing (the link https://developer.download.nvidia.com/compute/nvidia-driver/575.51.03/local_installers/nvidia-driver-local-repo-debian12-575.51.03_1.0-1_amd64.deb gives 404). The workaround is to manually download each necessary package from the network repo.

Please report issues on other distros in replies.

1 Like

All the above Debian issues have been fixed with version 575.57.08-1 :))))

CC: @scaronni

@gtavreinstall, I’m not much of a gamer, so please forgive me quite basic questions: to reproduce this bug, I would need to start my X11 session directly on my Nvidia GPU and my Wine prefix should be using wined3d (instead of usual DXVK + DXVK-NVAPI), correct?

Hi @morgwai666, many Debian packages have been removed from the packaging in the last few releases, it simplified packaging substantially.

These are the packages removed, and that are no longer installed when installing the driver from scratch:

nvidia-detect
nvidia-legacy-detect
nvidia-powerd
nvidia-suspend-common
nvidia-cuda-mps
nvidia-smi
nvidia-alternative
nvidia-legacy-check
nvidia-support
nvidia-egl-common
nvidia-vulkan-common
nvidia-opencl-common
nvidia-kernel-common

My suggestion for now is to remove --purge all of those or just remove --purge \*nvidia\* and reinstall the driver.

I will add transitional packages for all of those so anyone else in the same situation as you will not have the same issue. Thanks.

1 Like

@scaronni many thanks for the reply! :)
(a small side note: it’s not me (probably) in this situation, but @gtavreinstall whose post I quoted ;-) )

@gtavreinstall could you please verify that purging and reinstalling solves the issue? (Again, I’m not sure if my way of reproducing the problem is correct)

What worked for me is

apt remove libnvidia-egl-xcb1 libnvidia-egl-xlib1

then

apt install libnvidia-egl-xcb1 libnvidia-egl-xlib1

Sorry for late reply, did not log in since that post I made. I presume as you know Debian is not firendly to .run driver install. ā€œnvidia-installer-cleanupā€ will look to remove anything related to .run driver - and will casue issues when trying to install those glx redirects.
My issue was/is different, manually adjusting dependencies in some Debian packages helps somewhat, yet it does not resolve the situation.
Hopefully distro developers get 575 and 580 (this beta version is good) into Debian repos and carry out Debian specific tweaks.

Just a standard wine install with dxvk + vkd3.
nvapi as in dxvk-nvapi? Too much trouble to run, I did not use it on 535 drivers.

When updating drivers, dkms and update-alternatives will trigger creation of redirection symlinks within /etc/alternatives.

I am not in a rush, but I am confident I can handle it - I first must go through documentation when I get some time heh.

I’m confused: this uses Vulkan as a backend, yet you complained about Mesa/GLX…

This is most probably the root cause of your problems. I don’t have nvidia-alternatives installed either, yet everything uses my GPU as it should without creating any manual links in /etc/alternatives.
I’m almost sure that DXVK by default will choose whatever backend is at the beginning of the list returned by vkGetPhysicalDevices, it is possible that when you were using driver v535, your Nvidia card was at the beginning of the list purely by chance. DXVK-NVAPI ensures that an Nvidia card is used.

Your response prompted me to check my program shortcuts (which I manually adjusted years ago and forgot about it). During my initial post I forgot to include the most important bit why some applications (mostly games) did not run; that is if sandboxing programs they will not detect gpu card and drivers. And games are the programs I sandbox the most. E.g. simple and quick ā€œfirejail --noprofile --dns=0.0.0.0ā€.

Now, in regards to wine, you are correct, however some games are opengl like my old vice city,

which if ran sandboxed will result in

DNS server 0.0.0.0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  398
  Current serial number in output stream:  399
Parent is shutting down, bye...

If ran without sandboxing, then it will work as it should, without any problems. I just remembered today that i sandboxed bunch of them.

Though, I still trust this is due to missing symlinks in /etc/alternatives (which get created after dkms does setups for kernels and then triggers update-alternatives), since that was the way 535 driver worked. Yet something could have changed, so i guess it is now up to Debian devs to tweak it, since as scaronni writes some packages are no longer required (as is the case with nvidia-alternatives). And now since 580 i am able to select nvidia as glx provider, this time using ā€œupdate-glx --config glxā€.

Let me show what happens if I run a bit more modern game, when sandboxed that is:

nfs rivals

info:  Game: NFS14.exe
info:  DXVK: v2.7
info:  Build: x86_64 gcc 15.1.0
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6ffffd13e370
info:  Extension providers:
info:    Platform WSI
info:    OpenVR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:    OpenXR
info:  Enabled instance extensions:
info:    VK_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  Found device: llvmpipe (LLVM 15.0.6, 256 bits) (llvmpipe 0.0.1)
warn:  D3D11DeviceFeatures: External memory features not supported
info:  D3D11InternalCreateDevice: Maximum supported feature level: D3D_FEATURE_LEVEL_11_1
info:  D3D11InternalCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_1
info:  Creating device:
info:  llvmpipe (LLVM 15.0.6, 256 bits):
info:    Driver   : llvmpipe 0.0.1
info:  Queues:
info:    Graphics : (0, 0)
info:    Transfer : (0, 0)
info:    Sparse   : (0, 0)
info:  Memory:
info:    Heap 0: 62.70 GiB (DEVICE_LOCAL)
info:    Budget: 62.70 GiB
info:      Type  0: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | HOST_CACHED
info:  Enabled extensions:
info:    VK_EXT_attachment_feedback_loop_layout
info:    VK_EXT_custom_border_color
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_descriptor_buffer


and so on ...

Debian will not show it that gpu exists nor drivers for it.

One more example, obs studio now, when ran via simple ā€œfirejail --noprofile --dns=0.0.0.0ā€ will not be able to see the cards

DNS server 0.0.0.0

info: Using EGL/X11
info: Distribution: "Debian GNU/Linux" "12"
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1
info: Qt Version: 5.15.8 (runtime), 5.15.8 (compiled)
info: Portable mode: false
info: OBS 29.0.2.1-1+b1 (linux)
info: audio settings reset:
	samples per sec: 48000
	speakers:        2
	max buffering:   960 milliseconds
	buffering type:  dynamically increasing
info: Initializing OpenGL...
error: Failed to initialize EGL: EGL_BAD_ACCESS
error: Failed to create context!
error: device_create (GL) failed
error: Failed to initialize video.  Your GPU may not be supported, or your graphics drivers may need to be updated.
info: Freeing OBS context data

And if ran as default ā€˜obs’ without simple sandboxing then it will detect cards, launch properly and have NVENC available.

New stable drivers are out, will have to test them today and see how everything goes with them.

EDIT: I ended up figuring this all out downthread.

Most of these are still installed when installing the driver from scratch from the repo.

Just did a clean installation of 580.82.07 a few days ago.

More confusing is that some packages are missing their binaries.

nvidia-smi is packaged and installed for 580 series, but contains no binary, so command no workie.

The most recent packaged version of nvidia-smi which includes the binary is560.35.05:

(nvidia-smi_560.35.05-1_amd64/usr/lib)$ tree -af
.
└── ./nvidia
    └── ./nvidia/current
        ā”œā”€ā”€ ./nvidia/current/nvidia-smi
        └── ./nvidia/current/nvidia-smi.1.gz

3 directories, 2 files

Similarly with nvidia-suspend, the service file is not packaged, and suspend is nonfunctional.

You can actually tell by the repo package file sizes when nvidia-smi lost its binary:

The file size drops to 124KB.

What’s going on with this? Errors in packaging, or are nvidia-smi and nvidia-suspend no longer supported?

Hmm, I can’t vouch for 580.82.07, but about 3 weeks ago I did a clean install of 580.65.06 (proprietary flavor via cuda-drivers meta-package as I have an additional 1080ti in my system now) and these packages have not been pulled-in…

nvidia-smi binary has been moved to nvidia-driver-cuda package, that is (or at least should be) pulled-in by both open and proprietary (nvidia-open and cuda-drivers) meta-packages:

$ dpkg -S /usr/bin/nvidia-smi
nvidia-driver-cuda: /usr/bin/nvidia-smi

Hasn’t the installation of 580.82.07 pulled it in for you?

Per 1. Introduction — NVIDIA Driver Installation Guide r580 documentation I installed:

apt -V install nvidia-driver nvidia-kernel-dkms
1 Like

Ah, so probably desktop-only / compute-only paths are broken… The ā€œfull driverā€ (nvidia-open / cuda-drivers) seems to work as intended (at least up to 580.65.06).

Yeah, this got nvidia-smi working but I can live without it, as it also pulled in a bunch of stuff I don’t want or need:

$ sudo apt -V install cuda-drivers
Installing:                     
   cuda-drivers (580.82.07-1)

Installing dependencies:
   cuda-drivers-580 (580.82.07-1)
   gnome-accessibility-themes (3.28-4)
   gnome-themes-extra (3.28-4)
   gtk2-engines-pixbuf (2.24.33-7)
   libcudadebugger1 (580.82.07-1)
   libgail-common (2.24.33-7)
   libgail18t64 (2.24.33-7)
   libgtk2.0-0t64 (2.24.33-7)
   libgtk2.0-bin (2.24.33-7)
   libgtk2.0-common (2.24.33-7)
   libnvidia-encode1 (580.82.07-1)
   libnvidia-fbc1 (580.82.07-1)
   libnvidia-nvvm4 (580.82.07-1)
   libnvidia-nvvm704 (580.82.07-1)
   libnvidia-opticalflow1 (580.82.07-1)
   libnvidia-present (580.82.07-1)
   libnvidia-sandboxutils (580.82.07-1)
   libnvoptix1 (580.82.07-1)
   libxnvctrl0 (580.82.07-1)
   nvidia-driver-cuda (580.82.07-1)
   nvidia-opencl-icd (580.82.07-1)
   nvidia-settings (580.82.07-1)
   nvidia-xconfig (580.82.07-1)

Suggested packages:
   libnvidia-fbc

Recommended packages:
   libgl1-nvidia-glvnd-glx
   | libgl1-nvidia-glx

Summary:
  Upgrading: 0, Installing: 24, Removing: 0, Not Upgrading: 0
  Download size: 135 MB
  Space needed: 478 MB / 81.2 GB available

So it’s an issue with the packaging for desktop-only install.

1 Like

Well I had to remove the cuda-drivers and nvidia-driver metapackages to also remove all the other stuff I don’t want (nvidia-settings and gtk2 gang).

So now I’ve got a hodgepodge of a la carte nVidia packages installed, but only what I need.

Hopefully this will be addressed in future packaging of the desktop-only nvidia-driver.

EDIT:

As unintuitive as it is… I don’t think there’s a packaging problem after all.

$ dpkg -S /usr/lib/systemd/system/nvidia-suspend.service
nvidia-driver: /usr/lib/systemd/system/nvidia-suspend.service

$ dpkg -S /usr/bin/nvidia-smi
nvidia-driver-cuda: /usr/bin/nvidia-smi

Turns out you neeed BOTH *-driver packages to have nvidia-smi AND functional suspend.

TL;DR… I’ve no longer got any problem with the packaging in the nVidia Debian repo.

Sorry for the noise!

1 Like