Change: 'Graphics Setup' stage > Major code revision in order to comply with the latest Nvidia drivers changes

Change: Some minor indentation
This commit is contained in:
Jane Doe 2024-09-21 23:08:13 +00:00
parent 2d9bde1332
commit 6d65c6f030

153
Amelia.sh
View file

@ -1,7 +1,7 @@
#!/bin/bash
# Amelia Installer
# Version: 7.5
# Version: 7.6
set -euo pipefail
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
@ -1718,9 +1718,9 @@ Enter a number ${bwhite}(empty to skip)${blue}: "
> Select Nvidia architecture: "
NC "
[1] NV110 (Maxwell) Graphics or newer
[1] NV160 (Turing) Graphics or newer
[2] NV160 (Turing) Graphics or newer "
[2] NV110 (Maxwell) Graphics or newer "
BLUE "
@ -1732,120 +1732,46 @@ Enter a number: "
sleep 0.2
NC "
==> [${green}Turing+ OK${nc}]
"
elif [[ "${family}" == "2" ]]; then
sleep 0.2
NC "
==> [${green}Maxwell+ OK${nc}]
"
elif [[ "${family}" == "2" ]]; then
sleep 0.2
YELLOW "
> Select Nvidia driver: "
NC "
[1] 'Nvidia-Open' driver
[2] 'Nvidia' driver "
BLUE "
Enter a number: "
read -r -p "
==> " nvdriver
if [[ "${nvdriver}" == "1" ]]; then
if [[ -n "${vendor2}" ]]; then
sleep 0.2
YELLOW "
### AMD Graphics have also been detected "
RED "
----------------------------------------------------------------------
### ${yellow}There may be incompatibilities with the ${nc}'Nvidia-Open' ${yellow}driver ${red}###
----------------------------------------------------------------------"
YELLOW "
> Please confirm your selection: "
NC "
[1] 'Nvidia-Open' driver
[2] 'Nvidia' driver "
BLUE "
Enter a number: "
read -r -p "
==> " nvdriver
if [[ "${nvdriver}" == "1" || "${nvdriver}" == "2" ]]; then
sleep 0.2
NC "
==> [${green}Driver Confirmed OK${nc}] "
else
echo
invalid
return 1
fi
fi
sleep 0.2
NC "
==> [${green}Turing+ OK${nc}]
"
elif [[ "${nvdriver}" == "2" ]]; then
sleep 0.2
NC "
==> [${green}Turing+ OK${nc}]
"
else
echo
invalid
return 1
fi
else
echo
invalid
return 1
fi
# Turing+ Family
if [[ "${family}" == "1" ]]; then
# Linux Kernel
if [[ "${kernelnmbr}" == "1" ]]; then
if [[ "${family}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia nvidia-settings nvidia-utils opencl-nvidia"
nvname="nvidia"
elif [[ "${family}" == "2" ]]; then
if [[ "${nvdriver}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-open nvidia-settings nvidia-utils opencl-nvidia"
nvname="nvidia-open"
elif [[ "${nvdriver}" == "2" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia nvidia-settings nvidia-utils opencl-nvidia"
nvname="nvidia"
fi
fi
elif [[ "${kernelnmbr}" == "2" ]]; then
if [[ "${family}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-lts nvidia-settings nvidia-utils opencl-nvidia"
nvname="nvidia-lts"
elif [[ "${family}" == "2" ]]; then
if [[ "${nvdriver}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-open-dkms nvidia-settings nvidia-utils opencl-nvidia"
elif [[ "${nvdriver}" == "2" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-lts nvidia-settings nvidia-utils opencl-nvidia"
nvname="nvidia-lts"
fi
fi
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-open nvidia-settings nvidia-utils opencl-nvidia"
# Other Kernels
else
if [[ "${family}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-dkms nvidia-settings nvidia-utils opencl-nvidia"
elif [[ "${family}" == "2" ]]; then
if [[ "${nvdriver}" == "1" ]]; then
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-open-dkms nvidia-settings nvidia-utils opencl-nvidia"
elif [[ "${nvdriver}" == "2" ]]; then
fi
# Maxwell+ Family
elif [[ "${family}" == "2" ]]; then
# Linux Kernel
if [[ "${kernelnmbr}" == "1" ]]; then
nvname="nvidia"
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia nvidia-settings nvidia-utils opencl-nvidia"
# Linux LTS Kernel
elif [[ "${kernelnmbr}" == "2" ]]; then
nvname="nvidia-lts"
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-lts nvidia-settings nvidia-utils opencl-nvidia"
# Other Kernels
else
vgapkgs="libva-nvidia-driver libvdpau-va-gl nvidia-dkms nvidia-settings nvidia-utils opencl-nvidia"
fi
fi
fi
sleep 0.2
YELLOW "
@ -1884,6 +1810,7 @@ Enter [y/n]: "
return 1
fi
fi
sleep 0.2
YELLOW "
@ -5580,7 +5507,7 @@ ZRAM
nvidia_hook_conf() {
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && "${nvdriver}" == "2" ]]; then
if [[ "${nvname}" == "nvidia-open" ]] || [[ "${nvname}" == "nvidia" ]] || [[ "${nvname}" == "nvidia-lts" ]]; then
cnfg
local stage_prompt="Nvidia-Hook"
if arch-chroot /mnt <<-NVIDIA_HOOK > /dev/null 2>&1 ; then
@ -5615,9 +5542,11 @@ uki_conf() {
if [[ "${uki}" == "y" ]]; then
cnfg
local stage_prompt="UKI"
if [[ ! -e "${esp_mount}"/EFI/Linux ]]; then
mkdir -p "${esp_mount}"/EFI/Linux || exit
fi
if [[ "${bootloader}" == "1" ]]; then
if arch-chroot /mnt <<- UKI > /dev/null 2>&1 ; then
mkdir /etc/cmdline.d || exit
@ -5635,12 +5564,15 @@ UKI
else
stage_fail
fi
if [[ -e /mnt/boot/initramfs-"${kernel}".img ]]; then
rm /mnt/boot/initramfs-"${kernel}".img || exit
fi
if [[ -e /mnt/boot/initramfs-"${kernel}"-fallback.img ]]; then
rm /mnt/boot/initramfs-"${kernel}"-fallback.img || exit
fi
elif [[ "${bootloader}" == "2" ]]; then
if arch-chroot /mnt <<- UKI > /dev/null 2>&1 ; then
mkdir /etc/cmdline.d || exit
@ -5733,7 +5665,7 @@ set_vars() {
# Set Default '/Temp' path
vga_bootopts="nvidia_drm.modeset=1 nvidia_drm.fbdev=1 nvidia.NVreg_UsePageAttributeTable=1 nvidia.NVreg_PreserveVideoMemoryAllocations=1 "
fi
# No Preserve-Nvidia-Video-Memory after suspend/hibernate/resume
# No-Preserve-Nvidia-Video-Memory after suspend/hibernate/resume
else
# Mkinitcpio Modules (Encryption) [Early Nvidia KMS]
mkinitcpio_mods="MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm ${fs_mod})"
@ -5876,6 +5808,7 @@ ${magenta}###${nc}--------------------------------${magenta}[ ${bwhite}Chroot &
if [[ "${packages}" =~ ^(1|3|5|6|7|8|9|10|11)$ ]]; then
cnfg
main_chroot
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
cnfg
if [[ "${packages}" == "7" ]]; then
@ -5907,6 +5840,7 @@ SLICK
fi
fi
fi
if [[ -n "${bluetooth}" ]]; then
cnfg
stage_prompt="Bluetooth Service"
@ -5918,6 +5852,7 @@ BLUETOOTH
stage_fail
fi
fi
if [[ -n "${displaymanager}" ]]; then
cnfg
stage_prompt="Display Manager Service"
@ -5929,6 +5864,7 @@ DM_SERVICE
stage_fail
fi
fi
if [[ -n "${network}" ]]; then
cnfg
stage_prompt="Network Manager Service"
@ -5940,6 +5876,7 @@ NETWORK
stage_fail
fi
fi
btldr_conf
trim_conf
vm_serv_conf
@ -5954,6 +5891,7 @@ NETWORK
if [[ "${packages}" == "12" ]]; then
cnfg
main_chroot
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
cnfg
if [[ "${greeternmbr}" == "1" ]]; then
@ -5985,6 +5923,7 @@ DEEPIN
fi
fi
fi
if [[ -n "${customservices}" ]]; then
cnfg
stage_prompt="Custom Service(s)"
@ -5996,6 +5935,7 @@ CUSTOM_SERV
stage_fail
fi
fi
btldr_conf
trim_conf
vm_serv_conf
@ -6010,16 +5950,19 @@ CUSTOM_SERV
if [[ "${packages}" == "2" || "${packages}" == "4" ]]; then
stage_prompt="Optimized System"
cnfg
if [[ "${packages}" == "2" ]]; then
displaymanager="sddm"
elif [[ "${packages}" == "4" ]]; then
displaymanager="gdm"
fi
if [[ -n "${nrg_plc}" ]]; then
arch-chroot /mnt <<-NRG > /dev/null 2>&1
${nrg_plc} performance
NRG
fi
if arch-chroot /mnt <<-OPTIMIZED_CONF > /dev/null 2>&1 ; then
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen || exit
locale-gen || exit
@ -6161,12 +6104,14 @@ OPTIMIZED_CONF
else
stage_fail
fi
btldr_conf
zram_conf
nvidia_hook_conf
uki_conf
completion
fi
umount -R /mnt
exit
}