diff options
Diffstat (limited to 'raveos-calamares-theme/etc/calamares')
3 files changed, 75 insertions, 21 deletions
diff --git a/raveos-calamares-theme/etc/calamares/branding/raveos/supporters.js b/raveos-calamares-theme/etc/calamares/branding/raveos/supporters.js index b4f1556..77bf0f7 100644 --- a/raveos-calamares-theme/etc/calamares/branding/raveos/supporters.js +++ b/raveos-calamares-theme/etc/calamares/branding/raveos/supporters.js @@ -6,9 +6,11 @@ var names = [ "kurtagergo", + "Hungarian_dude", "pikym" ] var highlighted = [ - "kurtagergo" + "kurtagergo", + "Hungarian_dude" ] diff --git a/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh index 462a289..7038237 100644 --- a/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh +++ b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh @@ -7,16 +7,17 @@ GPU_INFO="$(lspci -nn | grep -E 'VGA|3D|Display' || true)" echo ">>> [gpu] Detected devices:" echo "$GPU_INFO" +pacman -Syy --noconfirm || true + install_pkgs() { - pacman -Syy --noconfirm || true - pacman -S --noconfirm "$@" || true + pacman -S --needed --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 + install_pkgs mesa vulkan-intel intel-media-driver fi if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then @@ -25,41 +26,93 @@ if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then fi if echo "$GPU_INFO" | grep -qi "NVIDIA"; then - echo ">>> [gpu] Installing NVIDIA DKMS stack..." + echo ">>> [gpu] NVIDIA detected -> driver kivalasztasa..." + + NV_IDS=$( { lspci -n -d 10de::0300; lspci -n -d 10de::0302; lspci -n -d 10de::0380; } | awk '{print $3}' | cut -d: -f2 | sort -u || true ) + + driver_family() { + local id="$1" dec + [[ "$id" =~ ^[0-9a-fA-F]{4}$ ]] || { echo unsupported; return; } + dec=$((16#$id)) + if [ "$dec" -ge $((0x1E00)) ]; then echo open; return; fi + if [ "$dec" -ge $((0x1340)) ] && [ "$dec" -le $((0x13FF)) ]; then echo 580xx; return; fi + if [ "$dec" -ge $((0x1400)) ] && [ "$dec" -le $((0x1DFF)) ]; then echo 580xx; return; fi + if [ "$dec" -ge $((0x0FC0)) ] && [ "$dec" -le $((0x103F)) ]; then echo 470xx; return; fi + if [ "$dec" -ge $((0x1180)) ] && [ "$dec" -le $((0x11FF)) ]; then echo 470xx; return; fi + if [ "$dec" -ge $((0x1280)) ] && [ "$dec" -le $((0x12BF)) ]; then echo 470xx; return; fi + echo unsupported + } + + BESTFAM=unsupported + BESTRANK=0 + for id in $NV_IDS; do + fam=$(driver_family "$id") + echo ">>> [gpu] NVIDIA ${id} -> ${fam}" + rank=0 + case "$fam" in + open) rank=4 ;; + 580xx) rank=3 ;; + 470xx) rank=2 ;; + esac + if [ "$rank" -gt "$BESTRANK" ]; then BESTRANK=$rank; BESTFAM=$fam; fi + done - install_pkgs dkms linux-cachyos-headers nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils + case "$BESTFAM" in + open) + echo ">>> [gpu] Turing+ -> nvidia-open-dkms" + install_pkgs dkms linux-cachyos-headers nvidia-open-dkms nvidia-utils nvidia-settings lib32-nvidia-utils + ;; + 580xx) + echo ">>> [gpu] Pascal/Maxwell/Volta -> nvidia-580xx-dkms (legacy)" + install_pkgs dkms linux-cachyos-headers nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings lib32-nvidia-580xx-utils + ;; + 470xx) + echo ">>> [gpu] Kepler -> nvidia-470xx-dkms (legacy, unsupported)" + install_pkgs dkms linux-cachyos-headers nvidia-470xx-dkms nvidia-470xx-utils nvidia-470xx-settings lib32-nvidia-470xx-utils + ;; + *) + echo ">>> [gpu] Nem tamogatott NVIDIA (Fermi vagy regebbi) -> nouveau marad" + ;; + esac 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 + NV_MODULE_OK=0 + if [ "$BESTFAM" != unsupported ] && modinfo -k "$(ls /usr/lib/modules | head -1)" nvidia >/dev/null 2>&1; then + NV_MODULE_OK=1 + fi + + if [ "$NV_MODULE_OK" -eq 1 ]; then + echo ">>> [gpu] NVIDIA modul elerheto -> beallitasok..." + + 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 - cat > /etc/modprobe.d/nvidia-drm.conf <<'EOF' + mkdir -p /etc/modprobe.d + cat > /etc/modprobe.d/nvidia-drm.conf <<'EOF' options nvidia_drm modeset=1 EOF - echo ">>> [gpu] Disabling nouveau (blacklist in /etc so initramfs keeps it)..." - cat > /etc/modprobe.d/99-nvidia-blacklist.conf <<'EOF' + cat > /etc/modprobe.d/99-nvidia-blacklist.conf <<'EOF' blacklist nouveau options nouveau modeset=0 EOF - echo ">>> [gpu] Embedding NVIDIA modules into initramfs..." - mkdir -p /etc/mkinitcpio.conf.d - cat > /etc/mkinitcpio.conf.d/raveos-nvidia.conf <<'EOF' + mkdir -p /etc/mkinitcpio.conf.d + cat > /etc/mkinitcpio.conf.d/raveos-nvidia.conf <<'EOF' MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) EOF + else + echo ">>> [gpu] NVIDIA modul NEM erheto el -> nouveau marad (nincs blacklist)" + fi if pacman -Q plasma-desktop >/dev/null 2>&1; then echo ">>> [gpu] NVIDIA + Plasma -> installing X11 session (plasma-x11-session)" diff --git a/raveos-calamares-theme/etc/calamares/modules/partition.conf b/raveos-calamares-theme/etc/calamares/modules/partition.conf index 732a5df..2b460a9 100644 --- a/raveos-calamares-theme/etc/calamares/modules/partition.conf +++ b/raveos-calamares-theme/etc/calamares/modules/partition.conf @@ -123,10 +123,9 @@ defaultPartitionTableType: gpt # # If nothing is specified, Calamares defaults to both "msdos" and "gpt". # -requiredPartitionTableType: gpt -# requiredPartitionTableType: -# - msdos -# - gpt +requiredPartitionTableType: + - msdos + - gpt # Default filesystem type, used when a "new" partition is made. # |