diff options
author | Helmut Grohne <helmut@subdivi.de> | 2023-03-06 18:27:18 +0100 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2023-03-06 18:27:18 +0100 |
commit | 1918b1febae9add1edda2fe1b410617002b8afdc (patch) | |
tree | dfa84e5d1393075178a73d3046dee4577b1d1bf0 /share | |
parent | 67544c5703998d9f6a67b9f6e7b76b4abf12c72b (diff) | |
download | debvm-1918b1febae9add1edda2fe1b410617002b8afdc.tar.gz |
debvm-create: autodetect size of serial consoles
We now extend /etc/profile to invoke setterm -resize when detecting an
interactive login on a serial console. This should fix 90% of wrongly
sized serial consoles.
Diffstat (limited to 'share')
-rwxr-xr-x | share/customize-autologin.sh | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/share/customize-autologin.sh b/share/customize-autologin.sh index 9effa29..da40342 100755 --- a/share/customize-autologin.sh +++ b/share/customize-autologin.sh @@ -4,12 +4,26 @@ # # This is a mmdebstrap customize hook that configures automatic root login on a # serial console. It also parses the TERM kernel cmdline and passes it as -# TERM to agetty. +# TERM to agetty. Since serial consoles do not transmit SIGWINCH, it causes +# the shell to run setterm -resize on interactive, serial logins. set -eu TARGET=$1 +cat >"$TARGET/etc/profile.d/resize_serial_term.sh" <<'EOF' +if test -n "${TERM-}" && test -n "${PS1-}"; then + case "$(tty)" in + /dev/tty[0-9]*) + ;; + /dev/tty*) + # Assume that every other tty is serial and should be resized. + setterm -resize + ;; + esac +fi +EOF + if test "$(dpkg-query --root "$TARGET" -f '${db:Status-Status}' -W systemd-sysv 2>/dev/null)" = installed; then UNIT=serial-getty@.service |