nvidia-driver isn't yet Linux 7.0 compatible

Begonnen von kitty-kitty, 2026/04/28, 07:21:23

Vorheriges Thema - Nächstes Thema

Isegrimm666

Hi Edlin ...

Nachdem ich gestern etwas konfus an Rechner war, hab ich heute erst mal die Sources - nach Euren Empfehlungen - angepasst ... und auch hier gepostet, um sicher zu gehen.

Dann den sddm gestoppt, und das Upgrade rein über die Konsole ausgeführt (wie auch empfohlen).

Das Ergebnis steht in meinem letzten Post.

Warum er jetzt nicht den korrekten Nvidia-kernel anpackt (was mir gar nicht aufgefallen ist), ist mir auch ein Rätsel.




towo

apt policy nvidia-driver

Ist es wirklich so schwer, relevante Informationen zu liefern?
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Isegrimm666

Hätte ich gewusst, das sie erforderlich ist, dann hätte ich sie geliefert, sorry.


┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ apt policy nvidia-driver
nvidia-driver:
  Installiert:           580.142-1tux1
  Installationskandidat: 580.142-1tux1
  Versionstabelle:
*** 580.142-1tux1 500
        500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
        100 /var/lib/dpkg/status
     580.126.18-1tux1 500
        500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
     550.163.01-5 500
        500 https://deb.debian.org/debian unstable/non-free amd64 Packages

towo

Wenn  580.142-1tux1 instaalliert ist, wieso ist dann noch das dkms in Version 580.126.18 drauf?

dpkg -l | grep nvidia

Aber das Einfachste wird wohl sein

apt update && apt purge $(dpkg -l | awk '/nvidia/{print $2}') && apt instaall nvidia-driver(-open)
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Isegrimm666

Ist da noch ein Schreibfehler (ausser bei 'install') drin?


┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ doas apt purge $(dpkg -l | awk '/nvidia/{print $2}') && apt install nvidia-driver(-open)
bash: Syntaxfehler beim unerwarteten Symbol »(«

towo

Mitdenken ist nicht so Deins, oder?

apt install nvidia-driver(-open) ist ein Platzhalter, falls die open-gpu nvidia Module gewünst sind (bei Geforce 5xxx Keraten Pflicht)

apt install nvidia-driver = full closed
apt install nvidia-driver-open = open-gpu Module wird benutzt
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Isegrimm666

Doch ... sicherlich ist Mitdenken meins ... aber hast Du schon mal daran gedacht, dass es Nutzer gibt, denen Du in der Nutzung der Befehle durch Deine Erfahrung überlegen bist ... und die erst auf dieses Level kommen wollen?

Ich will hier einfach keinen Stress verursachen ...

┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ doas apt install nvidia-driver-open
Auflösen von Abhängigkeiten... Fehler!       
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Nichterfüllte Abhängigkeiten:
nvidia-driver : Kollidiert mit: nvidia-driver-open aber 580.142-1tux1 soll installiert werden
                 Empfiehlt: nvidia-persistenced (>= 580) soll aber nicht installiert werden
nvidia-driver-open : Hängt ab von: nvidia-open-kernel-dkms soll aber nicht installiert werden
                      Kollidiert mit: nvidia-driver aber 580.142-1tux1 soll installiert werden
                      Kollidiert mit: nvidia-kernel-dkms aber 580.126.18-1tux1 soll installiert werden
                      Empfiehlt: nvidia-persistenced (>= 580) soll aber nicht installiert werden
Fehler: Unable to satisfy dependencies. Reached two conflicting assignments:
   1. nvidia-driver-open:amd64=580.142-1tux1 is selected for install
   2. nvidia-driver-open:amd64 Hängt ab von nvidia-open-kernel-dkms
      but none of the choices are installable:
      - nvidia-open-kernel-dkms:amd64 Hängt ab von nvidia-open-kernel-support--v1
        but none of the choices are installable:
        - nvidia-open-kernel-support:amd64=580.126.18-1~tux1 Hängt ab von nvidia-alternative-580.126.18 | nvidia-alternative-580.126.18
          but none of the choices are installable:
          - nvidia-alternative:amd64=580.126.18-1tux1 is not selected for install
          - nvidia-alternative:amd64=580.126.18-1tux1 is not selected for install
          - nvidia-alternative:i386=580.126.18-1tux1 is not selected for install
          - nvidia-alternative:i386=580.126.18-1tux1 is not selected for install
        - nvidia-open-kernel-support:amd64=550.163.01-4 is not selected for install
        - nvidia-open-kernel-support:amd64=535.183.01-1 is not selected for install





towo

Bei der Open Variante hatte ich vergessen, selbige hochzuladen, ist jetzt aber da.
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Teriarch

@Isegrimm666

Falls es wider Erwarten schief geht, kannst Du 'mal das Ergebnis von
$ dpkg -l|grep nvidia

posten, um irgendwelche sperrenden Karteileichen auszuschließen.

michaa7

Zitat von: Teriarch in 2026/04/28, 18:28:25
@michaa7

Lade zunächst die aktuellen Tesla Debian Treiber herunter:
$ cd /tmp; apt-get download nvidia-tesla-470-kernel-dkms
...
Schließlich die Treiber konfigurieren:
$ sudo dpkg --configure nvidia-tesla-470-kernel-dkms

HTH

Und nach dem konfig?
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Teriarch

#40
@michaa7

Sorry, vor dem "$ sudo dpkg --configure ..." (aber nach dem "$ sudo dpkg --unpack ..")
sind neben dem Kopieren von use-tesla-mm.patch ins patch Verzeichnis von
/usr/src/nvidia-tesla-470-470.256.02/patches noch zwei weitere Dinge zu erledigen,
die beim Konfigurieren auch die Anwendung des Patches garantieren:

1) Mit "$ sudo vi /usr/src/nvidia-tesla-470-470.256.02/dkms.conf" (oder einem anderen Editor Deiner Wahl)
    unter PATCH=(...  use-tesla-mm.patch) den neuen Patch ans Ende der Patch- Kette aufnehmen.

