CL 38270: Good news, the bad news, and solution for NVIDIA graphics


Good news: The recent Clear Linux OS (release 38270) installs the libglvnd package, a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors on a per-screen basis. Thank you, CL team.

The bad news: Updating to CL 38270 will break NVIDIA graphics using the NVIDIA proprietary driver. Before CL 38270, the NVIDIA installer removes non-libglvnd libraries { libGLESv2, libGLESv1_CM, libOpenGL, libEGL, libGLX, and libGL }. This requires automation to create symbolic links to the /opt/nvidia path via post-update trigger script.

Starting with CL 38270, the NVIDIA installer detects the presence of libglvnd libraries.

executing: '/bin/sh ./libglvnd_install_checker/'...
Found libglvnd libraries:
libglvnd appears to be installed.

Solution: Follow the steps to get NVIDIA graphics working again. This requires re-installing the proprietary driver to detect libglvnd. Notably important is running the pre-install-driver script with the update argument. That will refresh the trigger script to not make symbolic links to the libraries mentioned above.

  1. Boot into multi-user mode by pressing the letter e on the boot screen. Prepend 3 with a space to the list of kernel arguments.
  2. Uninstall the proprietary driver: sudo /usr/bin/nvidia-uninstall
  3. Remove artifacts: sudo rm -f /usr/lib64/libnvidia*
  4. Repair lib-opengl: sudo swupd repair -x --bundles=lib-opengl
  5. Run: git update from the nvidia-driver-on-clear-linux folder
  6. Run: bash pre-install-driver update

Finally, install the proprietary driver: bash install-driver 525 or desired version 520, 515, 510, or 470.


Anything that Open Source :slight_smile:

Thank you for this update. I am still back at build 37500, not having gone to the NVIDIA proprietary driver with auto update solution yet. Thank you for the gethub link as well.