- Make sure headers / build deps are in place
On fnOS you already confirmed it’s Debian 12; now ensure the trim kernel headers exist so DKMS can build the 580 modules:
bash
sudo apt update
sudo apt install -y linux-headers-$(uname -r) build-essential dkms
On fnOS specifically that should resolve to linux-headers-6.18.18-trim; if that package isn’t found, we need to fix the Feiniu repo first, otherwise DKMS will fail to build the driver.
- Enable the NVIDIA 580.159.04 local driver repo
Use the .deb you linked to set up a local APT repository on the box:
bash
cd /root # or wherever you want
wget https://us.download.nvidia.com/tesla/580.159.04/nvidia-driver-local-repo-debian12-580.159.04_1.0-1_amd64.deb
sudo dpkg -i nvidia-driver-local-repo-debian12-580.159.04_1.0-1_amd64.deb
NVIDIA’s official “Debian – Driver Installation Guide” describes exactly this pattern for “Local Repository Enablement”: install the nvidia-driver-local-repo-... .deb with dpkg -i.
Then install the GPG key from the repo directory and update APT:
bash
sudo cp /var/nvidia-driver-local-repo-debian12-580.159.04/nvidia-driver-*-keyring.gpg /usr/share/keyrings/
sudo apt update
This matches what NVIDIA and Debian users are doing for 580.159.04 on Debian 12: use the local‑repo .deb, copy the keyring, then apt update.
You can sanity‑check that APT sees the repo:
bash
grep -R nvidia-driver-local-repo /etc/apt/sources.list.d
There should be a .list file created by the .deb pointing to /var/nvidia-driver-local-repo-debian12-580.159.04.
- Install the 580 driver from that repo
Now you choose which module flavor you want:
cuda-drivers-580 = proprietary kernel module flavor (what you want for V100)
nvidia-open-580 = open‑kernel‑module flavor (mostly for newer GPUs; V100 is better on proprietary).
So on this box I’d do:
bash
proprietary 580 branch driver (recommended for V100)
sudo apt install -y cuda-drivers-580
A Debian bug report about exactly this 580.159.04 repo shows this is the recommended command, and that it sets up DKMS for all installed kernels.
This will pull in:
nvidia-driver-580 (or similar)
the matching kernel‑dkms package
userspace libs, nvidia-smi, etc.
Then reboot:
bash
sudo reboot
After reboot, verify:
bash
nvidia-smi
modinfo nvidia | egrep 'filename|version|vermagic'
You should now see:
GPU: Tesla V100
Driver Version: 580.159.04
filename: pointing into /lib/modules/6.18.18-trim/... and a vermagic matching 6.18.18-trim.
- CUDA toolkit on top (optional)
That .deb/local‑repo is driver‑only; if you also want full CUDA toolkit:
Either:
add the CUDA Debian 12 repo via cuda-keyring_1.1-1_all.deb and apt install cuda-toolkit-13-0 (or similar)
Or:
install CUDA 13.x from the standalone .run as before, telling it not to install a driver.
Using NVIDIA’s CUDA repo on Debian 12 looks like:
bash
wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-13-0 # or generic 'cuda-toolkit'
This is the Debian‑centric path recommended for newer CUDA & drivers.
- Small gotchas on fnOS
Ensure Feiniu’s own appstore.driver.gpu.nvidia.* stuff is not conflicting; since you’ve purged all nvidia-* packages, you should be fine, but if you ever install from the fnOS App Center again it might collide with the NVIDIA 580 DKMS setup.
If you later add NVIDIA’s general CUDA repo as well, consider pinning nvidia-* packages to 580.159.04 to avoid accidentally upgrading to 590+ (which drops support for some older cards).
If you want, paste the output of:
bash
apt policy cuda-drivers-580 nvidia-open-580
nvidia-smi || echo "no nvidia-smi"
modinfo nvidia 2>/dev/null | egrep 'filename|version|vermagic' || echo "no nvidia module"
after you run through this, and I can sanity‑check that 580.159.04 is correctly bound to 6.18.18-trim on your fnOS kernel.