2) Mit "$ sudo vi /usr/src/nvidia-tesla-470-470.256.02/patches/series" den Patch use-tesla-mm.patch ans
    Ende der Liste hinzufügen.

Danach sollte "$ sudo dpkg --configure ..." alle Treiber bauen und installieren. Die Vorgehensweise garantiert,
dass die so modifizierte Version nur dann vom Siduction Repository überschrieben wird, falls es eine neuere
(und vermutlich angepasste Version) gibt.

Da ich das Debian Paket manuell ins /tmp Verzeichnis ausgepackt und modifiziert hatte (um meine Konfiguration
nicht zu überschreiben), bin ich mir der zusätzlichen Schritte erst durch Deine Rückmeldung bewusst geworden.

HTH

PS.: Vor einem "§ sudo dpkg --unpack ..." sollte eine unsaubere Version von nvidia-tesla-470-kernel-dkms
        natürlich erst durch "$sudo apt-get remove nvidia-tesla-470-kernel-dkms" entfernt werden.

Pip

Thanks for all the work, Teriarch, I wouldn't have had a clue how to get my 470 functional without it. A small caveat, though: the dpkg --configure doesn't work for kernel 6 (at least, for me), so if you still have one around, it will fail and then not proceed with 7 (it seems) and won't boot cleanly. If you've already got a couple of kernel 7 releases in place, a sudo apt autoremove will get rid of any old 6 releases, or just remove manually. dpkg --configure worked cleanly after that and the reboot gave me a GUI screen to work with.

Isegrimm666

Mit einem eben fehlerfrei durchgelaufenen full-upgrade scheinen jetzt alle Kanten abgeschliffen zu sein:


┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ dofu
OK:1 https://deb.debian.org/debian unstable InRelease
OK:2 https://packages.siduction.org/extra unstable InRelease
OK:3 https://packages.siduction.org/fixes unstable InRelease
Alle Pakete sind aktuell.                   
Zusammenfassung:                                   
  Aktualisiere: 0, Installiere: 0, Entferne: 0, Aktualisiere nicht: 0

┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ apt policy nvidia-driver
nvidia-driver:
  Installiert:           580.142-1tux1
  Installationskandidat: 580.142-1tux1
  Versionstabelle:
*** 580.142-1tux1 500
        500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
        100 /var/lib/dpkg/status
     580.126.18-1tux1 500
        500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
     550.163.01-5 500
        500 https://deb.debian.org/debian unstable/non-free amd64 Packages
┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$


Danke an alle, die mal wieder Zeit und arbeit in dieses Projekt gesteckt haben :)

michaa7

Hi

is this a *fixed* kernel-7.x-ready nvidia-tesla-470 siduction driver:

470.256.02-8siduction1

?

Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Teriarch

@pip

> A small caveat, though: the dpkg --configure doesn't work for kernel 6

Thx for pointing that out. Here is a corrected version of use-tesla-mm.patch,
which should work for all kernels no matter what:

