-
-
Save joanbm/d0cb8790ca610fbd2c2e43f30707ce18 to your computer and use it in GitHub Desktop.
From bee3ff1153f7b42491d2a0552d6f9a66a307ec1a Mon Sep 17 00:00:00 2001 | |
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <[email protected]> | |
Date: Sun, 15 Dec 2024 17:56:03 +0000 | |
Subject: [PATCH] Tentative fix for NVIDIA 470.256.02 driver for Linux 6.14-rc1 | |
--- | |
nvidia-drm/nvidia-drm-drv.c | 3 +++ | |
1 file changed, 3 insertions(+) | |
diff --git a/nvidia-drm/nvidia-drm-drv.c b/nvidia-drm/nvidia-drm-drv.c | |
index 0b1181d..b50b17a 100644 | |
--- a/nvidia-drm/nvidia-drm-drv.c | |
+++ b/nvidia-drm/nvidia-drm-drv.c | |
@@ -882,7 +882,10 @@ static struct drm_driver nv_drm_driver = { | |
.name = "nvidia-drm", | |
.desc = "NVIDIA DRM driver", | |
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 14, 0) | |
+ // Rel. commit. "drm: remove driver date from struct drm_driver and all drivers" (Jani Nikula, 4 Dec 2024) | |
.date = "20160202", | |
+#endif | |
#if defined(NV_DRM_DRIVER_HAS_DEVICE_LIST) | |
.device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), | |
-- | |
2.48.1 | |
For that patch work need first add the previous patchs for kernel 6.11 , 6.12 and 6.13 ?
@Augusto7743 Yes, see this comment for instructions on how to apply the multiple patches: https://gist.github.com/joanbm/a6d3f7f873a60dec0aa4a734c0f1d64e?permalink_comment_id=5254102#gistcomment-5254102
There are also some scripts like the one on the comment above by @satmandu or this one: https://gist.github.com/joanbm/d1f89391a4b20f4b56ba931ef6ca62da?permalink_comment_id=5461139#gistcomment-5461139
Thanks very much.
Have an nice week.
Just as an FYI, there's a patch that just went into mutter yesterday that handles loading Gnome 48’s GDM in Wayland with EGL streams, which is your only option for Wayland using the 470 driver...
But eglinfo doesn't show any Wayland support through this driver once you actually get into Wayland. See: https://gitlab.gnome.org/GNOME/gtk/-/issues/4950#note_2375106
If anyone has any ideas on how to get that to work, it would be much appreciated, as otherwise acceleration using the Nvidia driver in Wayland is broken.
When Nvidia had released the driver 470 was starting to add wayland support having problems.
does it work on my kernel?
my kernel from neofetch Kernel: 6.14.0-arch1-1
@Omar2812-spec Yes, it should. Since you are using Arch I recommend you use the nvidia-470xx-dkms AUR package, you can apply this patch on top of the PKGBUILD. Also in a few days this patch will likely be incorporated to the package.
How extensive is the patch? Will it work on Ubuntu kernel 6.14? 6.14.11?
Even never, starting with 6.15?
It would be nice if someone make an nvidia driver binary with all the patches applied for download.
@Mumuskeh Most of the time there are no breaking changes between e.g. 6.14.0 and 6.14.11 so the patch works for all of them.
There is a separate patch for 6.15.x.
Here Ubuntu 24.04.1 kernel 6.14.
That patch works.
I see then installing kernel 6.14 and using driver 470 an extreme slowdown playing video and moving mouse pointer in few softwares. The GPU usage goes to 100 % in simple tasks.
I have used in kernel the setting nvidia-drm.modeset=1
Have an nice week and thanks very much for doing that good deed.
Thank you very much for this...
The patch works on Ubuntu 24.04.2 and kernel 6.14.0-27-generic.
My two nvidia cards (Quadro M4000 & Tesla K80) are recognized by the driver. However, it only identifies just one of the two Tesla k80's chipsets. It's not perfect but better than nothing.
BTW @Augusto7743, to avoid this:
I see then installing kernel 6.14 and using driver 470 an extreme slowdown playing video and moving mouse pointer in few softwares. The GPU usage goes to 100 % in simple tasks
You need to blacklist nouveau drivers.
@egoipse
Oh yeahh ... nouveau are blacklisted.
In moment that issue not are happening very much.
hello, I don't know if it would be too much trouble if you could help me how to install this patch for nobara 42, before I used pop os with a 6.12 kernel and I followed the steps left by the author and they worked for me, but I don't know what to do here haha
@ItzDarkGod See https://github.com/joanbm/nvidia-470xx-linux-mainline, to install it should be enough to download the repository and run the ./install
script.
@joanbm
Hey ... you has seen it ? https://github.com/X11Libre/xserver/wiki/Graphics-devices-&-drivers
Have information about being compatible with driver 470, but if using patch.
Perhaps is an good solution, but perhaps not has support for old video cards for example nvidia before 600 series and AMD Radeon before of RX models.
Sorry, I'm not interested in XLibre.
Hello, I've just switched from Windows to Linux Mint 22.2.
It's not clear for me how to install this patch. Do you have more guided steps? Should I Use this link? https://github.com/joanbm/nvidia-470xx-linux-mainline
Thanks a lot!
Hello, I'm trying to make it work under Linux Mint 22.2 too (kernel 6.14.0-33-generic).
I've used the ./install
script from https://github.com/joanbm/nvidia-470xx-linux-mainline
Looks like it mostly worked: there are no issues with browsing / video; I can even run some games fine, even ones without native Linux support (via Steam)
Although, there is one (The Entropy Centre) that gives me the following error on startup:
A D3D11-compatible GPU (Feature Level 11.0, Shader Model 5.0) is required to run the engine.
I know the game can run on that PC: it did under Win10.
I could have suggested that it's just some Proton issue, but I also had a warning during install and also Steam Overlay performance monitor always displays GPU load as 0%.
I could have gone to Linux Mint forums, Reddit, etc., but with Win 10 EOL just around the corner, I guess many people are going to come across your patches and it would be really nice to find some info on how to solve issues with these patches just here, where the patches themselves are.
The warning during installation was:
Unable to determine the path to install the liblgvnd EGL vendor library config files. Check that you have pkg-config and the libglvnd development libraries installed, or specify a path with --glvnd-egl-config-path.
apt list --installed | grep "pkg-config"
gives me the following line:
pkg-config/noble,now 1.8.1-2build1 amd64 [installed]
I have no idea how to check whether I have "libglvnd development libraries installed
"
Here is most of sudo inxi -Fxxxmprz
output (I don't think the list of active apt repos is of any use here):
System:
Kernel: 6.14.0-33-generic arch: x86_64 bits: 64 compiler: gcc v: 13.3.0
clocksource: tsc
Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.41 wm: xfwm4 v: 4.18.0
with: xfce4-panel tools: light-locker dm: LightDM v: 1.30.0
Distro: Linux Mint 22.2 Zara base: Ubuntu 24.04 noble
Machine:
Type: Desktop Mobo: BIOSTAR model: G41D3 v: 6.0 serial: N/A
uuid: 00020003-0004-0005-0006-000700080009 BIOS: American Megatrends
v: 080015 date: 12/28/2010
Memory:
System RAM: total: 8 GiB available: 7.76 GiB used: 2.11 GiB (27.2%)
Array-1: capacity: 16 GiB note: est. slots: 4 modules: 2 EC: 64-bit ECC
max-module-size: 4 GiB
Device-1: DIMM0 info: double-bank type: SDRAM detail: synchronous
size: 4 GiB speed: N/A volts: N/A width (bits): data: 64 total: 64
manufacturer: N/A part-no: N/A serial: N/A
Device-2: DIMM1 type: no module installed
Device-3: DIMM2 info: double-bank type: SDRAM detail: synchronous
size: 4 GiB speed: N/A volts: N/A width (bits): data: 64 total: 64
manufacturer: N/A part-no: N/A serial: N/A
Device-4: DIMM3 type: no module installed
CPU:
Info: quad core model: Intel Core2 Quad Q8400 bits: 64 type: MCP
smt: <unsupported> arch: Penryn rev: A cache: L1: 256 KiB L2: 4 MiB
Speed (MHz): avg: 2169 high: 2670 min/max: 2003/2670 volts: 1.3 V
ext-clock: 333 MHz cores: 1: 2003 2: 2670 3: 2003 4: 2003 bogomips: 21354
Flags: ht lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx
Graphics:
Device-1: NVIDIA GK208B [GeForce GT 730] vendor: Gigabyte driver: nvidia
v: 470.256.02 arch: Kepler pcie: speed: 2.5 GT/s lanes: 8 ports:
active: none off: VGA-1 empty: DVI-D-1,HDMI-A-1 bus-ID: 01:00.0
chip-ID: 10de:1287 class-ID: 0300
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6
compositor: xfwm4 v: 4.18.0 driver: X: loaded: nvidia
gpu: nvidia,nvidia-nvswitch display-ID: :0.0 screens: 1
Screen-1: 0 s-res: 1280x1024 s-dpi: 85 s-size: 382x302mm (15.04x11.89")
s-diag: 487mm (19.17")
Monitor-1: VGA-0 res: 1280x1024 hz: 60 dpi: 86
size: 376x301mm (14.8x11.85") diag: 482mm (18.96") modes: N/A
API: EGL v: 1.5 hw: drv: nvidia nouveau drv: nvidia platforms: device: 0
drv: nvidia device: 1 drv: nouveau device: 2 drv: swrast gbm:
drv: kms_swrast surfaceless: drv: nouveau x11: drv: nvidia
inactive: wayland
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 470.256.02
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GT 730/PCIe/SSE2
Audio:
Device-1: Intel NM10/ICH7 Family High Definition Audio vendor: Biostar
Microtech Intl Corp driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
chip-ID: 8086:27d8 class-ID: 0403
Device-2: NVIDIA GK208 HDMI/DP Audio vendor: Gigabyte
driver: snd_hda_intel v: kernel pcie: speed: 2.5 GT/s lanes: 8
bus-ID: 01:00.1 chip-ID: 10de:0e0f class-ID: 0403
API: ALSA v: k6.14.0-33-generic status: kernel-api
Server-1: PipeWire v: 1.0.5 status: n/a (root, process) with:
1: pipewire-pulse status: active 2: wireplumber status: active
3: pipewire-alsa type: plugin
Network:
Device-1: Realtek RTL810xE PCI Express Fast Ethernet vendor: Biostar
Microtech Intl Corp driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1
port: e800 bus-ID: 03:00.0 chip-ID: 10ec:8136 class-ID: 0200
IF: enp3s0 state: up speed: 100 Mbps duplex: full mac: <filter>
Drives:
Local Storage: total: 1.39 TiB used: 57.85 GiB (4.1%)
ID-1: /dev/sda vendor: Seagate model: ST3500418AS size: 465.76 GiB
speed: <unknown> tech: HDD rpm: 7200 serial: <filter> fw-rev: CC38
scheme: MBR
ID-2: /dev/sdb vendor: Apacer model: AS350 1TB size: 953.87 GiB
speed: <unknown> tech: SSD serial: <filter> fw-rev: 0PS0 scheme: MBR
Partition:
ID-1: / size: 56.02 GiB used: 10.86 GiB (19.4%) fs: ext4 dev: /dev/sdb6
ID-2: /home size: 869.35 GiB used: 46.99 GiB (5.4%) fs: ext4
dev: /dev/sdb7
Swap:
ID-1: swap-1 type: partition size: 11.39 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/sdb5
Sensors:
System Temperatures: cpu: 41.0 C mobo: N/A gpu: nvidia temp: 38 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 41%
Repos:
Packages: pm: dpkg pkgs: 2155
Info:
Processes: 233 Power: uptime: 1h 1m states: freeze,mem,disk suspend: deep
wakeups: 0 hibernate: platform Init: systemd v: 255 target: graphical (5)
default: graphical
Compilers: gcc: 13.3.0 Shell: Sudo (sudo) v: 1.9.15p5 default: Bash
v: 5.2.21 running-in: xfce4-terminal inxi: 3.3.34
And here is nvidia-installer.log
:
nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Sat Oct 4 16:14:25 2025
installer version: 470.256.02
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
nvidia-installer command line:
./nvidia-installer
Using: nvidia-installer ncurses v6 user interface
-> Detected 4 CPUs online; setting concurrency level to 4.
-> Installing NVIDIA driver version 470.256.02.
-> An alternate method of installing the NVIDIA driver was detected. (This is usually a package provided by your distributor.) A driver installed via that method may integrate better with your system than a driver installed by nvidia-installer.
Please review the message provided by the maintainer of this alternate installation method and decide how to proceed:
The NVIDIA driver provided by Ubuntu can be installed by launching the "Software & Updates" application, and by selecting the NVIDIA driver from the "Additional Drivers" tab.
(Answer: Continue installation)
-> Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later. (Answer: Yes)
-> Install NVIDIA's 32-bit compatibility libraries? (Answer: Yes)
Looking for install checker script at ./libglvnd_install_checker/check-libglvnd-install.sh
executing: '/bin/sh ./libglvnd_install_checker/check-libglvnd-install.sh'...
Found libglvnd libraries: libGLESv2.so.2 libOpenGL.so.0 libEGL.so.1 libGLX.so.0 libGL.so.1
Found non-libglvnd libraries:
Missing libraries: libGLESv1_CM.so.1
libglvnd appears to be installed.
Will not install libglvnd libraries.
-> Skipping GLVND file: "libOpenGL.so.0"
-> Skipping GLVND file: "libOpenGL.so"
-> Skipping GLVND file: "libGLESv1_CM.so.1.2.0"
-> Skipping GLVND file: "libGLESv1_CM.so.1"
-> Skipping GLVND file: "libGLESv1_CM.so"
-> Skipping GLVND file: "libGLESv2.so.2.1.0"
-> Skipping GLVND file: "libGLESv2.so.2"
-> Skipping GLVND file: "libGLESv2.so"
-> Skipping GLVND file: "libGLdispatch.so.0"
-> Skipping GLVND file: "libGLX.so.0"
-> Skipping GLVND file: "libGLX.so"
-> Skipping GLVND file: "libGL.so.1.7.0"
-> Skipping GLVND file: "libGL.so.1"
-> Skipping GLVND file: "libGL.so"
-> Skipping GLVND file: "libEGL.so.1.1.0"
-> Skipping GLVND file: "libEGL.so.1"
-> Skipping GLVND file: "libEGL.so"
-> Skipping GLVND file: "./32/libOpenGL.so.0"
-> Skipping GLVND file: "libOpenGL.so"
-> Skipping GLVND file: "./32/libGLdispatch.so.0"
-> Skipping GLVND file: "./32/libGLESv2.so.2.1.0"
-> Skipping GLVND file: "libGLESv2.so.2"
-> Skipping GLVND file: "libGLESv2.so"
-> Skipping GLVND file: "./32/libGLESv1_CM.so.1.2.0"
-> Skipping GLVND file: "libGLESv1_CM.so.1"
-> Skipping GLVND file: "libGLESv1_CM.so"
-> Skipping GLVND file: "./32/libGL.so.1.7.0"
-> Skipping GLVND file: "libGL.so.1"
-> Skipping GLVND file: "libGL.so"
-> Skipping GLVND file: "./32/libGLX.so.0"
-> Skipping GLVND file: "libGLX.so"
-> Skipping GLVND file: "./32/libEGL.so.1.1.0"
-> Skipping GLVND file: "libEGL.so.1"
-> Skipping GLVND file: "libEGL.so"
WARNING: Unable to determine the path to install the libglvnd EGL vendor library config files. Check that you have pkg-config and the libglvnd development libraries installed, or specify a path with --glvnd-egl-config-path.
Will install libEGL vendor library config file to /usr/share/glvnd/egl_vendor.d
-> Searching for conflicting files:
-> done.
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (470.256.02):
executing: '/usr/sbin/ldconfig'...
executing: '/usr/bin/systemctl daemon-reload'...
-> done.
-> Driver file installation is complete.
-> Installing DKMS kernel module:
-> done.
-> Running post-install sanity check:
-> done.
-> Post-install sanity check passed.
-> Running runtime sanity check:
-> done.
-> Runtime sanity check passed.
-> Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X? Any pre-existing X configuration file will be backed up. (Answer: Yes)
-> Your X configuration file has been successfully updated. Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 470.256.02) is now complete.
When I just launched the ./install
script, it gave me an error about my XServer session running. I then proceeded with the following:
- Created a file
/etc/modprobe.d/disable_nouveau.conf
with following contents:
blacklist nouveau
options nouveau modeset=0
and run sudo update-initramfs -u
2. Set non-graphic run level: sudo systemctl set-default multi-user.target
3. Rebooted and run ./install
script from https://github.com/joanbm/nvidia-470xx-linux-mainline again.
4. Set graphic level back: sudo systemctl set-default graphical.target
. Rebooted, tried running games, experienced aforementioned issue.
5. As suggested in patch's readme
, created a file /etc/modprobe.d/disable_nouveau.conf
with following contents:
blacklist nouveau
blacklist nova_core
blacklist nova_drm
Then run sudo update-initramfs -u
and reboot.
So, could i have issues because of that libglvnd warning? If so, how do I fix that?
Thanks so much for this!
I used this process (and your patches) to get the Nvidia 470.256.02 driver working on my MacBookPro11,3 with kernel
6.14.0-rc4
:https://gist.github.com/satmandu/4e17a3e8a67f04275049679671a32b9d