From 29eb30e39245225db64a5fa6a83082bc4cace9ca Mon Sep 17 00:00:00 2001 From: Vladislav Nepogodin Date: Tue, 29 Mar 2022 14:51:07 +0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20move=20scripts=20back=20to=20arc?= =?UTF-8?q?hiso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archiso/airootfs/etc/mkinitcpio.conf | 2 +- archiso/airootfs/etc/pacman-more.conf | 6 - .../etc/systemd/network/20-ethernet.network | 3 + .../systemd-gpt-auto-generator | 1 + .../getty@tty1.service.d/autologin.conf | 2 +- archiso/airootfs/root/.automated_script.sh | 2 +- archiso/airootfs/usr/local/bin/dmcheck | 37 ++++++ archiso/airootfs/usr/local/bin/remove-nvidia | 123 ++++++++++++++++++ archiso/airootfs/usr/local/bin/removeun | 75 +++++++++++ .../airootfs/usr/local/bin/removeun-online | 14 ++ archiso/packages.x86_64 | 1 + archiso/syslinux/archiso_pxe-linux.cfg | 12 +- 12 files changed, 263 insertions(+), 15 deletions(-) create mode 120000 archiso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator create mode 100755 archiso/airootfs/usr/local/bin/dmcheck create mode 100755 archiso/airootfs/usr/local/bin/remove-nvidia create mode 100755 archiso/airootfs/usr/local/bin/removeun create mode 100755 archiso/airootfs/usr/local/bin/removeun-online diff --git a/archiso/airootfs/etc/mkinitcpio.conf b/archiso/airootfs/etc/mkinitcpio.conf index bfa6813..9f5397c 100644 --- a/archiso/airootfs/etc/mkinitcpio.conf +++ b/archiso/airootfs/etc/mkinitcpio.conf @@ -49,7 +49,7 @@ FILES=() # ## NOTE: If you have /usr on a separate partition, you MUST include the # usr, fsck and shutdown hooks. -HOOKS=(base udev modconf memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard) +HOOKS=(base udev modconf memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard) # COMPRESSION # Use this to compress the initramfs image. By default, gzip compression diff --git a/archiso/airootfs/etc/pacman-more.conf b/archiso/airootfs/etc/pacman-more.conf index 57fcc23..29f7c6c 100644 --- a/archiso/airootfs/etc/pacman-more.conf +++ b/archiso/airootfs/etc/pacman-more.conf @@ -70,15 +70,9 @@ LocalFileSigLevel = Optional # # cachyos repos -#[cachyos-desktop-v3] -#Include = /etc/pacman.d/cachyos-v3-mirrorlist - #[cachyos-v3] #Include = /etc/pacman.d/cachyos-v3-mirrorlist -[cachyos-desktop] -Include = /etc/pacman.d/cachyos-mirrorlist - [cachyos] Include = /etc/pacman.d/cachyos-mirrorlist diff --git a/archiso/airootfs/etc/systemd/network/20-ethernet.network b/archiso/airootfs/etc/systemd/network/20-ethernet.network index f2a7d60..9ada778 100644 --- a/archiso/airootfs/etc/systemd/network/20-ethernet.network +++ b/archiso/airootfs/etc/systemd/network/20-ethernet.network @@ -1,4 +1,7 @@ [Match] +# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). +# See https://bugs.archlinux.org/task/70892 +# Instead match by globbing the network interface name. Name=en* Name=eth* diff --git a/archiso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/archiso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/archiso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/archiso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/archiso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf index 6fba7e5..b10ceb2 100644 --- a/archiso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ b/archiso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -1,3 +1,3 @@ [Service] ExecStart= -ExecStart=-/sbin/agetty --autologin liveuser --noclear %I 38400 linux +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin liveuser - $TERM diff --git a/archiso/airootfs/root/.automated_script.sh b/archiso/airootfs/root/.automated_script.sh index 5c0c316..52c47e6 100755 --- a/archiso/airootfs/root/.automated_script.sh +++ b/archiso/airootfs/root/.automated_script.sh @@ -16,7 +16,7 @@ automated_script () script="$(script_cmdline)" if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then - curl "${script}" --location --retry-connrefused -s -o /tmp/startup_script >/dev/null + curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null rt=$? else cp "${script}" /tmp/startup_script diff --git a/archiso/airootfs/usr/local/bin/dmcheck b/archiso/airootfs/usr/local/bin/dmcheck new file mode 100755 index 0000000..7a93faf --- /dev/null +++ b/archiso/airootfs/usr/local/bin/dmcheck @@ -0,0 +1,37 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Erik Dubois +# Website : https://www.erikdubois.be +# Website : https://www.arcolinux.info +# Website : https://www.arcolinux.com +# Website : https://www.arcolinuxd.com +# Website : https://www.arcolinuxb.com +# Website : https://www.arcolinuxiso.com +# Website : https://www.arcolinuxforum.com +############################################################################### +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +############################################################################### + +package=ly +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/ly.service /etc/systemd/system/display-manager.service +fi +package=sddm +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service +fi +package=gdm +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service +fi +package=lxdm +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service +fi +package=lightdm +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service +fi diff --git a/archiso/airootfs/usr/local/bin/remove-nvidia b/archiso/airootfs/usr/local/bin/remove-nvidia new file mode 100755 index 0000000..0573f05 --- /dev/null +++ b/archiso/airootfs/usr/local/bin/remove-nvidia @@ -0,0 +1,123 @@ +#!/bin/bash +# grabed from https://github.com/xerolinux/xerolinux_iso +# +# driver=free or driver=nonfree - grub and efi +echo "Start cachyos-remove-nvidia" +kernel_cmdline(){ + for param in $(cat /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; return 0 ;; + $1) return 0 ;; + *) continue ;; + esac + done + [ -n "${2}" ] && echo "${2}" + return 1 +} + +get_driver(){ + echo $(kernel_cmdline driver) +} + +get_virtmach(){ + echo $(kernel_cmdline virtmach) +} + +while [ -e "/var/lib/pacman/db.lck" ]; +do + echo 'Pacman is not ready yet. Will try again in 10 seconds.' + seconds=$(($seconds + 10)) + sleep 10 + if [[ "$seconds" == "30" ]]; then + echo 'Warning: removing pacman db.lck!' + rm /var/lib/pacman/db.lck + fi +done + +# free = remove nvidia keep nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "free" ]]; then + pacman -R --noconfirm nvidia-dkms nvidia-utils +fi + +#freenonouveau = remove nvidia and nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "freenonouveau" ]]; then + pacman -R --noconfirm nvidia-dkms nvidia-utils + pacman -R --noconfirm xf86-video-nouveau +fi + +#nonfree = keepin nvidia and nouveau +selection=$(get_driver) +echo "Selection was "$selection +if [[ $selection == "nonfree" ]]; then + echo "#################################" + echo "We keep nvidia and nouveau onboard" + echo "#################################" +fi + +# nonfreenonouveau : keep nvidia and remove nouveau +selection=$(get_driver) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "nonfreenonouveau" ]]; then + pacman -R --noconfirm xf86-video-nouveau +fi + +# remove virtual machines +selection=$(get_virtmach) +echo "#################################" +echo "Selection was "$selection +echo "#################################" +if [[ $selection == "none" ]]; then + + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils --noconfirm + echo "Removed virtualbox-guest-utils" + fi + + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils-nox --noconfirm + echo "Removed virtualbox-guest-utils-nox" + fi + + #remove vmware + if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then + rm /etc/xdg/autostart/vmware-user.desktop + echo "Removed vmware-user.desktop" + fi + + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + echo "Disabled vmtoolsd.service" + pacman -Rns open-vm-tools --noconfirm + echo "Removed open-vm-tools" + fi + + if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then + rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service + echo "Removed vmtoolsd.service if still exists" + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + pacman -Rns qemu-guest-agent --noconfirm + echo "Removed qemu-guest-agent" + fi + +fi + +echo "#################################" +echo "End cachyos-remove-nvidia" +echo "#################################" diff --git a/archiso/airootfs/usr/local/bin/removeun b/archiso/airootfs/usr/local/bin/removeun new file mode 100755 index 0000000..6f30e1d --- /dev/null +++ b/archiso/airootfs/usr/local/bin/removeun @@ -0,0 +1,75 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Erik Dubois +# Website : https://www.erikdubois.be +# Website : https://www.arcolinux.info +# Website : https://www.arcolinux.com +# Website : https://www.arcolinuxd.com +# Website : https://www.arcolinuxb.com +# Website : https://www.arcolinuxiso.com +# Website : https://www.arcolinuxforum.com +############################################################################### +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +############################################################################### + +_clean_packages(){ + + local _packages_to_remove=( + gparted + grsync + cachyos-calamares + cachyos-calamares-config + edk2-shell + boost-libs + doxygen + expect + gpart + tcpdump + arch-install-scripts + squashfs-tools + extra-cmake-modules + cmake + elinks + yaml-cpp + syslinux + clonezilla + memtest86+ + mkinitcpio-archiso +) + local xx + # @ does one by one to avoid errors in the entire process + # * can be used to treat all packages in one command + for xx in ${_packages_to_remove[@]}; do pacman -Rsc $xx --noconfirm; done + +} + +_try_v3(){ + /lib/ld-linux-x86-64.so.2 --help | grep "x86-64-v3 (supported, searched)" > /dev/null + + local pacman_conf="/etc/pacman.conf" + local pacman_conf_cachyos="/etc/pacman-more.conf" + local pacman_conf_path_backup="/etc/pacman.conf.bak" + + if [ $? -eq 0 ]; then + echo "x86-64-v3 is supported" + + sed -i 's/Architecture = auto/#Architecture = auto/' $pacman_conf_cachyos + sed -i 's/#//g' $pacman_conf_cachyos + + echo "backup old config" + mv $pacman_conf $pacman_conf_path_backup + + echo "CachyOS -v3 Repo changed" + mv $pacman_conf_cachyos $pacman_conf + + else + echo "x86-64-v3 is not supported" + fi + +} + +_clean_packages +_try_v3 diff --git a/archiso/airootfs/usr/local/bin/removeun-online b/archiso/airootfs/usr/local/bin/removeun-online new file mode 100755 index 0000000..4a10dad --- /dev/null +++ b/archiso/airootfs/usr/local/bin/removeun-online @@ -0,0 +1,14 @@ +#!/bin/bash + +_clean_packages(){ + local _leave_these_packages="base\nbase-devel\ncachyos-keyring\ncachyos-mirrorlist\ncachyos-v3-mirrorlist\ncachyos-hello\ngrub\nefibootmgr\n" + local _packages_to_remove=($(comm -23 <(pacman -Qqt | sort) <({ pacman -Qqg base-devel; printf $_leave_these_packages; } | sort -u))) + local xx + # @ does one by one to avoid errors in the entire process + # * can be used to treat all packages in one command + for xx in ${_packages_to_remove[@]}; do pacman -Rsc $xx --noconfirm; done + + rm /etc/sddm.conf || true +} + +_clean_packages diff --git a/archiso/packages.x86_64 b/archiso/packages.x86_64 index 5dc42ec..387785c 100644 --- a/archiso/packages.x86_64 +++ b/archiso/packages.x86_64 @@ -50,6 +50,7 @@ libusb-compat linux-cachyos linux-atm linux-firmware +linux-firmware-marvell lsscsi lvm2 lynx diff --git a/archiso/syslinux/archiso_pxe-linux.cfg b/archiso/syslinux/archiso_pxe-linux.cfg index d74d67d..d2485a1 100644 --- a/archiso/syslinux/archiso_pxe-linux.cfg +++ b/archiso/syslinux/archiso_pxe-linux.cfg @@ -4,8 +4,8 @@ Boot the CachyOS install medium using NBD. It allows you to install CachyOS or perform system maintenance. ENDTEXT MENU LABEL CachyOS install medium (x86_64, NBD) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify SYSAPPEND 3 @@ -15,8 +15,8 @@ Boot the CachyOS live medium using NFS. It allows you to install CachyOS or perform system maintenance. ENDTEXT MENU LABEL CachyOS install medium (x86_64, NFS) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify SYSAPPEND 3 @@ -26,7 +26,7 @@ Boot the CachyOS live medium using HTTP. It allows you to install CachyOS or perform system maintenance. ENDTEXT MENU LABEL CachyOS install medium (x86_64, HTTP) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify SYSAPPEND 3