summaryrefslogtreecommitdiff
path: root/raveos-calamares-theme/etc/calamares
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-calamares-theme/etc/calamares')
-rw-r--r--raveos-calamares-theme/etc/calamares/branding/raveos/supporters.js4
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh85
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/partition.conf7
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.
#