From 52202bfc705e433a170e78529558556b0976ae71 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 13 Jan 2023 07:04:28 +0100 Subject: 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. --- bin/debvm-run | 3 +++ share/customize-autologin.sh | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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" -- cgit v1.2.3