Add: 'Swap Setup' stage > Enabling 'systemd-oomd' in the installed system is now supported.

Add: 'Machine Detection' stage > 'Disable Watchdogs' > Specified AMD watchdog to blacklist in /etc/modprobe.d
Add: 'Automatic Partitioning' stage > 'wipefs' now takes place before partitioning selected drive.
Add: 'mesa-utils' package has been added to the AMD graphics setup.
This commit is contained in:
Jane Doe 2025-02-01 10:10:49 +00:00
parent ebd533e7cc
commit 961271a966

View file

@ -1,8 +1,8 @@
#!/bin/bash
# Amelia Installer
# https://gitlab.com/prism7/archery
# Version: 8.6.1
# Source: https://gitlab.com/prism7/archery
# Version: 8.7.0
set -euo pipefail
###################################################################################################
@ -487,7 +487,7 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Machi
microcode="intel-ucode"
nrg_plc="x86_energy_perf_policy"
cpu_name="Intel"
else
elif [[ "${CPU}" == *"AuthenticAMD"* ]]; then
microcode="amd-ucode"
cpu_name="AMD"
fi
@ -524,6 +524,7 @@ Enter [Y/n]: "
read -r -p "
==> " kill_watchdog
echo
kill_watchdog="${kill_watchdog:-y}"
kill_watchdog="${kill_watchdog,,}"
@ -1374,7 +1375,38 @@ Enter a number: "
invalid
return 1 ;;
esac
ok
if [[ "${swapmode}" != "4" ]]; then
sleep 0.2
YELLOW "
> Enable ${nc}systemd-oomd ${yellow}for enhanced 'OOM' efficiency? [Y/n]"
BLUE "
Enter [Y/n]: "
read -r -p "
==> " oomd
echo
oomd="${oomd:-y}"
oomd="${oomd,,}"
if [[ "${oomd}" == "y" ]]; then
YELLOW "
### 'Systemd-oomd' has been selected
"
elif [[ "${oomd}" == "n" ]]; then
skip
else
y_n
return 1
fi
fi
ok
if [[ "${vga_slct}" == "yes" ]]; then
local stage_prompt="Graphics Setup"
completion_err
@ -1694,7 +1726,7 @@ vga_conf() {
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"
elif [[ "${vendor}" == "AMD" ]]; then
vgapkgs="libva-mesa-driver mesa-vdpau opencl-headers rocm-opencl-runtime vkd3d vulkan-mesa-layers vulkan-radeon"
vgapkgs="libva-mesa-driver mesa-utils mesa-vdpau opencl-headers rocm-opencl-runtime vkd3d vulkan-mesa-layers vulkan-radeon"
sleep 0.2
YELLOW "
@ -2753,6 +2785,7 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
case "${preset}" in
1)
wipefs -af "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -o "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n2:0:0 -t2:8304 -c2:ROOT "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
@ -2764,6 +2797,7 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
fi ;;
2)
until set_swapsize; do : ; done
wipefs -af "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -o "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n2:0:+"${swapsize}"G -t2:8200 -c2:SWAP "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
@ -2775,6 +2809,7 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
ok
fi ;;
3)
wipefs -af "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -o "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n2:0:+"${rootsize}"G -t2:8304 -c2:ROOT "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
@ -2786,6 +2821,7 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
ok
fi ;;
4)
wipefs -af "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
until set_swapsize; do : ; done
sgdisk -o "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > /dev/null 2> amelia_log.txt || stage_fail
@ -5832,6 +5868,7 @@ PARALLEL
stage_fail
fi
fi
if [[ "${multilib}" == "y" ]]; then
local stage_prompt="Multilib Configuration"
if arch-chroot /mnt <<-MULTILIB > /dev/null 2>&1 2> amelia_log.txt ; then
@ -5843,6 +5880,7 @@ MULTILIB
stage_fail
fi
fi
if [[ "${CPU}" == *"GenuineIntel"* && "${kill_watchdog}" == "y" ]]; then
local stage_prompt="Intel Watchdog Configuration"
if arch-chroot /mnt <<-INTEL_WATCHDOG > /dev/null 2>&1 2> amelia_log.txt ; then
@ -5852,6 +5890,31 @@ INTEL_WATCHDOG
else
stage_fail
fi
elif [[ "${CPU}" == *"AuthenticAMD"* && "${kill_watchdog}" == "y" ]]; then
local stage_prompt="AMD Watchdog Configuration"
if arch-chroot /mnt <<-AMD_WATCHDOG > /dev/null 2>&1 2> amelia_log.txt ; then
echo "blacklist sp5100_tco" | tee /etc/modprobe.d/blacklist.conf || exit
AMD_WATCHDOG
stage_ok
else
stage_fail
fi
fi
if [[ "${oomd}" == "y" ]]; then
local stage_prompt="Systemd-oomd Service Activation"
if arch-chroot /mnt <<-SYSTEMD_OOMD > /dev/null 2>&1 2> amelia_log.txt ; then
mkdir -p /etc/systemd/system.conf.d > /dev/null 2>&1 || exit
cat <<-SET_OOMD > /etc/systemd/system.conf.d/00-oomd.conf || exit
[Manager]
DefaultMemoryAccounting=yes
SET_OOMD
systemctl enable systemd-oomd || exit
SYSTEMD_OOMD
stage_ok
else
stage_fail
fi
fi
}
###################################################################################################
@ -6357,11 +6420,11 @@ POLKIT
SystemMaxUse=100M
JOURNAL
mkdir -p /etc/systemd/user.conf.d > /dev/null 2>&1 || exit
cat <<-USER > /etc/systemd/user.conf.d/00-userd.conf || exit
cat <<-TIMEOUT > /etc/systemd/user.conf.d/00-timeout.conf || exit
[Manager]
DefaultTimeoutStopSec=5s
DefaultTimeoutAbortSec=5s
USER
TIMEOUT
sed -i 's|^hosts.*|hosts: mymachines mdns_minimal resolve [!UNAVAIL=return] files myhostname dns|g' /etc/nsswitch.conf || exit
sed -i 's/ interface = [^ ]*/ interface = all/g' /etc/ipp-usb/ipp-usb.conf || exit
sed -i "/# set linenumbers/"'s/^#//' /etc/nanorc || exit
@ -6411,7 +6474,7 @@ OPTIMIZED
tty="$(tty)"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
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="" parallel="" parallelnmbr="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="")
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="" parallel="" parallelnmbr="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="")
export "${vars[@]}"
clear
first_check