Change: 'Graphics Setup' stage: Major overhaul of the GFX detection stage >

Now there is support for installing drivers/enabling HW acceleration etc. for multiple vendors, an individual vendor only or none
The graphics packages list(s) now derive dynamically from arrays instead of the previously hardcoded variables sets
Also, visual enhancements have been added to the said stage
Change: The 'xdg-users-dirs' package have been added where the Desktop setups were missing it
Change: The 'nautilus' package have been added to the Budgie Desktop setup, as it comes with no file manager
Edit: A few prompts have been edited for enhanced visuals and/or clarification
This commit is contained in:
Jane Doe
2025-03-13 18:01:16 +02:00
parent 5aacadd28d
commit 443fe3d23c
+175 -139
View File
@@ -2,7 +2,7 @@
# Amelia Installer # Amelia Installer
# Source: https://gitlab.com/prism7/archery # Source: https://gitlab.com/prism7/archery
# Version: 8.10.1 # Version: 8.11.0
set -euo pipefail set -euo pipefail
################################################################################################### ###################################################################################################
@@ -1520,7 +1520,7 @@ dtct_single_vga() {
if [[ "${vendor}" == "Nvidia" ]]; then if [[ "${vendor}" == "Nvidia" ]]; then
YELLOW " YELLOW "
### Selecting ${nc}'n' ${yellow}defaults to using the open-source ${nc}'nouveau' ${yellow}driver" ### Selecting ${nc}'(n)o' ${yellow}defaults to using the open-source ${nc}'nouveau' ${yellow}driver"
fi fi
BLUE " BLUE "
@@ -1562,10 +1562,12 @@ dtct_multi_vga() {
if [[ "${intelcount}" -ge "1" ]]; then if [[ "${intelcount}" -ge "1" ]]; then
vendor1="Intel" vendor1="Intel"
echo
BLUEBG " ------------------------------- "
BLUEBG " [${intelcount}] Intel Graphics device(s) "
BLUEBG " ------------------------------- "
NC " NC "
[${intelcount}] Intel Graphics device(s)
${intelcards} ${intelcards}
____________________________________________________________________" ____________________________________________________________________"
@@ -1573,10 +1575,12 @@ ${intelcards}
if [[ "${amdcount}" -ge "1" ]]; then if [[ "${amdcount}" -ge "1" ]]; then
vendor2="AMD" vendor2="AMD"
echo
REDBG " ------------------------------- "
REDBG " [${amdcount}] AMD Graphics device(s) "
REDBG " ------------------------------- "
NC " NC "
[${amdcount}] AMD Graphics device(s)
${amdcards} ${amdcards}
____________________________________________________________________" ____________________________________________________________________"
@@ -1584,10 +1588,12 @@ ${amdcards}
if [[ "${nvidiacount}" -ge "1" ]]; then if [[ "${nvidiacount}" -ge "1" ]]; then
vendor3="Nvidia" vendor3="Nvidia"
echo
GREENBG " ------------------------------- "
GREENBG " [${nvidiacount}] Nvidia Graphics device(s) "
GREENBG " ------------------------------- "
NC " NC "
[${nvidiacount}] Nvidia Graphics device(s)
${nvidiacards} ${nvidiacards}
____________________________________________________________________" ____________________________________________________________________"
@@ -1604,7 +1610,9 @@ ${nvidiacards}
[2] AMD [2] AMD
[3] None " [3] Both
[4] None "
BLUE " BLUE "
@@ -1618,6 +1626,8 @@ Enter a number: "
2) 2)
vendor="AMD" ;; vendor="AMD" ;;
3) 3)
vendors="Intel & AMD" ;;
4)
vendor="none" ;; vendor="none" ;;
"") "")
choice choice
@@ -1634,7 +1644,9 @@ Enter a number: "
${red}----------------------------------------------------${nc} ${red}----------------------------------------------------${nc}
[2] Nvidia ${red}### ${yellow}Only for NV110 ${nc}(Maxwell) ${yellow}Graphics or newer ${red}###${nc} [2] Nvidia ${red}### ${yellow}Only for NV110 ${nc}(Maxwell) ${yellow}Graphics or newer ${red}###${nc}
${red}----------------------------------------------------${nc} ${red}----------------------------------------------------${nc}
[3] None " [3] Both
[4] None "
BLUE " BLUE "
@@ -1648,6 +1660,8 @@ Enter a number: "
2) 2)
vendor="Nvidia" ;; vendor="Nvidia" ;;
3) 3)
vendors="Intel & Nvidia" ;;
4)
vendor="none" ;; vendor="none" ;;
"") "")
choice choice
@@ -1664,7 +1678,9 @@ Enter a number: "
${red}----------------------------------------------------${nc} ${red}----------------------------------------------------${nc}
[2] Nvidia ${red}### ${yellow}Only for NV110 ${nc}(Maxwell) ${yellow}Graphics or newer ${red}###${nc} [2] Nvidia ${red}### ${yellow}Only for NV110 ${nc}(Maxwell) ${yellow}Graphics or newer ${red}###${nc}
${red}----------------------------------------------------${nc} ${red}----------------------------------------------------${nc}
[3] None " [3] Both
[4] None "
BLUE " BLUE "
@@ -1678,6 +1694,8 @@ Enter a number: "
2) 2)
vendor="Nvidia" ;; vendor="Nvidia" ;;
3) 3)
vendors="AMD & Nvidia" ;;
4)
vendor="none" ;; vendor="none" ;;
"") "")
choice choice
@@ -1695,12 +1713,23 @@ Enter a number: "
sourcetype="Proprietary" sourcetype="Proprietary"
vgaconf="y" vgaconf="y"
vga_conf vga_conf
elif [[ "${vendors}" == "Intel & AMD" ]]; then
sourcetype="Open-source"
vgaconf="y"
vga_conf
elif [[ "${vendors}" == "Intel & Nvidia" ]]; then
sourcetype="Open-source & Proprietary"
vgaconf="y"
vga_conf
elif [[ "${vendors}" == "AMD & Nvidia" ]]; then
sourcetype="Open-source & Proprietary"
vgaconf="y"
vga_conf
elif [[ "${vendor}" == "none" ]]; then elif [[ "${vendor}" == "none" ]]; then
local prompt="Graphics Setup" local prompt="Graphics Setup"
vgaconf="n" vgaconf="n"
skip skip
ok ok
return 0
fi fi
} }
################################################################################################### ###################################################################################################
@@ -1715,7 +1744,7 @@ vga_conf() {
" "
fi fi
if [[ "${vendor}" == "AMD" ]]; then if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
sleep 0.2 sleep 0.2
YELLOW " YELLOW "
@@ -1754,7 +1783,9 @@ Enter a number ${bwhite}(empty to skip)${blue}: "
invalid invalid
return 1 ;; return 1 ;;
esac esac
elif [[ "${vendor}" == "Nvidia" ]]; then fi
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
sleep 0.2 sleep 0.2
YELLOW " YELLOW "
> Select Nvidia architecture: " > Select Nvidia architecture: "
@@ -1817,7 +1848,7 @@ Enter [y/n]: "
sleep 0.2 sleep 0.2
YELLOW " YELLOW "
> Enable (experimental) Low Latency Display Interrupts ? [Y/n] " > Enable Low Latency Display Interrupts (experimental) ? [Y/n] "
BLUE " BLUE "
@@ -1842,21 +1873,32 @@ Enter [Y/n]: "
sleep 0.2 sleep 0.2
YELLOW " YELLOW "
### ${vendor} Graphics will be automatically configured ### ${vendor}${vendors} Graphics will be automatically configured
" "
local prompt="Graphics Setup" local prompt="Graphics Setup"
ok ok
} }
################################################################################################### ###################################################################################################
vgapkgs_set() { gfxpkgs_set() {
# Graphics packages
gfxpkgs=()
# Configure Graphics = yes
if [[ "${vgaconf}" == "y" ]]; then if [[ "${vgaconf}" == "y" ]]; then
if [[ "${vendor}" == "Intel" ]]; then # Intel Graphics
if [[ "${vendor}" == "Intel" || "${vendors}" =~ "Intel" ]]; then
# /etc/sysctl.d/99-sysctld.conf
perf_stream="dev.i915.perf_stream_paranoid = 0" perf_stream="dev.i915.perf_stream_paranoid = 0"
vgapkgs="intel-compute-runtime intel-media-driver intel-media-sdk libva-intel-driver opencl-headers vpl-gpu-rt vkd3d vulkan-intel vulkan-mesa-layers" gfxpkgs+=(intel-compute-runtime intel-media-driver intel-media-sdk libva-intel-driver opencl-headers vpl-gpu-rt vkd3d vulkan-intel vulkan-mesa-layers)
elif [[ "${vendor}" == "AMD" ]]; then fi
vgapkgs="libva-mesa-driver mesa-utils mesa-vdpau opencl-headers rocm-opencl-runtime vkd3d vulkan-mesa-layers vulkan-radeon" # AMD Graphics
elif [[ "${vendor}" == "Nvidia" ]]; then if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
gfxpkgs+=(libva-mesa-driver mesa-utils mesa-vdpau opencl-headers rocm-opencl-runtime vkd3d vulkan-mesa-layers vulkan-radeon)
fi
# Nvidia Graphics
if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
# Swap partition|swapfile|zram-swap = yes
if [[ "${swapmode}" =~ ^(1|2|3)$ ]]; then if [[ "${swapmode}" =~ ^(1|2|3)$ ]]; then
sleep 0.2 sleep 0.2
RED " RED "
@@ -1875,33 +1917,37 @@ vgapkgs_set() {
" "
read -r -s -n 1 read -r -s -n 1
fi fi
# Turing+ GPUs
if [[ "${family}" == "1" ]]; then if [[ "${family}" == "1" ]]; then
# Linux Kernel # Linux Kernel
if [[ "${kernelnmbr}" == "1" ]]; then if [[ "${kernelnmbr}" == "1" ]]; then
nvname="nvidia-open" nvname="nvidia-open"
vgapkgs="libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-open nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d" gfxpkgs+=(libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-open nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d)
# Other Kernels # Other Kernels
else else
vgapkgs="libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-open-dkms nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d" gfxpkgs+=(libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-open-dkms nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d)
fi fi
# Maxwell+ GPUs
elif [[ "${family}" == "2" ]]; then elif [[ "${family}" == "2" ]]; then
# Linux Kernel # Linux Kernel
if [[ "${kernelnmbr}" == "1" ]]; then if [[ "${kernelnmbr}" == "1" ]]; then
nvname="nvidia" nvname="nvidia"
vgapkgs="libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d" gfxpkgs+=(libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d)
# Linux LTS Kernel # Linux LTS Kernel
elif [[ "${kernelnmbr}" == "2" ]]; then elif [[ "${kernelnmbr}" == "2" ]]; then
nvname="nvidia-lts" nvname="nvidia-lts"
vgapkgs="libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-lts nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d" gfxpkgs+=(libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-lts nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d)
# Other Kernels # Other Kernels
else else
vgapkgs="libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-dkms nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d" gfxpkgs+=(libva-mesa-driver libva-nvidia-driver libvdpau-va-gl nvidia-dkms nvidia-settings nvidia-utils opencl-nvidia opencl-headers vkd3d)
fi fi
fi fi
fi fi
# Configure Graphics = no
elif [[ "${vgaconf}" == "n" ]]; then elif [[ "${vgaconf}" == "n" ]]; then
if [[ "${vendor}" == "Nvidia" ]]; then # Nvidia Graphics
vgapkgs="libva-mesa-driver vulkan-nouveau" if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
gfxpkgs+=(libva-mesa-driver vulkan-nouveau)
fi fi
fi fi
} }
@@ -2517,7 +2563,16 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Mult
YELLOW " YELLOW "
> Are you ${nc}Dual/Multi-Booting ${yellow}with other OS's ? [y/n]" > Are you ${nc}Dual/Multi-Booting ${yellow}with other OS's ? [y/n]
### If ${nc}'(y)es'${yellow} then:
1. Your ${nc}EFI ${yellow}System Partition (ESP) will stay ${nc}intact${yellow}
2. Only ${nc}'Manual' ${yellow}Disk Partitioning will be available in ${nc}'Disk Manager'"
BLUE " BLUE "
@@ -4946,8 +5001,9 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
revise() { revise() {
revision="yes" revision="yes"
reset=(xbootloader="" vgaconf="" vendor_slct="" vendor="" packages="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" preset="" autoroot="" autoxboot="" autohome="" autoswap="") reset=(xbootloader="" vgaconf="" vendor_slct="" vendor="" packages="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" preset="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" vendors="" nogsp="")
export "${reset[@]}" export "${reset[@]}"
gfxpkgs=()
if [[ "${hypervisor}" != "none" ]]; then if [[ "${hypervisor}" != "none" ]]; then
vm vm
@@ -5349,7 +5405,7 @@ pacstrap_system() {
${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacstrap System${nc} ${magenta}]${nc}-------------------------------------${magenta}### ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacstrap System${nc} ${magenta}]${nc}-------------------------------------${magenta}###
" "
cnfg cnfg
vgapkgs_set gfxpkgs_set
if [[ "${bootloader}" == "2" ]]; then if [[ "${bootloader}" == "2" ]]; then
if [[ "${fs}" == "1" ]]; then if [[ "${fs}" == "1" ]]; then
@@ -5375,8 +5431,8 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
if [[ -n "${zram}" ]]; then if [[ -n "${zram}" ]]; then
basepkgs+=("${zram}") basepkgs+=("${zram}")
fi fi
if [[ -n "${vgapkgs}" ]]; then if [[ -n "${gfxpkgs[*]}" ]]; then
basepkgs+=("${vgapkgs}") basepkgs+=("${gfxpkgs[*]}")
fi fi
if [[ "${vendor}" == "Nvidia" ]]; then if [[ "${vendor}" == "Nvidia" ]]; then
basepkgs+=("${kernel}-headers") basepkgs+=("${kernel}-headers")
@@ -5409,12 +5465,12 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
deskpkgs="${basepkgs[*]} dconf-editor evince file-roller gdm gnome-calculator gnome-clocks gnome-connections gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-remote-desktop gnome-session gnome-shell-extensions gnome-system-monitor gnome-text-editor gnome-tweaks gnome-user-share gvfs gvfs-afc gvfs-mtp loupe malcontent nautilus networkmanager power-profiles-daemon simple-scan sushi system-config-printer xdg-desktop-portal-gnome xdg-user-dirs-gtk alsa-firmware alsa-utils ccache cups-pdf exfatprogs fdkaac git glib2-devel glibc-locales gnome-browser-connector gparted gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb libfido2 libva-utils lrzip mac man-db man-pages meld mesa-utils nano-syntax-highlighting nss-mdns ntfs-3g p7zip pacman-contrib pbzip2 pigz pipewire-alsa pipewire-jack pipewire-pulse powerline powerline-fonts qbittorrent realtime-privileges reflector rng-tools sof-firmware sox terminus-font ttf-ubuntu-font-family unrar unzip usb_modeswitch usbutils vdpauinfo vlc wget zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;; deskpkgs="${basepkgs[*]} dconf-editor evince file-roller gdm gnome-calculator gnome-clocks gnome-connections gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-remote-desktop gnome-session gnome-shell-extensions gnome-system-monitor gnome-text-editor gnome-tweaks gnome-user-share gvfs gvfs-afc gvfs-mtp loupe malcontent nautilus networkmanager power-profiles-daemon simple-scan sushi system-config-printer xdg-desktop-portal-gnome xdg-user-dirs-gtk alsa-firmware alsa-utils ccache cups-pdf exfatprogs fdkaac git glib2-devel glibc-locales gnome-browser-connector gparted gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb libfido2 libva-utils lrzip mac man-db man-pages meld mesa-utils nano-syntax-highlighting nss-mdns ntfs-3g p7zip pacman-contrib pbzip2 pigz pipewire-alsa pipewire-jack pipewire-pulse powerline powerline-fonts qbittorrent realtime-privileges reflector rng-tools sof-firmware sox terminus-font ttf-ubuntu-font-family unrar unzip usb_modeswitch usbutils vdpauinfo vlc wget zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
5) # Xfce Desktop: 5) # Xfce Desktop:
deskpkgs="${basepkgs[*]} xfce4 lightdm-gtk-greeter network-manager-applet" deskpkgs="${basepkgs[*]} xfce4 xdg-user-dirs lightdm-gtk-greeter network-manager-applet"
displaymanager="lightdm" displaymanager="lightdm"
network="NetworkManager" ;; network="NetworkManager" ;;
6) # Cinnamon Desktop: 6) # Cinnamon Desktop:
deskpkgs="${basepkgs[*]} cinnamon blueberry lightdm-slick-greeter system-config-printer gnome-keyring ${terminal}" deskpkgs="${basepkgs[*]} cinnamon blueberry lightdm-slick-greeter system-config-printer gnome-keyring xdg-user-dirs ${terminal}"
displaymanager="lightdm" displaymanager="lightdm"
bluetooth="bluetooth" bluetooth="bluetooth"
network="NetworkManager" ;; network="NetworkManager" ;;
@@ -5425,7 +5481,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
network="NetworkManager" ;; network="NetworkManager" ;;
8) # Budgie Desktop: 8) # Budgie Desktop:
deskpkgs="${basepkgs[*]} budgie lightdm-gtk-greeter arc-gtk-theme papirus-icon-theme network-manager-applet ${terminal}" deskpkgs="${basepkgs[*]} budgie lightdm-gtk-greeter arc-gtk-theme papirus-icon-theme nautilus network-manager-applet xdg-user-dirs ${terminal}"
displaymanager="lightdm" displaymanager="lightdm"
network="NetworkManager" ;; network="NetworkManager" ;;
@@ -5435,7 +5491,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
network="NetworkManager" ;; network="NetworkManager" ;;
10) # Mate Desktop: 10) # Mate Desktop:
deskpkgs="${basepkgs[*]} mate mate-terminal mate-media blueman network-manager-applet mate-power-manager system-config-printer lightdm-gtk-greeter" deskpkgs="${basepkgs[*]} mate mate-terminal mate-media blueman network-manager-applet mate-power-manager system-config-printer lightdm-gtk-greeter xdg-user-dirs"
displaymanager="lightdm" displaymanager="lightdm"
bluetooth="bluetooth" bluetooth="bluetooth"
network="NetworkManager" ;; network="NetworkManager" ;;
@@ -5461,8 +5517,8 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
if [[ -n "${zram}" ]]; then if [[ -n "${zram}" ]]; then
custarray+=("${zram}") custarray+=("${zram}")
fi fi
if [[ -n "${vgapkgs}" ]]; then if [[ -n "${gfxpkgs[*]}" ]]; then
custarray+=("${vgapkgs}") custarray+=("${gfxpkgs[*]}")
fi fi
if [[ "${greeternmbr}" =~ ^(1|2|3|)$ ]]; then if [[ "${greeternmbr}" =~ ^(1|2|3|)$ ]]; then
custarray+=("${greeter}") custarray+=("${greeter}")
@@ -5755,7 +5811,7 @@ ZRAMCONF
################################################################################################### ###################################################################################################
nvidia_hook() { nvidia_hook() {
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]] || [[ "${vgaconf}" == "y" && "${vendors}" =~ "Nvidia" ]]; then
if [[ "${nvname}" == "nvidia-open" ]] || [[ "${nvname}" == "nvidia" ]] || [[ "${nvname}" == "nvidia-lts" ]]; then if [[ "${nvname}" == "nvidia-open" ]] || [[ "${nvname}" == "nvidia" ]] || [[ "${nvname}" == "nvidia-lts" ]]; then
local stage_prompt="Nvidia Hook Creation" local stage_prompt="Nvidia Hook Creation"
if arch-chroot /mnt <<-NVIDIAHOOK > /dev/null 2>&1 2> amelia_log.txt ; then if arch-chroot /mnt <<-NVIDIAHOOK > /dev/null 2>&1 2> amelia_log.txt ; then
@@ -5968,16 +6024,16 @@ SECSIGN
################################################################################################### ###################################################################################################
set_vars() { set_vars() {
#### Encrypted-Setup Variables #### Encryption = yes
if [[ "${encrypt}" == "yes" ]]; then if [[ "${encrypt}" == "yes" ]]; then
# Encrypted Root Device ### Encrypted Root Device
encr_root_dev="/dev/mapper/${ENCROOT}" encr_root_dev="/dev/mapper/${ENCROOT}"
# Encrypted Root Options ### Encrypted Root Options
encr_root_opts="rd.luks.name=$(blkid -s UUID -o value "${root_dev}")=${ENCROOT}" encr_root_opts="rd.luks.name=$(blkid -s UUID -o value "${root_dev}")=${ENCROOT}"
# Encryption / Kernel Parameters ### Encryption_Kernel Parameters
encr_root_bootopts="${encr_root_opts} root=${encr_root_dev}" encr_root_bootopts="${encr_root_opts} root=${encr_root_dev}"
#---------------------------------------------------------------------------------------------------------
### Encrypted Swap Setup ### Swap Setup (Encryption)
## Encrypted Swap Partition ## Encrypted Swap Partition
if [[ "${swapmode}" == "1" ]]; then if [[ "${swapmode}" == "1" ]]; then
# Encrypted Swap Partition Options # Encrypted Swap Partition Options
@@ -6000,70 +6056,60 @@ set_vars() {
# Zram Swap Kernel Parameters # Zram Swap Kernel Parameters
zram_bootopts="zswap.enabled=0" zram_bootopts="zswap.enabled=0"
fi fi
#---------------------------------------------------------------------------------------------------------
### Graphics Setup (Encryption) ### Graphics Setup (Encryption)
## Mkinitcpio Modules (Encryption)
MODULES=("${fs_mod}")
## Mkinitcpio Hooks (Encryption)
HOOKS=()
## Graphics Kernel Parameters
vga_bootopts=()
# Nvidia Only
if [[ "${vendor}" == "Nvidia" ]]; then
HOOKS+=(systemd keyboard autodetect microcode modconf sd-vconsole block sd-encrypt filesystems fsck)
# Other Vendors/Multi-Vendors
else
HOOKS+=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)
fi
## Configuration = 'Yes' ## Configuration = 'Yes'
if [[ "${vgaconf}" == "y" ]]; then if [[ "${vgaconf}" == "y" ]]; then
# Intel
if [[ "${vendor}" == "Intel" ]]; then
# Mkinitcpio Modules (Encryption)
mkinitcpio_mods="MODULES=(${fs_mod})"
# Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)"
# Nvidia # Nvidia
elif [[ "${vendor}" == "Nvidia" ]]; then if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
# Mkinitcpio Modules (Encryption) [Nvidia KMS] MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
mkinitcpio_mods="MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm ${fs_mod})" vga_bootopts+=(nvidia.NVreg_UsePageAttributeTable=1)
# Configure KMS setting
if [[ "${intelcount}" -ge "1" || "${amdcount}" -ge "1" ]]; then
# Multi GPU Vendor Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)"
else
# Nvidia GPU Vendor Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(systemd keyboard autodetect microcode modconf sd-vconsole block sd-encrypt filesystems fsck)"
fi
# Graphics Kernel Parameters
vga_bootopts=(nvidia.NVreg_UsePageAttributeTable=1)
# Disable GSP Firmware # Disable GSP Firmware
if [[ "${nogsp}" == "y" ]]; then if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi fi
# Enable (Experimental) Low Latency Interrupts
# Enable Experimental Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1) vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi fi
# Amd fi
elif [[ "${vendor}" == "AMD" ]]; then
# Mkinitcpio Hooks (Encryption) # AMD
mkinitcpio_hooks="HOOKS=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)" if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
# Graphics Kernel Parameters if [[ -n "${islands}" ]]; then
vga_bootopts=(amdgpu.dc=1) MODULES+=(amdgpu)
fi
# 'Southern Islands' support # 'Southern Islands' support
if [[ "${islands}" == "1" ]]; then if [[ "${islands}" == "1" ]]; then
# Mkinitcpio Modules (Encryption) vga_bootopts+=(amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1)
mkinitcpio_mods="MODULES=(amdgpu ${fs_mod})"
# Graphics Kernel Parameters
vga_bootopts+=(radeon.si_support=0 amdgpu.si_support=1)
# 'Sea Islands' support # 'Sea Islands' support
elif [[ "${islands}" == "2" ]]; then elif [[ "${islands}" == "2" ]]; then
# Mkinitcpio Modules (Encryption) vga_bootopts+=(amdgpu.dc=1 radeon.cik_support=0 amdgpu.cik_support=1)
mkinitcpio_mods="MODULES=(amdgpu ${fs_mod})"
# Graphics Kernel Parameters
vga_bootopts+=(radeon.cik_support=0 amdgpu.cik_support=1)
elif [[ -z "${islands}" ]]; then
# Mkinitcpio Modules (Encryption)
mkinitcpio_mods="MODULES=(${fs_mod})"
fi fi
fi fi
## Configuration = 'No'
elif [[ "${vgaconf}" == "n" ]]; then
# Mkinitcpio Modules (Encryption)
mkinitcpio_mods="MODULES=(${fs_mod})"
# Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck)"
fi fi
### Main Kernel Parameters (Encryption) #### Main Mkinitcpio Modules (Encryption)
mkinitcpio_mods="MODULES=(${MODULES[*]})"
#### Main Mkinitcpio Hooks (Encryption)
mkinitcpio_hooks="HOOKS=(${HOOKS[*]})"
#### Main Kernel Parameters (Encryption)
boot_opts=("${encr_root_bootopts}") boot_opts=("${encr_root_bootopts}")
if [[ -n "${encr_swap_bootopts}" ]]; then if [[ -n "${encr_swap_bootopts}" ]]; then
@@ -6085,78 +6131,68 @@ set_vars() {
boot_opts+=("${zram_bootopts}") boot_opts+=("${zram_bootopts}")
fi fi
#------------------------------------------------------------------------------------------------------------- #-------------------------------------------------------------------------------------------------------------
#### No Encryption
#### Unencrypted-Setup Variables
elif [[ "${encrypt}" == "no" ]]; then elif [[ "${encrypt}" == "no" ]]; then
### Swap Setup ### Swap Setup
## Zram Swap ## Zram Swap
if [[ "${swapmode}" == "3" ]]; then if [[ "${swapmode}" == "3" ]]; then
# Zram Swap Kernel Parameters # Zram Swap Kernel Parameters
zram_bootopts="zswap.enabled=0" zram_bootopts="zswap.enabled=0"
fi fi
#---------------------------------------------------------------------------------------------------------
### Graphics Setup ### Graphics Setup
## Mkinitcpio Modules
MODULES=()
## Mkinitcpio Hooks
HOOKS=()
## Graphics Kernel Parameters
vga_bootopts=()
# Nvidia Only
if [[ "${vendor}" == "Nvidia" ]]; then
HOOKS+=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems fsck)
# Other Vendors/Multi-Vendors
else
HOOKS+=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
fi
## Configuration = 'Yes' ## Configuration = 'Yes'
if [[ "${vgaconf}" == "y" ]]; then if [[ "${vgaconf}" == "y" ]]; then
# Intel
if [[ "${vendor}" == "Intel" ]]; then
# Mkinitcpio Modules
mkinitcpio_mods="MODULES=()"
# Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)"
# Nvidia # Nvidia
elif [[ "${vendor}" == "Nvidia" ]]; then if [[ "${vendor}" == "Nvidia" || "${vendors}" =~ "Nvidia" ]]; then
# Mkinitcpio Modules [Nvidia KMS] MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
mkinitcpio_mods="MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)" vga_bootopts+=(nvidia.NVreg_UsePageAttributeTable=1)
# Configure KMS setting
if [[ "${intelcount}" -ge "1" || "${amdcount}" -ge "1" ]]; then
# Multi GPU Vendor Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)"
else
# Nvidia GPU Vendor Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems fsck)"
fi
# Graphics Kernel Parameters
vga_bootopts=(nvidia.NVreg_UsePageAttributeTable=1)
# Disable GSP Firmware # Disable GSP Firmware
if [[ "${nogsp}" == "y" ]]; then if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi fi
# Enable (Experimental) Low Latency Interrupts
# Enable Experimental Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1) vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi fi
# Amd fi
elif [[ "${vendor}" == "AMD" ]]; then
# Mkinitcpio Hooks # AMD
mkinitcpio_hooks="HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)" if [[ "${vendor}" == "AMD" || "${vendors}" =~ "AMD" ]]; then
# Graphics Kernel Parameters if [[ -n "${islands}" ]]; then
vga_bootopts=(amdgpu.dc=1) MODULES+=(amdgpu)
fi
# 'Southern Islands' support # 'Southern Islands' support
if [[ "${islands}" == "1" ]]; then if [[ "${islands}" == "1" ]]; then
# Mkinitcpio Modules vga_bootopts+=(amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1)
mkinitcpio_mods="MODULES=(amdgpu)"
# Graphics Kernel Parameters
vga_bootopts+=(radeon.si_support=0 amdgpu.si_support=1)
# 'Sea Islands' support # 'Sea Islands' support
elif [[ "${islands}" == "2" ]]; then elif [[ "${islands}" == "2" ]]; then
# Mkinitcpio Modules vga_bootopts+=(amdgpu.dc=1 radeon.cik_support=0 amdgpu.cik_support=1)
mkinitcpio_mods="MODULES=(amdgpu)"
# Graphics Kernel Parameters
vga_bootopts+=(radeon.cik_support=0 amdgpu.cik_support=1)
elif [[ -z "${islands}" ]]; then
# Mkinitcpio Modules
mkinitcpio_mods="MODULES=()"
fi fi
fi fi
## Configuration = 'No'
elif [[ "${vgaconf}" == "n" ]]; then
# Mkinitcpio Modules
mkinitcpio_mods="MODULES=()"
# Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)"
fi fi
### Main Kernel Parameters #### Main Mkinitcpio Modules
mkinitcpio_mods="MODULES=(${MODULES[*]})"
#### Main Mkinitcpio Hooks
mkinitcpio_hooks="HOOKS=(${HOOKS[*]})"
#### Main Kernel Parameters
boot_opts=() boot_opts=()
if [[ "${autoroot}" == "y" ]]; then if [[ "${autoroot}" == "y" ]]; then
@@ -6508,7 +6544,7 @@ OPTIMIZED
tty="$(tty)" tty="$(tty)"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
trg="" trg=""
vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgapkgs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="") vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="")
export "${vars[@]}" export "${vars[@]}"
clear clear
first_check first_check