diff --git a/Amelia.sh b/Amelia.sh index 757b24c..ebb62bf 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -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