New NVIDIA driver automation

This past weekend, I started fresh and captured the list of files before and after the proprietary driver installation. Also, I looked deeper into why the swupd tool was breaking the NVIDIA installation from updating 36780 to 36800. An issue request was posted on GitHub.

It turns out that there are files installed to /usr even though specified /opt for the NVIDIA installer. Moreover, the nvidia-settings app (went through all the menu items) still looks for things under /usr/share/ even though specified /etc/ argument to the NVIDIA installer.

So I captured all the commands for prepping the Clear Linux OS. This includes a list of files for swupd to ignore (placed in /etc/swupd/config) to not break the NVIDIA installation. But that isn’t enough. Calling depmod -A is needed as mentioned in the issue request. I witnessed also Firefox suddenly breaking because unable to find libGL due to swupd restoring mesa libGL files. It turns out that calling ldconfig is needed too inside the trigger script.

Well, I created a repo for installing the NVIDIA driver accommodating these findings.


Does it work with most drivers in the list ?

Thus far, 470 and later versions work including hardware acceleration. I tested 470.129.06 (VP9), 510.73.05 (VP9, AV1), and 515.57 (VP9, AV1). 390 fails to install due to modules build failure.

Note: VP9 hardware acceleration requires minimally 470.57 using nv-codec-headers AV1 is supported (Firefox only at this time) starting with 510 for NVIDIA 3000 series graphics.

Another edge case presented itself today when updating CL from 36700 to 36710. See issue 2694. I added check-kernel-dkms to double-check dkms modules. Also, the pre and installer scripts were enhanced to accommodate all kernels installed on the system.

The stars have aligned today. :slight_smile:

  • Clear Linux 36720 provides lts2021 (default for kernel-lts).
    • 5.15.58-1.lts2021
  • NVIDIA adds new {470, 510, 515} entries at download site.
    • 470.141.03
    • 510.85.02
    • 515.65.01
  • Project installing NVIDIA driver, accommodating various edge cases, is completed.

Thank you, dev-team for addressing edge cases regarding swupd.

I have lost count on the number of times installing Clear Linux OS solely for testing NVIDIA graphics. At last, I’m finished with testing. Thank you dev-team for clarification on the remaining issue.

1 Like

Tonight, I completed a new HWAccel addition to the nvidia-driver-on-clear-linux repo, without the FFmpeg bits. Just a handful of scripts to build NV codec headers, NVDEC, VDPAU, and vdpauinfo.

./HWAccel:	brave		build-all	firefox		scripts

brave-browser.desktop	run-brave-stable


000-install-dependencies	120-build-libvdpau
100-build-nv-codec-headers	130-build-vdpauinfo
110-build-vaapi-nvidia		140-build-vdpau-va-driver-v9

Not shown above is new entry added to the swupd ignore list.

1 Like

To be sure, I installed CL 36740 from scratch to an external drive using the text installer (nomodeset, passed to the kernel). Booting into the GUI is preferably okay if nouveau works for you.

I hadn’t realized that I was missing one dependency, fixed in the latest commit.

Install CL 36740 or newer.

git clone
cd nvidia-driver-on-clear-linux
git pull # In the event not latest

bash pre-install-driver

cd nvidia-driver-on-clear-linux
bash install-driver 515

Enable hardware acceleration (note: this has sudo in the command).

cd nvidia-driver-on-clear-linux/HWAccel
sudo bash build-all

cp firefox/firefox.conf ~/.config/.
review Firefox settings as described in the documentation
restart Firefox

VP9 (media.av1.enabled: false) and AV1 (media.av1.enabled: true) content are decoded using the video engine.



Thank you for all your work on the NVIDIA install - I know it’s much appreciated by the NVIDIA users here.


My pleasure! The GitHub repository reached maintenance status. It includes install-cuda for installing the NVIDIA CUDA Toolkit.

I removed 495 from the list of valid display drivers, as it fails with DKMS signing. Working are 470, 510, and 515 with the suitable CUDA Toolkit versions. The pre-install-driver accepts the update argument, previously reset. So able to update the relevant configuration files from upstream without switching the boot target.