ubuntuusers.de

Nvidia Darstellungsproblem bei proprietärem Treiber

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

Spacetaxi

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3289

Der Driver 470 von Nvidia-driver-470-server (Proprietär als auch proprietär getestet) haben unter Ubuntu 24.04 Darstellungsfehler, die vorherigen Versionen liefen flüssig. Wenn ich den Dateimanager öffne sehe ich links nur ein weißes Feld neben den sichtbaren Symbolen, die ausgeschriebenen Namen der Ordner fehlen. (Ausnahme, drittes Symbol; Persönlicher Ordner). Erst wenn ich mit der Maus neben den Symbolen runter scrolle erscheint die Schrift neben den Symbolen, also die Namen der Ordner. Ansonsten merkt man es teilweise ruckeln.

Der Noveau displayserver Xserver funktioniert.

Mein System:

Grafik:

patt@patt-desktop:~$ lspci -nnk | grep -i VGA -A2
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK106 [GeForce GTX 650 Ti Boost] [10de:11c2] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd GK106 [GeForce GTX 650 Ti Boost] [1458:356d]
	Kernel driver in use: nouveau
patt@patt-desktop:~$ 

Allgemein:

patt@patt-desktop:~$ lspci 
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4)
00:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 41)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller (rev 40)
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 5
01:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 06)
03:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 650 Ti Boost] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GK106 HDMI Audio Controller (rev a1)
patt@patt-desktop:~$ 

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18222

Wohnort: in deinem Browser, hier auf dem Bildschirm

Der Noveau displayserver Xserver funktioniert.

Dann würde ich dabei bleiben. Kepler ist für nvidia schon Legacy und es wird ne Frage der Zeit sein, wann da gar nix mehr von Nvidia kommt.

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3289

So was in der Art dacht ich mir schon. Langsam sollte wirklich was neues her.

Gilt nicht nur für den Dateimanager, auch bei Videos, Bildern fehlt die Schrift..

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18222

Wohnort: in deinem Browser, hier auf dem Bildschirm

Spacetaxi schrieb:

So was in der Art dacht ich mir schon. Langsam sollte wirklich was neues her.

Warum, wenn nouveau geht?

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5005

Im Paket nvidia-dkms-470 (470.239.06-0ubuntu2) aus restricted sehe ich keinen Patch für den 6.8er Kernel.

Wenn man hingegen mal in das nvidia-dkms-470 Paket aus dem PPA hineinschaut, gibt es dort eine ganze Menge an Patches für Kernelversionen:

Im Paket für den nvidia-driver 550.78, nvidia-dkms-550 gibt es extra einen Patch für 6.8er Linux Kernel.

/usr/src/nvidia-550.78/patches/buildfix_kernel_6.8-gpl-pfn_valid.patch

Die hatten Schnittstellen vernagelt. Der Patch umgeht das.

towo2099

Anmeldungsdatum:
3. Dezember 2015

Beiträge: 409

Weder 470.239.06, noch 550.78 benötigt spezielle Patches für Kernel 6.8, der Support dafür ist upstream enthalten.

hakel2022

Anmeldungsdatum:
21. Februar 2022

Beiträge: 3183

Mit einer 650 kann man eh nicht mehr viel anstellen (Gaming, Multimedia), aber für Office mit nouveau sollte es reichen.

Sinnvoll wäre bestimmt eine Neuinstallation mit Xubuntu und kein Plymouth oder Wayland. ☹

.

wirklich was neues her.

Natürlich gibt es Heute schöne iGP Lösungen für wenig Geld (gerne gebraucht), gar keine Frage! 👍

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5005

towo2099 schrieb:

Weder 470.239.06, noch 550.78 benötigt spezielle Patches für Kernel 6.8, der Support dafür ist upstream enthalten.

Dankeschön für die Information towo2099. 👍

Bei mir im nvidia-dkms-550 vom nvidia-driver Metapaket für die 550.78 Version aus dem Proprietary GPU Drivers PPA für Ubuntu ist noch der Patch enthalten:

/usr/src/nvidia-550.78/patches/buildfix_kernel_6.8-gpl-pfn_valid.patch

Der Patchinhalt:

cat /usr/src/nvidia-550.78/patches/buildfix_kernel_6.8-gpl-pfn_valid.patch

linux-6.1.76, 6.6.15, and 6.7.3 have modified the non-ARCH-specific
pfn_valid() to use __rcu_read_lock/unlock[1] that is marked GPL and
cannot be used here[2][3][4] unless use the open source variant.

As a workaround, reuse the old implementation until NVIDIA makes
a fixed release (due to no longer be using pfn_valid[5], likely
with its own implementation similarly to this patch).

