aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Töpper <atsutane@freethoughts.de>2025-09-14 22:04:51 +0200
committerThorsten Töpper <atsutane@freethoughts.de>2025-09-14 22:04:51 +0200
commit2e025e3b04aa9a58348159870e3838033b1a2537 (patch)
tree428b24541414e230d71a14a6a1a695578093aa04
parent4a674cc7e7f17fb654c33f2477fdf0a540d44dbf (diff)
downloadarchiso-2e025e3b04aa9a58348159870e3838033b1a2537.tar.gz
archiso-2e025e3b04aa9a58348159870e3838033b1a2537.tar.bz2
copy autologin from releng to smalldeploy
-rw-r--r--configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf3
-rwxr-xr-xconfigs/smalldeploy/airootfs/root/.automated_script.sh44
-rwxr-xr-xconfigs/smalldeploy/airootfs/root/.bash_login3
-rw-r--r--configs/smalldeploy/packages.x86_641
4 files changed, 50 insertions, 1 deletions
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
new file mode 100644
index 0000000..b9d22eb
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM
diff --git a/configs/smalldeploy/airootfs/root/.automated_script.sh b/configs/smalldeploy/airootfs/root/.automated_script.sh
new file mode 100755
index 0000000..f7f3ced
--- /dev/null
+++ b/configs/smalldeploy/airootfs/root/.automated_script.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+script_cmdline() {
+ local param
+ for param in $(</proc/cmdline); do
+ case "${param}" in
+ script=*)
+ echo "${param#*=}"
+ return 0
+ ;;
+ esac
+ done
+}
+
+automated_script() {
+ local script rt
+ script="$(script_cmdline)"
+ if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
+ if [[ "${script}" =~ ^((http|https|ftp|tftp)://) ]]; then
+ # there's no synchronization for network availability before executing this script
+ printf '%s: waiting for network-online.target\n' "$0"
+ until systemctl --quiet is-active network-online.target; do
+ sleep 1
+ done
+ printf '%s: downloading %s\n' "$0" "${script}"
+ curl "${script}" --location --retry-connrefused --retry 10 --fail -s -o /tmp/startup_script
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ printf '%s: executing automated script\n' "$0"
+ # note that script is executed when other services (like pacman-init) may be still in progress, please
+ # synchronize to "systemctl is-system-running --wait" when your script depends on other services
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/configs/smalldeploy/airootfs/root/.bash_login b/configs/smalldeploy/airootfs/root/.bash_login
new file mode 100755
index 0000000..28f6a36
--- /dev/null
+++ b/configs/smalldeploy/airootfs/root/.bash_login
@@ -0,0 +1,3 @@
+# Execution permission not always applied on the iso
+chmod 755 ~/.automated_script.sh
+~/.automated_script.sh
diff --git a/configs/smalldeploy/packages.x86_64 b/configs/smalldeploy/packages.x86_64
index 621bf1e..08d5509 100644
--- a/configs/smalldeploy/packages.x86_64
+++ b/configs/smalldeploy/packages.x86_64
@@ -13,7 +13,6 @@ nfs-utils
open-vm-tools
openssh
parted
-pv
qemu-guest-agent
screen
syslinux