--- aaa/nvidia-drm/nvidia-dma-fence-helper.h    2024-05-02 16:49:58.000000000 +0200
+++ bbb/nvidia-drm/nvidia-dma-fence-helper.h    2026-04-28 16:36:24.448688067 +0200
@@ -93,7 +93,8 @@ static inline int nv_dma_fence_signal(nv
#if defined(NV_LINUX_FENCE_H_PRESENT)
     return fence_signal(fence);
#else
-    return dma_fence_signal(fence);
+    dma_fence_signal(fence);
+    return 0;
#endif
}

--- aaa/nvidia/nv-mmap.c        2026-04-28 17:32:39.018436213 +0200
+++ bbb/nvidia/nv-mmap.c        2026-04-28 16:37:09.514796016 +0200
@@ -800,15 +800,22 @@ void NV_API_CALL nv_set_safe_to_mmap_loc
}

#if !NV_CAN_CALL_VMA_START_WRITE
+
+#if defined(VM_REFCNT_EXCLUDE_READERS_FLAG)
+#define NV_VMA_LOCK_OFFSET VM_REFCNT_EXCLUDE_READERS_FLAG
+#else
+#define NV_VMA_LOCK_OFFSET VMA_LOCK_OFFSET
+#endif
+
static NvBool nv_vma_enter_locked(struct vm_area_struct *vma, NvBool detaching)
{
-    NvU32 tgt_refcnt = VMA_LOCK_OFFSET;
+    NvU32 tgt_refcnt = NV_VMA_LOCK_OFFSET;
     NvBool interrupted = NV_FALSE;
     if (!detaching)
     {
         tgt_refcnt++;
     }
-    if (!refcount_add_not_zero(VMA_LOCK_OFFSET, &vma->vm_refcnt))
+    if (!refcount_add_not_zero(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt))
     {
         return NV_FALSE;
     }
@@ -838,7 +845,7 @@ static NvBool nv_vma_enter_locked(struct
     if (interrupted)
     {
         // Clean up on error: release refcount and dep_map
-        refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt);
+        refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt);
         rwsem_release(&vma->vmlock_dep_map, _RET_IP_);
         return NV_FALSE;
     }
@@ -854,7 +861,7 @@ void nv_vma_start_write(struct vm_area_s
{
     NvU32 mm_lock_seq;
     NvBool locked;
-    if (__is_vma_write_locked(vma, &mm_lock_seq))
+    if (nv_is_vma_write_locked(vma, &mm_lock_seq))
         return;

     locked = nv_vma_enter_locked(vma, NV_FALSE);
@@ -863,7 +870,7 @@ void nv_vma_start_write(struct vm_area_s
     if (locked)
     {
         NvBool detached;
-        detached = refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt);
+        detached = refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt);
         rwsem_release(&vma->vmlock_dep_map, _RET_IP_);
         WARN_ON_ONCE(detached);
     }
--- aaa/common/inc/nv-mm.h      2026-05-01 15:29:25.280617220 +0200
+++ bbb/common/inc/nv-mm.h      2026-05-01 15:19:01.520148178 +0200
@@ -276,6 +276,21 @@ static inline void nv_vma_flags_clear_wo
     ACCESS_PRIVATE(vma, __vm_flags) &= ~flags;
#endif
}
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(7,0,0)
+#define NV_IS_VMA_WRITE_LOCKED_HAS_MM_LOCK_SEQ_ARG
+#endif
+
+static inline int nv_is_vma_write_locked(struct vm_area_struct *vma, unsigned int *mm_lock_seq)
+{
+#if defined(NV_IS_VMA_WRITE_LOCKED_HAS_MM_LOCK_SEQ_ARG)
+    return __is_vma_write_locked(vma, mm_lock_seq);
+#else
+    *mm_lock_seq = __vma_raw_mm_seqnum(vma);
+    return __is_vma_write_locked(vma);
+#endif
+}
#endif // !NV_CAN_CALL_VMA_START_WRITE

#include <linux/version.h>


You know what the funny thing about all of this is:
I don't even own an Nvidia graphics card (except for my laptop that is)!

@michaa7

Wie Du in <https://packages.siduction.org/fixes/pool/non-free/n/nvidia-graphics-drivers-tesla-470/>
sehen kannst: nvidia-tesla-470-kernel-dkms_470.256.02-8siduction1_amd64.deb ist vom Oktober 2025
und kann deswegen mit Kernel der siebener Reihe nicht funktionieren. Der Debian Nvidia Treiber
nvidia-tesla-470-kernel-dkms_470.256.02-9_amd64.deb ist vom März 2026 und daher durch obigen Patch
leichter auf den neuesten Stand zu bringen.