When a VM is detected, vm-specific packages (i.e. 'virtualbox-guest-utils') and vm-necessary services (i.e. 'vboxservice') will be automatically installed and enabled

When 'Nvidia' graphics are detected and running the 'Nvidia.hook' is needed, 'pacman.conf' involved option will be uncommented (activated) and '/etc/pacman.d/hooks/' directory will be created
This commit is contained in:
Jane Doe 2024-02-19 17:50:25 +00:00
parent 8f5bea0416
commit fbe0e926ad

View file

@ -1077,6 +1077,20 @@ ${purple}###${nc} Graphics Setup ${purple}###${nc}
sourcetype="Proprietary" sourcetype="Proprietary"
elif [[ "${hypervisor}" != "none" ]]; then elif [[ "${hypervisor}" != "none" ]]; then
vendor="Virtual Machine" vendor="Virtual Machine"
case "${hypervisor}" in
kvm)
vmpkgs="spice spice-vdagent spice-protocol spice-gtk qemu-guest-agent"
vm_services="qemu-guest-agent" ;;
vmware)
vmpkgs="open-vm-tools"
vm_services="vmtoolsd vmware-vmblock-fuse" ;;
oracle)
vmpkgs="virtualbox-guest-utils"
vm_services="vboxservice" ;;
microsoft)
vmpkgs="hyperv"
vm_services="hv_fcopy_daemon hv_kvp_daemon hv_vss_daemon"
esac
fi fi
sleep 0.5 sleep 0.5
@ -3702,7 +3716,7 @@ ${purple}###${nc} Pacstrap System ${purple}###${nc}
fi fi
if [[ "${vendor}" == "Virtual Machine" ]]; then if [[ "${vendor}" == "Virtual Machine" ]]; then
basepkgs="base nano sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${microcode}" "${devel}"" basepkgs="base nano sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${microcode}" "${vmpkgs}" "${devel}""
elif [[ "${vendor}" == "Nvidia" ]]; then elif [[ "${vendor}" == "Nvidia" ]]; then
basepkgs="base linux-firmware nano sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${kernel}"-headers "${microcode}" "${vgapkgs}" "${wireless_reg}" "${devel}"" basepkgs="base linux-firmware nano sudo vim "${bootldr_pkgs}" "${fstools}" "${kernel}" "${kernel}"-headers "${microcode}" "${vgapkgs}" "${wireless_reg}" "${devel}""
else else
@ -3775,7 +3789,7 @@ ${purple}###${nc} Pacstrap System ${purple}###${nc}
11) # NOTE: Custom System: 11) # NOTE: Custom System:
if [[ "${vendor}" == "Virtual Machine" ]]; then if [[ "${vendor}" == "Virtual Machine" ]]; then
deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${greeter}"" deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vmpkgs}" "${greeter}""
else else
deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}" "${greeter}"" deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}" "${greeter}""
fi ;; fi ;;
@ -4054,7 +4068,7 @@ SLICK
initrd /${microcode}.img initrd /${microcode}.img
initrd /initramfs-${kernel}.img initrd /initramfs-${kernel}.img
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf && options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim} systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim} ${vm_services}
BOOTCTL BOOTCTL
elif [[ "${bootloader}" == "2" ]]; then elif [[ "${bootloader}" == "2" ]]; then
@ -4065,7 +4079,7 @@ BOOTCTL
-e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \ -e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \
/etc/default/grub && /etc/default/grub &&
grub-mkconfig -o /boot/grub/grub.cfg && grub-mkconfig -o /boot/grub/grub.cfg &&
systemctl enable ${bluetooth} ${displaymanager} ${network} ${trim} systemctl enable ${bluetooth} ${displaymanager} ${network} ${trim} ${vm_services}
GRUB GRUB
if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then
@ -4086,6 +4100,8 @@ NVIDIAGRUB
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
arch-chroot /mnt <<-NVIDIAHOOK arch-chroot /mnt <<-NVIDIAHOOK
sed -i "s|#HookDir = /etc/pacman.d/hooks/|HookDir = /etc/pacman.d/hooks/|g" /etc/pacman.conf &&
mkdir -p /etc/pacman.d/hooks/ &&
echo " echo "
[Trigger] [Trigger]
Operation=Install Operation=Install
@ -4258,13 +4274,15 @@ NRG
Defaults editor=/usr/bin/nano Defaults editor=/usr/bin/nano
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits && %wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
visudo -c /etc/sudoers.d/sudoedits && visudo -c /etc/sudoers.d/sudoedits &&
systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim} systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim} ${vm_services}
OPTIMIZED_CONF OPTIMIZED_CONF
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
arch-chroot /mnt <<-NVIDIAHOOK arch-chroot /mnt <<-NVIDIAHOOK
sed -i "s|#HookDir = /etc/pacman.d/hooks/|HookDir = /etc/pacman.d/hooks/|g" /etc/pacman.conf &&
mkdir -p /etc/pacman.d/hooks/ &&
echo " echo "
[Trigger] [Trigger]
Operation=Install Operation=Install
@ -4347,7 +4365,7 @@ SLICK
initrd /${microcode}.img initrd /${microcode}.img
initrd /initramfs-${kernel}.img initrd /initramfs-${kernel}.img
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf && options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
systemctl enable systemd-boot-update ${customservices} ${trim} systemctl enable systemd-boot-update ${customservices} ${trim} ${vm_services}
BOOTCTL BOOTCTL
elif [[ "${bootloader}" == "2" ]]; then elif [[ "${bootloader}" == "2" ]]; then
@ -4360,9 +4378,9 @@ BOOTCTL
grub-mkconfig -o /boot/grub/grub.cfg grub-mkconfig -o /boot/grub/grub.cfg
GRUB GRUB
if [[ -n "${customservices}" || -n "${trim}" ]]; then if [[ -n "${customservices}" || -n "${trim}" || -n "${vm_services}" ]]; then
arch-chroot /mnt <<-SERVICES arch-chroot /mnt <<-SERVICES
systemctl enable ${customservices} ${trim} systemctl enable ${customservices} ${trim} ${vm_services}
SERVICES SERVICES
fi fi
@ -4384,6 +4402,8 @@ NVIDIAGRUB
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
arch-chroot /mnt <<-NVIDIAHOOK arch-chroot /mnt <<-NVIDIAHOOK
sed -i "s|#HookDir = /etc/pacman.d/hooks/|HookDir = /etc/pacman.d/hooks/|g" /etc/pacman.conf &&
mkdir -p /etc/pacman.d/hooks/ &&
echo " echo "
[Trigger] [Trigger]
Operation=Install Operation=Install
@ -4442,6 +4462,8 @@ NVIDIAHOOK
greeternmbr="" greeternmbr=""
cust_bootopts="" cust_bootopts=""
bluetooth="" bluetooth=""
vmpkgs=""
vm_services=""
clear clear
first_check first_check