@duht I also use startx to launch Xorg and doesn't use any display manager as I use i3. I don't use Bumblebee or any similar tool. I simply followed https://wiki.archlinux.org/title/NVIDIA_Optimus#Use_NVIDIA_graphics_only and https://wiki.archlinux.org/title/Xinit . I hope it helps as that's what works on my laptop.
Search Criteria
Package Details: opencl-nvidia-390xx 390.157-18
Package Actions
| Git Clone URL: | https://aur.archlinux.org/nvidia-390xx-utils.git (read-only, click to copy) |
|---|---|
| Package Base: | nvidia-390xx-utils |
| Description: | OpenCL implemention for NVIDIA |
| Upstream URL: | https://www.nvidia.com/ |
| Licenses: | custom |
| Conflicts: | opencl-nvidia |
| Provides: | opencl-driver, opencl-nvidia |
| Submitter: | svenstaro |
| Maintainer: | jonathon (vnctdj) |
| Last Packager: | vnctdj |
| Votes: | 62 |
| Popularity: | 0.28 |
| First Submitted: | 2020-03-11 17:29 (UTC) |
| Last Updated: | 2025-10-11 08:48 (UTC) |
Dependencies (2)
- zlib (zlib-gitAUR, zlib-ng-compat-gitAUR, zlib-ng-compat)
- opencl-headers (opencl-headers-gitAUR, adaptivecpp-gitAUR, adaptivecppAUR) (optional) – headers necessary for OpenCL development
Required by (67)
- aftershotpro3 (requires opencl-nvidia) (optional)
- arrayfire (requires opencl-driver) (optional)
- arrayfire-git (requires opencl-driver) (optional)
- bfgminer-git (requires opencl-driver) (optional)
- computecpp (requires opencl-driver)
- cpu-x-git (requires opencl-driver) (optional)
- crark (requires opencl-driver) (optional)
- cuda-10.2 (requires opencl-nvidia)
- cuda-11.1 (requires opencl-nvidia)
- cuda-11.7 (requires opencl-nvidia)
- cuda-12.5 (requires opencl-nvidia)
- cuda-12.9 (requires opencl-nvidia)
- cuda-8.0 (requires opencl-nvidia)
- cuda-9.0 (requires opencl-nvidia)
- cuda11.1 (requires opencl-nvidia)
- cuda11.4 (requires opencl-nvidia)
- cuda11.4-versioned (requires opencl-nvidia)
- cuda12.0 (requires opencl-nvidia)
- cuda12.0-versioned (requires opencl-nvidia)
- cytoscape (requires opencl-driver) (optional)
- Show 47 more...
Sources (21)
- gcc-14.patch
- gcc-15.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.12.patch
- kernel-6.13.patch
- kernel-6.14.patch
- kernel-6.15.patch
- kernel-6.17.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
vnctdj commented on 2025-11-10 23:38 (UTC)
yars068 commented on 2025-11-06 23:08 (UTC) (edited on 2025-11-06 23:09 (UTC) by yars068)
I attach a debug messages from driver, maybe this will be helpful.
yars068 commented on 2025-11-06 19:06 (UTC)
@canolucas, how should I set up my machine, given that it's an Optimus laptop with a Fermi chip? Currently I still use Bumblebee. What packages I should have installed?
duht commented on 2025-10-19 20:08 (UTC)
Thank you @drankinatty for your help, but adding nosimplefb=1 to kernel command line doesn't change anything. I already had nvidia-drm.modeset=1 set- without it, the system wouldn't boot properly. If you have any other ideas, I'd be happy to test them.
drankinatty commented on 2025-10-18 23:31 (UTC)
@duht I have had the exact reports from openSUSE on startx no longer working:
I do get them to build since uninstalling kernel and all nvidia added packages, then reinstalling same. only startx now fail and not previously. and I use startx frequently to run additional graphical desktops.
I did not get specifics, but in follow-on there was reference to blacklisting fbdev and making sure wayland wasn't involved (you now get stray pieces of wayland installed as dependencies). I can't find that post at the moment to quote.
What are you using for a command-line to boot, e.g. what is shown by cat /proc/cmdline? I seem to recall nosimplefb=1 and nvidia-drm.modeset=1 being needed now. I have those on openSUSE (but haven't tried startx), on Arch I don't have either, but boot to graphical-target with lightdm. Worth seeing if they make any difference.
duht commented on 2025-10-18 09:45 (UTC) (edited on 2025-10-18 09:49 (UTC) by duht)
Does anyone else still use startx to launch Xorg? I'm using kernel 6.17 and I still get the same error that started with 6.16.1.
(EE) NVIDIA(GPU-0): Failed to acquire modesetting permission
(EE) NVIDIA(0): Failing initialization of X screen 0
(II) UnloadModule: "nvidia"
(II) UnloadSubModule: "wfb"
(EE) Screen(s) found, but none have a usable configuration
(EE)
Fatal server error:
(EE) no screens found
I've tried everything, various kernel parameters, deleted xorg.conf, and even installed a different desktop environment to see if it would start.
The only thing I can think of that explains why this problem occurs for me and not for most others is that I don't have any DM, I just run Xorg with startx.
canolucas commented on 2025-10-12 23:04 (UTC) (edited on 2025-10-12 23:11 (UTC) by canolucas)
I'm not sure there is a real performance benefit from having hybrid graphics enabled. I would disable bumblebee and try again, just to check if the problem is there. But if you insist in keeping it, maybe blacklisting nouveau explicitly can help avoid the error.
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
If you must use Bumblebee, try switching backend: Set Bridge=VirtualGL instead of primus in /etc/bumblebee/bumblebee.conf Some versions of primus trigger the exact segfault you saw.
yars068 commented on 2025-10-12 20:32 (UTC)
I tried to run glxspheres64 again, and see the kernel messages.
Hardware:
01:00.0 3D controller [0302]: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] [10de:1140] (rev a1)
Subsystem: Lenovo GeForce 710M [17aa:3902]
Kernel modules: nouveau, nvidia_drm, nvidia
yars068 commented on 2025-10-12 20:21 (UTC)
@canolucas, this is not a booting issue. I tried to launch glxspheres64 on nvidia card. I will try to enable modesetting on this card and add a given parameter to kernel command line. But not sure that I should disable bumblebee completely because nvidia 390.xx branch does not officially support for PRIME render offloading. This rrequires a driver at least of version 435.17 (and the card newer than Fermi).
canolucas commented on 2025-10-12 17:59 (UTC) (edited on 2025-10-12 22:57 (UTC) by canolucas)
@yars068 from what i can see in the crash logs, it looks like the crash occurs when Xorg closes the GPU device (nvidia_close), likely during unloading or shutdown of the GPU context. Your log line:
nvidia-modeset: Unloading
bbswitch: disabling discrete graphics
Means the crash happens as the NVIDIA driver unloads — when power management (bbswitch or Optimus) tries to disable the GPU.
A possible workaround would be to disable Optimus / bbswitch completely and try to run X on only one graphics card. I'd first try to run Xorg using nvidia only, since it usually gives better performance. If that doesn’t work, fall back to Intel-only mode.
To disable bbswitch:
sudo systemctl disable bbswitch.service
sudo modprobe -r bbswitch
And to prevent it from autoloading:
echo "blacklist bbswitch" | sudo tee /etc/modprobe.d/blacklist-bbswitch.conf
Here is an nvidia only /etc/X11/xorg.conf example: https://paste.opensuse.org/pastes/d98be2e7be5c
You can add these kernel parameters in /boot/grub/grub.cfg:
nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1
I hope this helps solve the issue — cheers!
Pinned Comments
vnctdj commented on 2025-01-24 07:37 (UTC)
Use this forum thread for discussion: https://bbs.archlinux.org/viewtopic.php?pid=1946926
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-headersshould 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
linuxis not an installed kernel?