Did you try booting the kernel with nvidia-drm.modeset=1 ?
Search Criteria
Package Details: nvidia-390xx-dkms 390.157-12
Package Actions
Git Clone URL: | https://aur.archlinux.org/nvidia-390xx-utils.git (read-only, click to copy) |
---|---|
Package Base: | nvidia-390xx-utils |
Description: | NVIDIA drivers - module sources |
Upstream URL: | https://www.nvidia.com/ |
Licenses: | custom |
Provides: | NVIDIA-MODULE |
Submitter: | svenstaro |
Maintainer: | jonathon (vnctdj) |
Last Packager: | vnctdj |
Votes: | 59 |
Popularity: | 1.69 |
First Submitted: | 2020-03-11 17:29 (UTC) |
Last Updated: | 2024-07-20 22:27 (UTC) |
Dependencies (3)
- dkms (dkms-gitAUR, dkms-fast-zstdAUR)
- libglvnd (libglvnd-gitAUR)
- nvidia-390xx-utilsAUR
Required by (10)
- conky-lua-nv (optional)
- mhwd-nvidia-390xx (make)
- nsight-graphics (requires NVIDIA-MODULE)
- nvidia-exec (requires NVIDIA-MODULE)
- nvidia-exec-git (requires NVIDIA-MODULE)
- nvidia-pacman-hook (requires NVIDIA-MODULE) (optional)
- nvidia-xrun-pm (requires NVIDIA-MODULE)
- nvidiactl-git (requires NVIDIA-MODULE)
- optimus-manager-git (requires NVIDIA-MODULE)
- xorgxrdp-nvidia (requires NVIDIA-MODULE)
Sources (15)
- gcc-14.patch
- https://us.download.nvidia.com/XFree86/Linux-x86_64/390.157/NVIDIA-Linux-x86_64-390.157.run
- kernel-4.16+-memory-encryption.patch
- kernel-6.10.patch
- kernel-6.2.patch
- kernel-6.3.patch
- kernel-6.4.patch
- kernel-6.5.patch
- kernel-6.6.patch
- kernel-6.8.patch
- nvidia-390xx-utils.sysusers
- nvidia-390xx.rules
- nvidia-drm-outputclass.conf
- systemd-homed-override.conf
- systemd-suspend-override.conf
canolucas commented on 2024-11-25 22:37 (UTC)
JuliusTZM commented on 2024-11-25 18:35 (UTC)
@drankinatty: the patch doesn't fully working in my case. Only 800x600 is working over HDMI to SmartTV.
canolucas commented on 2024-11-25 17:07 (UTC)
just tested the patch by @drankinatty, it is working fine here as well ! @vnctdj as package mantainer, are you able to add the patch to the pkgbuild please ?
drankinatty commented on 2024-11-24 01:39 (UTC) (edited on 2024-11-24 20:41 (UTC) by drankinatty)
Well, crap, 6.12 is here and I'm about to roll the dice. We will see if a patch is needed.
Uugh -- driver broke, it will need a patch. We will consult /var/lib/dkms/nvidia/390.157/build/make.log
and go from there....
Success -- Patch 2 based on 470 driver
390xx driver patch needed a bit more than first attempt:
diff -ruNb a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c
--- a/kernel/nvidia-drm/nvidia-drm-drv.c 2024-07-19 05:21:27.848184261 -0500
+++ b/kernel/nvidia-drm/nvidia-drm-drv.c 2024-11-24 03:10:09.342147481 -0600
@@ -84,6 +84,11 @@
#include <drm/drm_atomic_helper.h>
#endif
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+#include <drm/drm_client.h>
+#endif
+
static struct nv_drm_device *dev_list = NULL;
#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
@@ -168,7 +173,12 @@
.atomic_check = nv_drm_atomic_check,
.atomic_commit = nv_drm_atomic_commit,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ // Rel. commit. "drm: Remove struct drm_mode_config_funcs.output_poll_changed" (Thomas Zimmermann, 12 Aug 2024)
+ // Replace this callback with a DRM client's hotplug callback.
+ // This is required for e.g. /sys/class/drm/card*/modes to work.
.output_poll_changed = nv_drm_output_poll_changed,
+#endif
};
static void nv_drm_event_callback(const struct NvKmsKapiEvent *event)
@@ -652,6 +662,10 @@
.read = drm_read,
.llseek = noop_llseek,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+ // Rel. commit. "fs: move FMODE_UNSIGNED_OFFSET to fop_flags" (Christian Brauner, 9 Aug 2024)
+ .fop_flags = FOP_UNSIGNED_OFFSET,
+#endif
};
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 8, 0)
@@ -790,7 +804,18 @@
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+static int hotplug_helper_client_hotplug(struct drm_client_dev *client)
+{
+ nv_drm_output_poll_changed(client->dev);
+ return 0;
+}
+static const struct drm_client_funcs nv_hotplug_helper_client_funcs = {
+ .owner = THIS_MODULE,
+ .hotplug = hotplug_helper_client_hotplug,
+};
+#endif
/*
* Helper function for allocate/register DRM device for given NVIDIA GPU ID.
@@ -844,6 +869,20 @@
goto failed_drm_register;
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+ /* Register a DRM client for receiving hotplug events */
+ struct drm_client_dev *client = kzalloc(sizeof(*client), GFP_KERNEL);
+ if (client == NULL || drm_client_init(dev, client,
+ "nv-hotplug-helper", &nv_hotplug_helper_client_funcs)) {
+ printk(KERN_WARNING "Failed to initialize the nv-hotplug-helper DRM client"
+ " (ensure DRM kernel mode setting is enabled via nvidia-drm.modeset=1).\n");
+ goto failed_drm_client_init;
+ }
+
+ drm_client_register(client);
+ pr_info("Registered the nv-hotplug-helper DRM client.\n");
+#endif
+
/* Add NVIDIA-DRM device into list */
nv_dev->next = dev_list;
@@ -851,6 +890,14 @@
return; /* Success */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+failed_drm_client_init:
+
+ kfree(client);
+ drm_dev_unregister(dev);
+
+#endif
+
failed_drm_register:
nv_drm_dev_free(dev);
Apply in PKGBUILD as:
# Adapted from https://gist.github.com/joanbm/a6d3f7f873a60dec0aa4a734c0f1d64e
printf "\n** kernel-6.12 patch**\n\n"
patch -Np1 -i ../kernel-6.12.patch
below the kernel-6.10.patch
block.
This patch is a rewrite based on Joan Bruguera's 470 Driver patch Tested and working fine.
Good until 6.13 :)
drankinatty commented on 2024-09-27 00:52 (UTC) (edited on 2024-10-01 23:57 (UTC) by drankinatty)
Thank goodness for small favors! I've been following the Arch 6.11 open-driver issues and was hoping that would not impact the closed source drivers as well. The only worrying part was the change to the fbdev header. But I look forward to the release and test -- and success :)
Update - openSUSE Tumbleweed just went to the 6.11 kernel and the 390xx driver built and functions without change from the 6.10 kernel. Thankfully!
Update 2 - Arch just released the 6.11 kernel, and the 390xx driver works fine without any patching needed. Next challenge will be the 6.12 kernel.
canolucas commented on 2024-09-21 01:03 (UTC) (edited on 2024-09-21 01:06 (UTC) by canolucas)
ok so it looks like linux 3.11 hit the testing repo.. i'll give it a try a.. hopefully everything works fine after reboot.. fingers crossed
UPDATE: everything worked fine, looks like linux 3.11 is compatible with the current version of this driver, so apparently no patching is needed this time..
drankinatty commented on 2024-09-16 18:09 (UTC) (edited on 2024-09-19 20:49 (UTC) by drankinatty)
6.11 kernel was released, time to start the patch scramble. I'll start looking, but if anybody has one already, please post a link here :) Nothing in the herecura repo yet. Indications are a patch will be needed Fedora Nvidia 470 driver issue with 6.11
Well after a few days of scouring for information, I'm cautiously optimistic that the driver may build without modification on the 6.11 kernel. The Fedora problem is a runtime problem, not a build issue, The AUR package for the 470xx driver is building on 6.11rc7 without changes. However it is impossible to draw a conclusion from the "absence of information" surrounding whether a patch is needed or not. At this point, I'll just have to wait for the 6.11 package to appear in the main repo to find out.
If anybody has different information, please post here -- loudly :)
ventureo commented on 2024-09-07 12:15 (UTC)
Hi. In CachyOS we have patches to fix the 390.xx driver module build for kernels built with Clang, and it would be nice if you could include them in the AUR package as well, as this may be relevant for other kernels too.
https://github.com/CachyOS/CachyOS-PKGBUILDS/blob/master/nvidia/nvidia-390xx-utils/clang.patch
duht commented on 2024-07-24 08:23 (UTC)
I can confirm: package works like a charm with 6.10-zen. Thanks drankinatty and vnctdj.
vnctdj commented on 2024-07-20 22:28 (UTC) (edited on 2024-07-20 22:28 (UTC) by vnctdj)
I've added kernel 6.10 patch given that canolucas confirmed it works, thanks drankinatty!
But please don't flag the package as out-of-date, it's useless since Nvidia stopped releasing new versions... And I'm subscribed to the mailing list, I always read all of your messages :)
Pinned Comments
jonathon commented on 2022-05-26 09:46 (UTC)
Please don't flag this package out-of-date unless a new version has been released by NVIDIA.
jonathon commented on 2021-12-26 22:44 (UTC) (edited on 2021-12-26 22:44 (UTC) by jonathon)
The DKMS package guidelines are explicit that
linux-headers
should not be a dependency of any DKMS package.As a concrete example of why including that as a hard dependency is a bad idea, what happens when
linux
is not an installed kernel?jonathon commented on 2020-10-19 12:41 (UTC) (edited on 2021-05-11 14:18 (UTC) by jonathon)
PACKAGE NEEDS LONG TERM MAINTAINER
I have adopted the 390xx packages to keep them secure. I do not run any 390xx hardware so will not notice any breakages and cannot test any changes.
Until such time as someone else steps up to maintain these packages - ideally someone who actually has 390xx hardware - I have to rely on you to tell me what changes are needed.
Don't expect a response if you post only "this doesn't work", and do not email me to complain about the package not working!
Use this forum thread for discussion: https://bbs.archlinux.org/viewtopic.php?pid=1946926
A binary package is also available in my kernel-lts unofficial user repository.