Upgrading the GPU Driver from 580 to 590 on DGX Spark using CLI

The official update guide recommends using the DGX Dashboard for all system updates. This has never worked for me, maybe because we modified the Spark into a multi-user workstation. In any case, I needed a CLI approach to upgrade the driver. Information on how to do this is absent from the official documentation and standard NVIDIA driver-install procedures appear not appropriate for the Spark. The following solution cleanly upgrades all 580 driver packages to 590. The following is curated Claude output. I verified the upgrade worked as described below. (You can verify what apt will install and remove by adding --dry-run as an option.)


Documented CLI Method — and its limitation

The user guide’s documented manual CLI procedure is:

sudo apt update
sudo apt dist-upgrade
sudo fwupdmgr refresh
sudo fwupdmgr upgrade
sudo reboot

However, this does not upgrade the GPU driver. The dist-upgrade step will upgrade general system packages but will not transition from nvidia-driver-580-open to nvidia-driver-590-open.


Why standard NVIDIA driver upgrade methods don’t apply

NVIDIA’s driver installation guide and most forum advice assumes the driver comes from the NVIDIA CUDA repository. On the DGX Spark this is not the case.

The Spark uses a tightly coupled kernel+driver architecture where the GPU kernel modules are pre-built into Ubuntu’s linux-nvidia kernel flavour and delivered via noble-updates/restricted — not via DKMS or NVIDIA’s CUDA repo. In fact, the DGX factory configuration explicitly pins all driver packages from the CUDA repo to priority -1 (never install) via /etc/apt/preferences.d/cuda-compute-repo-lowpri*, precisely to prevent the CUDA repo driver from being installed.

This means:

  • sudo apt install nvidia-open pulls from the CUDA repo — wrong on DGX Spark
  • DKMS-based approaches don’t apply — kernel modules are pre-built

Correct CLI upgrade from 580 to 590
(Note: I have manually verified that this works as intended on an NVIDIA DGX Spark).

First run general system updates:

sudo apt full-upgrade
sudo reboot

Then upgrade the GPU driver:

sudo apt install \
  nvidia-driver-590-open \
  linux-modules-nvidia-590-open-nvidia-hwe-24.04 \
  nvidia-prime-
sudo apt autoremove
sudo reboot

The nvidia-prime- trailing minus excludes nvidia-prime, which is not required and not factory-installed either.

After reboot, verify with:

nvidia-smi  # should report 590.48.01

To revert to 580 if needed:
(Note: since the upgrade was successful for me, I have not manually verified that this fully reverts to the original state).

sudo apt install \
  nvidia-driver-580-open \
  linux-modules-nvidia-580-open-nvidia-hwe-24.04 \
  nvidia-prime-
sudo apt autoremove
sudo reboot

Hope this helps others needing to do a CLI driver update.

Just be aware that driver 590 and hwe kernels are not yet supported on the Spark

Hi @aniculescu ,
Thanks for your advice! I wonder, when (due date) can we or the DGX Spark will automatically be updated to the driver version >=595.45.04, because this driver is needed for CUDA version 13.2?

Many thanks!

Hi!

I made the mistake of updating the drivers to 590 and my spark is basically frozen from the moment I login. Is there any way of fixing this without a full system re-install?

Which package did you install? The meta-package nvidia-driver-590-open?

Then

apt purge nvidia-driver-590-open

apt install nvidia-driver-580-open

reboot

should do the job. Otherwise the name of the package you choose to install.

Try

dpkg -l|grep nvidia-driver

when in doubt.

EDIT: When you are unable to login via console, login via ssh.

Any showstoppers ?

I might be diving into upgrading for funsies, I just prepared a full backup so…why not?

I think CUDA13.2 works just fine with the 580 drivers. Not seen much about the 595 drivers outside of this thread, and I certainly haven’t seen any WOW posts about performance increases from people running 595 drivers. For that, I’m just going to stick with the stable branch for now :-)

