When logging in over a serial line, the default terminal size of 80x24
is assumed by default, which makes e.g. systemctl output scroll sideways
unnecessarily when the serial connection is running inside a larger
terminal on the host. Therefore the first thing I do after login is
usually to call 'resize' (which is enabled by default via busybox) to
determine the real size of the terminal and set the COLUMNS and LINES
environment variables accordingly.

For the sake of convenience, do that automatically when starting a login
shell as it has no downsides. Also wrap it inside an 'eval' call, partly
to silence resize's output, and partly to support shells that cannot
determine the COLUMNS and LINES variables by themselves and rely on it
being set explicitely.

Signed-off-by: Roland Hieber <r...@pengutronix.de>
---
 projectroot/etc/profile | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/projectroot/etc/profile b/projectroot/etc/profile
index 259113d3330d..f8c03b35cd11 100644
--- a/projectroot/etc/profile
+++ b/projectroot/etc/profile
@@ -7,6 +7,9 @@ if [ "$TERM" != "linux" ]; then
         stty erase ^H
 fi
 
+# don't only assume a 80x24 terminal
+eval $(resize)
+
 # source this file for subsequent shells, too
 # (will also be sourced for init-shell)
 export ENV=/etc/profile.environment
-- 
2.39.2


Reply via email to