Description
Pop!_OS 24.04 automatically installed nvidia-driver-580-open on a system with an NVIDIA GeForce GTX 950M (Maxwell architecture), which is not supported by the open-source kernel module. This results in repeated driver probe failures at boot and no GPU acceleration.
Hardware information
- Laptop Model: HP Pavilion Gaming.
- GPU: NVIDIA GeForce GTX 950M (GM107M, Maxwell architecture).
- PCI ID:
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev a2).
System information
- Pop!_OS version: 24.04.
- Kernel version: 6.16.3-76061603-generic.
- Problematic driver: nvidia-driver-580-open (version 580.82.09).
Expected behavior
The system should:
- Detect that the GPU is Maxwell architecture.
- Install the compatible proprietary driver (nvidia-driver-580, nvidia-driver-550, or nvidia-driver-470).
- Boot without errors and provide GPU acceleration.
Actual behavior
- System installs
nvidia-driver-580-open by default.
- Driver fails to load with repeated probe errors at boot:
NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 18de:139a)
NVRM: installed in this system is not supported by open
NVRM: nvidia.ko because it does not include the required GPU
NVRM: System Processor (GSP).
- No GPU acceleration available.
lsmod | grep nvidia shows errors:
libkmod: ERROR ../libkmod/libkmod-module.c:2039 kmod_module_get_holders:
could not open '/sys/module/nvidia/holders': No such file or directory
nvidia-smi command fails because driver isn't loaded.
Steps to reproduce
- Install Pop!_OS 24.04 on a system with Maxwell-era NVIDIA GPU (GTX 9xx series).
- Allow system to install default NVIDIA drivers (or run
sudo apt install system76-driver-nvidia).
- Reboot and observe boot errors.
- Run
nvidia-smi - command fails because driver isn't loaded.
Resolution
After removing nvidia-driver-580-open and explicitly installing nvidia-driver-550, the system correctly upgraded to nvidia-driver-580 (proprietary version), which works perfectly with the GTX 950M.
Confirmed working configuration
- Driver:
nvidia-driver-580 (proprietary, NOT -open).
- DKMS:
nvidia-dkms-580 (proprietary, NOT -open).
- GPU status: Fully functional with no boot errors.
- nvidia-smi: Working correctly.
Working driver installation steps
# Remove the incompatible open driver
sudo apt remove --purge nvidia-driver-580-open nvidia-dkms-580-open nvidia-driver-570-open
# Install proprietary driver (550 or 535 work well)
sudo apt install nvidia-driver-550
# Install System76 metapackage (optional, for automatic updates)
sudo apt install system76-driver-nvidia
# Update initramfs and reboot
sudo update-initramfs -u
sudo reboot
Root cause
The system76-driver-nvidia metapackage has dependencies listed in this order:
nvidia-driver-580-open | nvidia-driver-580 | nvidia-driver-570-open |
nvidia-driver-570 | nvidia-driver-550 | nvidia-driver-470
APT installs the first available option from this list. Since nvidia-driver-580-open appears first, it gets selected by default on fresh installations, even though it does not support Maxwell or Pascal GPUs.
Key finding: The proprietary nvidia-driver-580 works perfectly with Maxwell GPUs - only the -open variant is incompatible.
Impact
This affects all users with Maxwell (GTX 9xx) and potentially Pascal (GTX 10xx) GPUs who:
- Perform fresh Pop!_OS 24.04 installations.
- Run
sudo apt install system76-driver-nvidia on existing systems.
- Accept automatic driver updates.
These GPU generations are still very common in laptops and budget gaming systems.
Suggested fix
The system76-driver-nvidia metapackage should be improved to:
- Reorder dependencies - Prioritize proprietary drivers before open drivers:
nvidia-driver-580 | nvidia-driver-580-open | nvidia-driver-570 |
nvidia-driver-570-open | nvidia-driver-550 | nvidia-driver-470
-
Hardware detection - Check GPU architecture before selecting driver variant (open vs proprietary).
-
Graceful fallback - If open driver fails to load during boot, automatically offer to install proprietary driver.
-
User notification - Display clear message during installation about driver compatibility with different GPU generations.
-
Update documentation - Clarify in Pop!_OS documentation that:
- Open drivers only support Turing+ architectures (RTX 20 series and newer).
- Maxwell/Pascal GPUs require proprietary drivers.
- How to manually select the appropriate driver.
Additional context
The NVIDIA open kernel modules only support Turing architecture (RTX 20 series) and newer GPUs. Maxwell and Pascal GPUs require the proprietary driver. This breaking change wasn't clearly communicated to users installing or upgrading to Pop!_OS 24.04.
NVIDIA GPU architecture support:
- ❌ Maxwell (GTX 9xx series) - Open driver NOT supported.
- ❌ Pascal (GTX 10xx series) - Open driver NOT supported .
- ✅ Turing (RTX 20xx series) - Open driver supported.
- ✅ Ampere (RTX 30xx series) - Open driver supported.
- ✅ Ada Lovelace (RTX 40xx series) - Open driver supported.
References
Logs
Attached are the system logs from when the issue was occurring (before the fix was applied):
dkms-status.log.
gpu-info.log.
nvidia-errors-boot.log.
nvidia-journal.log.
nvidia-packages.log.
system-info.log.
Description
Pop!_OS 24.04 automatically installed
nvidia-driver-580-openon a system with an NVIDIA GeForce GTX 950M (Maxwell architecture), which is not supported by the open-source kernel module. This results in repeated driver probe failures at boot and no GPU acceleration.Hardware information
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev a2).System information
Expected behavior
The system should:
Actual behavior
nvidia-driver-580-openby default.lsmod | grep nvidiashows errors:nvidia-smicommand fails because driver isn't loaded.Steps to reproduce
sudo apt install system76-driver-nvidia).nvidia-smi- command fails because driver isn't loaded.Resolution
After removing
nvidia-driver-580-openand explicitly installingnvidia-driver-550, the system correctly upgraded tonvidia-driver-580(proprietary version), which works perfectly with the GTX 950M.Confirmed working configuration
nvidia-driver-580(proprietary, NOT-open).nvidia-dkms-580(proprietary, NOT-open).Working driver installation steps
Root cause
The
system76-driver-nvidiametapackage has dependencies listed in this order:APT installs the first available option from this list. Since
nvidia-driver-580-openappears first, it gets selected by default on fresh installations, even though it does not support Maxwell or Pascal GPUs.Key finding: The proprietary
nvidia-driver-580works perfectly with Maxwell GPUs - only the-openvariant is incompatible.Impact
This affects all users with Maxwell (GTX 9xx) and potentially Pascal (GTX 10xx) GPUs who:
sudo apt install system76-driver-nvidiaon existing systems.These GPU generations are still very common in laptops and budget gaming systems.
Suggested fix
The
system76-driver-nvidiametapackage should be improved to:Hardware detection - Check GPU architecture before selecting driver variant (open vs proprietary).
Graceful fallback - If open driver fails to load during boot, automatically offer to install proprietary driver.
User notification - Display clear message during installation about driver compatibility with different GPU generations.
Update documentation - Clarify in Pop!_OS documentation that:
Additional context
The NVIDIA open kernel modules only support Turing architecture (RTX 20 series) and newer GPUs. Maxwell and Pascal GPUs require the proprietary driver. This breaking change wasn't clearly communicated to users installing or upgrading to Pop!_OS 24.04.
NVIDIA GPU architecture support:
References
Logs
Attached are the system logs from when the issue was occurring (before the fix was applied):
dkms-status.log.
gpu-info.log.
nvidia-errors-boot.log.
nvidia-journal.log.
nvidia-packages.log.
system-info.log.