DEV Community

Cover image for NVIDIA Drops GTX 900/1000 Support in 590 Driver - How to Fix on Arch Linux?
hopsayer
hopsayer

Posted on

NVIDIA Drops GTX 900/1000 Support in 590 Driver - How to Fix on Arch Linux?

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]
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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:

  1. Before: Arch provided nvidia-dkms and nvidia-utils in official repositories that supported most GPUs
  2. Transition period: Arch began moving to nvidia-open-dkms (open-source kernel modules) for newer GPUs (Turing/Ampere and later)
  3. December 2025: NVIDIA 590 dropped support for Maxwell/Pascal architectures
  4. 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
Enter fullscreen mode Exit fullscreen mode

For example:

01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M]
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

If you're using paru:

paru -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
Enter fullscreen mode Exit fullscreen mode

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:

  1. Download of NVIDIA driver archive (~380 MB)
  2. Package compilation (1-3 minutes)
  3. DKMS module compilation (~30-120 seconds)
  4. 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
Enter fullscreen mode Exit fullscreen mode

Step 6: Reboot and Verify

sudo reboot
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Issue: "module not found" errors persist

Rebuild initramfs manually:

sudo mkinitcpio -P
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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:

  1. Remove old official packages: sudo pacman -Rdd nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils
  2. Install AUR packages: yay -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils
  3. 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:

This guide was created based on real successful migration experience with a GTX 950M on Arch Linux (December 2025).

Top comments (0)