summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.forgejo/scripts/mirror-core-repo.sh14
-rw-r--r--raveos-calamares-theme/PKGBUILD2
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh85
-rw-r--r--raveos-calamares-theme/etc/calamares/modules/partition.conf7
4 files changed, 79 insertions, 29 deletions
diff --git a/.forgejo/scripts/mirror-core-repo.sh b/.forgejo/scripts/mirror-core-repo.sh
index 9c6d5e0..20ee1dc 100644
--- a/.forgejo/scripts/mirror-core-repo.sh
+++ b/.forgejo/scripts/mirror-core-repo.sh
@@ -46,14 +46,12 @@ for f in *.pkg.tar.zst; do
[ -n "$pkgname" ] || continue
while IFS=$'\t' read -r aid aname; do
[ -n "$aid" ] || continue
- case "$aname" in
- "${pkgname}-"*.pkg.tar.zst | "${pkgname}-"*.pkg.tar.zst.sig)
- if [ "$aname" != "$f" ] && [ "$aname" != "${f}.sig" ]; then
- curl -sf -X DELETE -H "@${HDRFILE}" "${API}/releases/assets/${aid}" || true
- echo "torolve (regi verzio): $aname"
- fi
- ;;
- esac
+ aname_nosig="${aname%.sig}"
+ apkg=$(echo "$aname_nosig" | sed -E 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
+ if [ "$apkg" = "$pkgname" ] && [ "$aname" != "$f" ] && [ "$aname" != "${f}.sig" ]; then
+ curl -sf -X DELETE -H "@${HDRFILE}" "${API}/releases/assets/${aid}" || true
+ echo "torolve (regi verzio): $aname"
+ fi
done <<< "$existing_names"
done
diff --git a/raveos-calamares-theme/PKGBUILD b/raveos-calamares-theme/PKGBUILD
index f27527f..9474c43 100644
--- a/raveos-calamares-theme/PKGBUILD
+++ b/raveos-calamares-theme/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveos-calamares-theme
pkgver=2.0.0
-pkgrel=75
+pkgrel=76
pkgdesc="RaveOS Calamares Theme"
arch=('any')
url="https://git.rp1.hu/RaveOS"
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.
#