summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2023-01-13 07:04:28 +0100
committerHelmut Grohne <helmut@subdivi.de>2023-01-13 07:04:28 +0100
commit52202bfc705e433a170e78529558556b0976ae71 (patch)
treec1089461d626b3de7bbcf775ff03ef85005edfe3
parent3fde9f313c991aa19fbcedc38a4531de9e838f8d (diff)
downloaddebvm-52202bfc705e433a170e78529558556b0976ae71.tar.gz
automatically set up agetty TERM when possible
* debvm-create will now parse a new kernel cmdline debvm.term and if present will pass its value to agetty as TERM. * debvm-run will now detect whether it is running in a terminal in non-graphic mode and pass its environment TERM variable as debvm.term to the kernel cmdline thus closing the loop.
-rwxr-xr-xbin/debvm-run3
-rwxr-xr-xshare/customize-autologin.sh5
2 files changed, 7 insertions, 1 deletions
diff --git a/bin/debvm-run b/bin/debvm-run
index c2a3f21..4f7ff44 100755
--- a/bin/debvm-run
+++ b/bin/debvm-run
@@ -250,6 +250,9 @@ if test -z "$GRAPHICAL"; then
KERNEL_CMDLINE="$KERNEL_CMDLINE console=ttyS0"
;;
esac
+ if test -t 0 && test -t 1 && test -n "$TERM"; then
+ KERNEL_CMDLINE="$KERNEL_CMDLINE debvm.term=$TERM"
+ fi
fi
if test -n "$SSHPORT"; then
diff --git a/share/customize-autologin.sh b/share/customize-autologin.sh
index 5592a03..d7df555 100755
--- a/share/customize-autologin.sh
+++ b/share/customize-autologin.sh
@@ -3,7 +3,8 @@
# SPDX-License-Identifier: MIT
#
# This is a mmdebstrap customize hook that configures automatic root login on a
-# serial console.
+# serial console. It also parses the debvm.term kernel cmdline and passes it as
+# TERM to agetty.
set -eu
@@ -15,6 +16,8 @@ mkdir "$TARGET/etc/systemd/system/$UNIT.d"
(
echo '[Service]'
+ printf '%s\n' 'ExecStartPre=/bin/sed -n -e "s/.*\\(^\\| \\)debvm\\.term=\\([^ ]*\\).*/TERM=\\2/w/run/debvmterm" /proc/cmdline'
+ echo 'EnvironmentFile=-/run/debvmterm'
echo 'ExecStart='
sed -n 's,^ExecStart=-/sbin/agetty ,&-a root ,p' "$TARGET/lib/systemd/system/$UNIT"
) > "$TARGET/etc/systemd/system/$UNIT.d/autologin.conf"