Safe to use with kernel >=5.15 or so but older ones had a different
pfn_valid implementation. However 5.15 and older branches are
"currently" not affected, so simply limit to >=6.1.76.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/mmzone.h?h=v6.7.3&id=3a01daace71b521563c38bbbf874e14c3e58adb7
[2] https://bugs.gentoo.org/923456
[3] https://forums.developer.nvidia.com/t/280908
[4] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/594
[5] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/594#issuecomment-1916197641
--- a/common/inc/nv-linux.h
+++ b/common/inc/nv-linux.h
@@ -1990,2 +1990,23 @@
 
+#if defined(CONFIG_HAVE_ARCH_PFN_VALID) || LINUX_VERSION_CODE < KERNEL_VERSION(6,1,76)
+#  define nv_pfn_valid pfn_valid
+#else
+/* pre-6.1.76 kernel pfn_valid version without GPL rcu_read_lock/unlock() */
+static inline int nv_pfn_valid(unsigned long pfn)
+{
+        struct mem_section *ms;
+
+        if (PHYS_PFN(PFN_PHYS(pfn)) != pfn)
+                return 0;
+
+        if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
+                return 0;
+
+        ms = __pfn_to_section(pfn);
+        if (!valid_section(ms))
+                return 0;
+
+        return early_section(ms) || pfn_section_valid(ms, pfn);
+}
+#endif
 #endif  /* _NV_LINUX_H_ */
--- a/nvidia/nv-mmap.c
+++ b/nvidia/nv-mmap.c
@@ -576,3 +576,3 @@
             if (!IS_REG_OFFSET(nv, access_start, access_len) &&
-                (pfn_valid(PFN_DOWN(mmap_start))))
+                (nv_pfn_valid(PFN_DOWN(mmap_start))))
             {
--- a/nvidia/os-mlock.c
+++ b/nvidia/os-mlock.c
@@ -102,3 +102,3 @@
         if ((nv_follow_pfn(vma, (start + (i * PAGE_SIZE)), &pfn) < 0) ||
-            (!pfn_valid(pfn)))
+            (!nv_pfn_valid(pfn)))
         {
@@ -176,3 +176,3 @@
 
-    if (pfn_valid(pfn))
+    if (nv_pfn_valid(pfn))
     {

nvidia-dkms-550 Paketinhalt:

dpkg -L nvidia-dkms-550

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/nvidia-dkms-550
/usr/share/doc/nvidia-dkms-550/changelog.Debian.gz
/usr/share/doc/nvidia-dkms-550/copyright
/usr/src
/usr/src/nvidia-550.78
/usr/src/nvidia-550.78/dkms.conf
/usr/src/nvidia-550.78/patches
/usr/src/nvidia-550.78/patches/allow_sublevel_greater_than_5.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.0.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.10.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.11.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.13.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.14.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.18.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.6.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_3.8.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.10.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.14.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.15.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.3.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.6.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.7.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.7_amd64_only.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.8.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.9.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_4.9_amd64_only.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_5.13.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_5.6.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_6.0.patch
/usr/src/nvidia-550.78/patches/buildfix_kernel_6.8-gpl-pfn_valid.patch
/usr/src/nvidia-550.78/patches/disable_fstack-clash-protection_fcf-protection.patch
/usr/src/nvidia-550.78/patches/do-not-call-pci_save_state.patch
/usr/src/nvidia-550.78/patches/make-use-of-the-new-uapi-framework.patch
/usr/src/nvidia-550.78/patches/register-VT-switch-requirements.patch
/usr/src/nvidia-550.78/patches/replace-VM_RESERVED-with-VM_DONTEXPAND-and-VM_DONTDU.patch

PS: hakel2022, die GeForce GTX 650 Ti Boost kann mit dem properitären nvidia-driver NVENC, NVDEC nutzen, und CUDA. Das lohnt sich für Gaming und Multimedia. Zumindest, wenn proprietärer nvidia-driver und Kernel Version sich vertragen.

towo2099

Anmeldungsdatum:
3. Dezember 2015

Beiträge: 409

Tja, PPA halt

Dass der Patch im Paket noch drin ist sagt nicht, dass er auch angewendet wird.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5005

towo2099 schrieb:

Tja, PPA halt

Dass der Patch im Paket noch drin ist sagt nicht, dass er auch angewendet wird.

Jetzt, da Du darauf aufmerksam gemacht hast, sehe ich, dass in der dkms.conf der buildfix Aufruf für den 6.8er Kernel auskommentiert ist.

grep buildfix /usr/src/nvidia-550.78/dkms.conf

#PATCH[1]="buildfix_kernel_6.8-nv_drm_ioctls-DRM_UNLOCKED-is-now-the-default-behavi.patch"
#PATCH[2]="buildfix_kernel_6.8-gpl-pfn_valid.patch"
#PATCH[1]="buildfix_kernel_6.0.patch"
#PATCH[2]="buildfix_kernel_4.9_amd64_only.patch"
Antworten |