#!/usr/bin/env bash # Quick pass if one of the modules is already loaded. if [[ -e /sys/module/nvidia || -e /sys/module/nouveau ]]; then exit 0 fi # Load compatible version of NVIDIA modules for current hardware if chwd --list | awk '{ if($2 == "nouveau" || $2 == "nvidia-dkms-470xx" || $2 == "nvidia-dkms-580xx") f=1 } END {exit (f == 1) ? 0 : 1 }'; then modprobe nouveau elif chwd --list | awk '{ if($2 == "nvidia-open-dkms") f=1 } END {exit (f == 1) ? 0 : 1 }'; then modprobe --ignore-install nvidia nvidia-modeset nvidia-drm nvidia-uvm fi # Otherwise, do a fallback to nouveau anyway if [[ ! -e /sys/module/nouveau && ! -e /sys/module/nvidia ]]; then modprobe nouveau fi