Unfortunately, this upgrade process is now broken :-(

it appear it’s trying to installed some 610 packages.

this previously worked to install 595.

$ sudo apt install   linux-modules-nvidia-590-open-nvidia-hwe-24.04   nvidia-prime-
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package 'nvidia-prime' is not installed, so not removed
The following package was automatically installed and is no longer required:
  nvidia-firmware-580-580.159.03
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  libnvidia-cfg1 linux-modules-nvidia-595-open-6.17.0-1021-nvidia linux-modules-nvidia-595-open-nvidia-hwe-24.04 nvidia-firmware-595-595.71.05 nvidia-kernel-common-595 nvidia-xconfig
Recommended packages:
  libglx-nvidia0
The following packages will be REMOVED:
  libnvidia-compute-580 linux-modules-nvidia-580-open-6.17.0-1021-nvidia linux-modules-nvidia-580-open-nvidia-hwe-24.04 nvidia-kernel-common-580 nvidia-utils-580
The following NEW packages will be installed:
  libnvidia-cfg1 linux-modules-nvidia-590-open-nvidia-hwe-24.04 linux-modules-nvidia-595-open-6.17.0-1021-nvidia linux-modules-nvidia-595-open-nvidia-hwe-24.04 nvidia-firmware-595-595.71.05
  nvidia-kernel-common-595 nvidia-xconfig
0 upgraded, 7 newly installed, 5 to remove and 0 not upgraded.
Need to get 83.3 MB of archives.
After this operation, 233 MB disk space will be freed.
Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com/ubuntu-ports noble-updates/multiverse arm64 nvidia-firmware-595-595.71.05 arm64 595.71.05-0ubuntu0.24.04.1 [74.9 MB]
Get:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa  libnvidia-cfg1 610.43.02-1ubuntu1 [137 kB]
Get:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa  nvidia-xconfig 610.43.02-1ubuntu1 [80.3 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports noble-updates/multiverse arm64 nvidia-kernel-common-595 arm64 595.71.05-0ubuntu0.24.04.1 [35.6 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports noble-updates/restricted arm64 linux-modules-nvidia-595-open-6.17.0-1021-nvidia arm64 6.17.0-1021.21 [8,035 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports noble-updates/restricted arm64 linux-modules-nvidia-595-open-nvidia-hwe-24.04 arm64 6.17.0-1021.21 [15.5 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports noble-updates/restricted arm64 linux-modules-nvidia-590-open-nvidia-hwe-24.04 arm64 6.17.0-1021.21 [5,306 B]
Fetched 83.3 MB in 1s (92.9 MB/s)
Selecting previously unselected package libnvidia-cfg1:arm64.
(Reading database ... 310366 files and directories currently installed.)
Preparing to unpack .../libnvidia-cfg1_610.43.02-1ubuntu1_arm64.deb ...
Unpacking libnvidia-cfg1:arm64 (610.43.02-1ubuntu1) ...
Preparing to unpack .../nvidia-xconfig_610.43.02-1ubuntu1_arm64.deb ...
Unpacking nvidia-xconfig (610.43.02-1ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nvidia-xconfig_610.43.02-1ubuntu1_arm64.deb (--unpack):
 trying to overwrite '/usr/bin/nvidia-xconfig', which is also in package nvidia-utils-580 580.159.03-0ubuntu0.24.04.1
Errors were encountered while processing:
 /var/cache/apt/archives/nvidia-xconfig_610.43.02-1ubuntu1_arm64.deb
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)

I just upgraded one of my Gigabyte AI Atop Top. Nvidia is now 580.159.03 Cuda 13.0, the other one is 580.142 Cuda 13.0

Claimed 2GB back, now both 122G

the point here is to upgrade to 13.2 which apear to have significant performance boost on DGX spark.

Not saying I’m doing it right. but I’ve used apt-mark hold nvidia-firmware-595-595, and used the firmware picker in the UI to switch to 595-open… My Acer GB10’s are running, but I’m new enough to not know what errors to be looking for.

FWIW, I’m running nemotron-3-super-120b-a12b-nvfp4 with a local vllm-node container build to get 0.22.rc1 and the sparkrun project.