Fixing NVIDIA Driver Issues on Arch Linux After the 590 Update
The Problem: How You'll Know Something's Wrong
If you're running Arch Linux with an NVIDIA GTX 900 or 1000 series GPU (Maxwell/Pascal architecture), you might suddenly encounter this prompt when trying to update your system:
$ sudo pacman -Syu
resolving dependencies...
:: Replace nvidia-dkms with extra/nvidia-open-dkms? [Y/n]
Or when trying to install the nvidia driver:
$ sudo pacman -S nvidia-dkms
resolving dependencies...
warning: cannot resolve "nvidia-utils=590.48.01", a dependency of "nvidia-open-dkms"
:: The following package cannot be upgraded due to unresolvable dependencies:
nvidia-open-dkms
You might have temporarily worked around this by ignoring NVIDIA packages in /etc/pacman.conf, but this isn't a sustainable solution. Your system updates are now incomplete, and you're missing important driver updates.
What Happened: The Context
On December 20, 2025, Arch Linux officially announced that NVIDIA driver version 590 no longer supports Maxwell (GTX 900 series) and Pascal (GTX 1000 series) GPUs.
Here's the timeline of changes:
-
Before: Arch provided
nvidia-dkmsandnvidia-utilsin official repositories that supported most GPUs -
Transition period: Arch began moving to
nvidia-open-dkms(open-source kernel modules) for newer GPUs (Turing/Ampere and later) - December 2025: NVIDIA 590 dropped support for Maxwell/Pascal architectures
- Current state: Official repos only support newer GPUs; older cards must use legacy drivers from AUR
Who Is Affected?
This affects users with:
- GTX 900 series: GTX 950M, 960, 970, 980, 980 Ti, Titan X (Maxwell), GTX 750, 750 Ti, 745, GT 945a
- GTX 1000 series: GTX 1050, 1060, 1070, 1080, 1080 Ti, Titan X (Pascal)
- Quadro M-series and other Maxwell/Pascal professional cards
- Mobile Maxwell GPUs: GTX 980M, 970M, 965M, 960M, 950M, Geforce 945M, 940MX, 940M, 930MX, 930M, 920MX, 920M, 910M, GTX 860M, 850M, 845M
Why Did This Happen?
NVIDIA's proprietary driver development follows this pattern:
- Production branch (currently 590+): Supports only recent architectures (Turing and newer)
- Legacy branches: Frozen versions for older architectures (580.xx for Maxwell/Pascal, 470.xx for Kepler, etc.)
Arch's decision to remove Maxwell/Pascal from official repos aligns with NVIDIA's EOL (End of Life) for these architectures in the production branch.
The Solution: Migrate to nvidia-580xx from AUR
The 580.xx driver series is the last version that officially supports Maxwell and Pascal GPUs. While it's no longer in Arch's official repositories, it's maintained in the AUR (Arch User Repository).
Step 1: Verify Your GPU Architecture
First, confirm your GPU model:
lspci | grep -i nvidia
For example:
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M]
Check if your card is Maxwell or Pascal:
- Maxwell: GTX 900 series, GTX 700 series (some), Quadro M-series
- Pascal: GTX 1000 series, Quadro P-series
Step 2: Back Up Your Settings (Optional but Recommended)
# Back up your NVIDIA settings
cp ~/.nvidia-settings-rc ~/.nvidia-settings-rc.backup
# Back up xorg.conf if it exists
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup 2>/dev/null || echo "No xorg.conf found"
Your user settings in ~/.nvidia-settings-rc won't be deleted during the process, but it's good practice to have a backup.
Step 3: Remove Conflicting Official Packages
The old packages conflict with the AUR versions we'll install. We need to remove them, including Steam if it's creating dependency issues:
# Force removal (ignore dependency warnings)
sudo pacman -Rdd nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils
Note: Using -Rdd (remove with dependency override) is necessary here because Steam and other packages depend on these. We'll restore everything immediately after.
You'll see errors about missing NVIDIA modules during initramfs rebuild—this is expected since we just removed the driver.
Step 4: Install nvidia-580xx from AUR
Now install the correct driver packages from AUR. If you're using yay:
yay -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
If you're using paru:
paru -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
What each package does:
-
nvidia-580xx-dkms: Kernel module sources (compiles driver for your kernel) -
nvidia-580xx-utils: OpenGL, Vulkan, CUDA libraries and utilities -
nvidia-580xx-settings: nvidia-settings GUI configuration tool -
lib32-nvidia-580xx-utils: 32-bit support (required for Steam and many games)
During installation, you'll see:
- Download of NVIDIA driver archive (~380 MB)
- Package compilation (1-3 minutes)
- DKMS module compilation (~30-120 seconds)
- Successful initramfs generation (no more "module not found" errors!)
Step 5: Reinstall Steam (if needed)
If you had to remove Steam during the process:
sudo pacman -S steam
Step 6: Reboot and Verify
sudo reboot
After reboot, verify everything works:
# Check driver version
nvidia-smi
# Should show something like:
# +-----------------------------------------------------------------------------------------+
# | NVIDIA-SMI 580.119.02 Driver Version: 580.119.02 CUDA Version: 12.4 |
# +-----------------------------------------------------------------------------------------+
# Verify OpenGL
glxinfo | grep "OpenGL renderer"
# Should show your GPU name
What About Future Updates?
Good news: AUR packages update just like official packages!
# Regular system updates will include nvidia-580xx
yay -Syu
# or
paru -Syu
The only difference from official packages:
- Initial install: Takes 1-3 minutes to build the package
- Updates: Take 1-3 minutes when NVIDIA releases new 580.xx versions (rare)
- Kernel updates: DKMS automatically recompiles the module (30-120 seconds, happens automatically)
Troubleshooting
Issue: "conflicting packages" during installation
If you see conflicts with libxnvctrl or similar packages:
# Remove the conflicting package when prompted
# yay will ask: "Remove libxnvctrl? [y/N]"
# Answer: y
Issue: Black screen after reboot
This usually means the module didn't load. Check:
# Check if module is loaded
lsmod | grep nvidia
# Check kernel messages
dmesg | grep -i nvidia
# Manually load module
sudo modprobe nvidia
Issue: "module not found" errors persist
Rebuild initramfs manually:
sudo mkinitcpio -P
Issue: Performance concerns
Q: Will downgrading from 590 to 580 hurt performance?
A: No. The 580.xx branch is the last version optimized for Maxwell/Pascal. Versions 590+ don't contain any optimizations for your GPU—they simply removed support for it. You might actually see better stability since 580.xx was specifically designed for your architecture.
Why Not Use nvidia-470xx Instead?
You might see some guides mentioning nvidia-470xx-dkms. Here's the difference:
- 470.xx: Legacy branch for Kepler architecture (GTX 600/700 series)
- 580.xx: Legacy branch for Maxwell/Pascal (GTX 900/1000 series)
If you have a GTX 950M or GTX 1060, you want 580.xx, not 470.xx. The 470.xx branch is for even older cards.
Alternative: Using nouveau (Open-Source Driver)
If you don't need CUDA or maximum 3D performance, consider the open-source nouveau driver:
# Remove NVIDIA proprietary driver
sudo pacman -Rdd nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
# Install nouveau (if not already installed)
sudo pacman -S xf86-video-nouveau
# Reboot
sudo reboot
Nouveau pros:
- Fully open-source
- In official repos (no AUR needed)
- Better Wayland support
- No driver compilation needed
Nouveau cons:
- Lower 3D performance (30-50% slower in games)
- No CUDA support
- Some power management issues on laptops
Summary
The migration to nvidia-580xx-dkms is straightforward:
- Remove old official packages:
sudo pacman -Rdd nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils - Install AUR packages:
yay -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils - Reboot and verify with
nvidia-smi
This gives you:
- Proper driver support for Maxwell/Pascal GPUs
- Automatic updates through pacman/yay
- DKMS handles kernel updates automatically
- Same performance as before
- No more dependency conflicts
The 580.xx branch will continue to work until NVIDIA releases a version that drops your architecture entirely—which likely won't happen for several more years. Community patches in AUR will keep it building on new kernels.
References:
- Arch Blog - NVIDIA Drops GTX 900/1000 Support in 590 Driver
- Arch Linux NVIDIA Wiki
- NVIDIA Unix Driver Archive
- nvidia-580xx-dkms AUR Package
This guide was created based on real successful migration experience with a GTX 950M on Arch Linux (December 2025).
Top comments (0)