Skip to content

fix(cli): blacklist the in-tree nova driver so the NVIDIA driver can bind - #3963

Merged
eball merged 1 commit into
mainfrom
cli/fix/nova_conflict
Aug 17, 2026
Merged

fix(cli): blacklist the in-tree nova driver so the NVIDIA driver can bind#3963
eball merged 1 commit into
mainfrom
cli/fix/nova_conflict

Conversation

@dkeven

@dkeven dkeven commented Aug 17, 2026

Copy link
Copy Markdown
Member

Problem

Installing the NVIDIA driver fails on Ubuntu 26.04. The runfile builds every module successfully and then dies at load time:

ERROR: Unable to load the kernel module 'nvidia.ko'.
-> Kernel module load error: No such device
[  201.910514] NVRM: GPU 0000:01:00.0 is already bound to NovaCore.
[  201.913648] NVRM: No NVIDIA devices probed.

nova is the Rust successor to nouveau. Ubuntu 26.04's 7.0 kernel shipped with CONFIG_NOVA_CORE=m (LP #2150845), and nova_core registers a PCI driver whose alias matches every NVIDIA display device, so it claims the GPU during boot and never lets it go. The driver is still non-functional, so the card is simply held hostage.

Our blacklist only covered nouveau, which does nothing to stop nova. Canonical patched this in the nvidia-graphics-drivers packaging, but we install from the runfile, so nothing shields us.

It takes two conditions to hit, which is why identical-looking machines behave differently: a kernel that still enables CONFIG_NOVA_CORE (fixed in later 26.04 ABIs), and a GPU that nova_core supports — Turing, Ampere or Ada. Newer chips are rejected at probe time with Unsupported chipset.

Changes

  • gpu disable-conflicts (renamed from disable-nouveau, old name kept as an alias) now blacklists nova, nova_core and nova_drm alongside nouveau, in a single drop-in at /usr/lib/modprobe.d/olares-disable-conflicting-gpu-drivers.conf. The old nouveau-only file is removed.
  • update-initramfs -uupdate-initramfs -u -k all. The old call only rebuilt the running kernel's initramfs, so booting any other installed kernel silently lost the blacklist.
  • Precheck grew a nova check next to the existing nouveau one. A loaded nova fails outright — unlike nouveau it has no modeset=0 equivalent that keeps it off the card, so "loaded but idle" is one reboot away from "holding the GPU".
  • gpu install refuses to start when nova holds the card, instead of spending minutes on a DKMS build that cannot possibly load.

Made with Cursor

…bind

nova is the Rust successor to nouveau. Ubuntu 26.04's 7.0 kernel shipped
with CONFIG_NOVA_CORE=m, and nova_core registers a PCI driver whose alias
matches every NVIDIA display device, so it claims the GPU during boot and
never lets it go. The NVIDIA runfile then builds every module fine and
dies at load time with "GPU is already bound to NovaCore".

Our blacklist only covered nouveau, which does nothing to stop nova, and
update-initramfs -u only rebuilt the running kernel's initramfs, so any
other installed kernel silently lost the blacklist anyway.

Blacklist nova / nova_core / nova_drm next to nouveau in a single drop-in,
rebuild the initramfs for all kernels, and detect a loaded nova both in
precheck and before the driver install so it fails immediately instead of
after a pointless DKMS build.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
olares Ready Ready Preview Aug 17, 2026 11:21am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
olares-docs Ignored Ignored Preview Aug 17, 2026 11:21am

@eball
eball merged commit db21583 into main Aug 17, 2026
30 of 31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants