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."
|