summaryrefslogtreecommitdiff
path: root/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh
blob: c30bbf346ad94f66e0ad8151bccca8e90570dbe7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
set -e

echo ">>> [gpu] Running INSIDE target system"

GPU_INFO="$(lspci -nn | grep -E 'VGA|3D|Display' || true)"
echo ">>> [gpu] Detected devices:"
echo "$GPU_INFO"

install_pkgs() {
  pacman -Syy --noconfirm || true
  pacman -S --noconfirm "$@" || true
}

install_pkgs mesa libglvnd vulkan-icd-loader

if echo "$GPU_INFO" | grep -qi "Intel"; then
  echo ">>> [gpu] Installing Intel stack..."
  install_pkgs mesa vulkan-intel intel-media-driver 
fi

# AMD
if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then
  echo ">>> [gpu] Installing AMD stack..."
  install_pkgs mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader vulkan-tools mesa-utils
fi

if echo "$GPU_INFO" | grep -qi "NVIDIA"; then
  echo ">>> [gpu] Installing NVIDIA DKMS stack..."

  install_pkgs dkms linux-cachyos-headers nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils

  if echo "$GPU_INFO" | grep -qi "Intel\|AMD\|ATI"; then
    echo ">>> [gpu] Hybrid laptop detected -> installing nvidia-prime"
    install_pkgs nvidia-prime
  fi

  echo ">>> [gpu] Enabling NVIDIA module autoload..."
  mkdir -p /etc/modules-load.d
  cat > /etc/modules-load.d/nvidia.conf <<EOF
nvidia
nvidia_modeset
nvidia_uvm
nvidia_drm
EOF

  echo ">>> [gpu] Enabling NVIDIA DRM modeset..."
  mkdir -p /etc/modprobe.d
  echo "options nvidia_drm modeset=1" > /etc/modprobe.d/nvidia-drm.conf

  echo ">>> [gpu] Rebuilding initramfs..."
  mkinitcpio -P || true
fi

echo ">>> [gpu] Done."