mrjpaxton Posted January 11, 2021 Posted January 11, 2021 (edited) Hi, I have an issue that is irritating me, and I'm not sure what to do about it. So on the Helios64 page (I am also using it with the Kobol enclosure), they give you a simple command like this to use: picocom -b 1500000 /dev/ttyUSB0 This is so you can access a serial TTY without an Internet connection. My problem is that the "window size" is set back to 80x24 characters. I'm not sure why this happens. I've also noticed that it somehow sets "TERM=linux" instead of what I have in my host PC's "$TERM" which is "xterm-256color" Is this by design, or is there something strange going on that I don't understand? The thing is, I would really like to set the terminal screen size to my host's terminal size each time, whether or not I'm using a TTY, or a terminal emulator, or... whatever! It's just so annoying to have to type in "stty cols 240 rows 60" for example with a 1080p screen. Instead, I would just like picocom or some other application, whatever is supposed to be setting the TTY, to automatically set the terminal to whatever the host's is. As an aside, there have also been really strange problems where after using that "stty" command, the serial console may actually freeze. Even after quitting from picocom with Ctrl-A, Ctrl-Q, and launching again, it will still remain frozen. I would like to avoid these freezing problems since the serial TTY is supposed to be super-duper reliable (duh). Now that I think about it, the freezing may have been caused by something else in the past. I haven't had it happen in the past month or so.... So is there any way to do what I want? I would be really grateful for any help! Edited January 11, 2021 by mrjpaxton
_r9 Posted January 15, 2021 Posted January 15, 2021 Hi @mrjpaxton this forum is an opensource project that focuses mainly on the development of Armbian. So maybe you try your luck here https://wiki.archlinux.org/index.php/Working_with_the_serial_console But feel free to write here if you'll solve your issue ; )
Solution mrjpaxton Posted January 18, 2021 Author Solution Posted January 18, 2021 (edited) On 1/15/2021 at 7:45 AM, _r9 said: Hi @mrjpaxton this forum is an opensource project that focuses mainly on the development of Armbian. So maybe you try your luck here https://wiki.archlinux.org/index.php/Working_with_the_serial_console But feel free to write here if you'll solve your issue ; ) Sure thing. Luckily, it didn't take much time to figure it out. Thanks to the person who answered here: https://unix.stackexchange.com/questions/16578/resizable-serial-console-window/283206 I was able to use something POSIX standard like the "res()" shell function he described to get it working. I just put it in as a bash function in my .bashrc file and had it only call when "TERM=linux" which seems reasonable to me for now, since picocom (and the regular Linux pTTY) always seems to set the TERM variable to that. resize-term() { OLDSTTY=$(stty -g) stty raw -echo min 0 time 5 printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty IFS='[;R' read -r _ rows cols _ < /dev/tty stty "$OLDSTTY" echo "Set cols = $cols"; echo "Set rows = $rows" stty cols "$cols" rows "$rows" } [ "$TERM" == "linux" ] && resize-term Edited January 18, 2021 by mrjpaxton
Recommended Posts