1

I'm working with a derivative of Debian Buster called Armbian. It is a distribution for ARM-based devices and I am using it with a Nanopi Neo Air.

Armbian has full screen curses-based TUI apps. When I connect to this device through SSH (and Minicom) and run these apps, such as armbian-config, is shows up properly:

enter image description here

When I connect using screen (GNU screen 4.7) via the serial console, and have TERM set to anything such as screen, screen-256color, linux, etc. I still properly get ANSI colours on the command line:

enter image description here

But, when I run these curses-based TUI apps, I get garbled screens:

enter image description here

It doesn't make any difference what value I set TERM to. The terminal also becomes non-responsive and I have to reset the device to get it working again.

As some additional information, programs like VIM work just fine. So, I'm very confused.

What could be the reason for this? How could I fix this?

4
  • On a serial console, you wouldn't have 256 colors, and shouldn't set TERM (since screen only works with certain terminal descriptions). The TERM outside screen is probably "linux" (and changing that also would confuse screen). dialog doesn't use 256 colors anyway. Oct 24, 2019 at 1:17
  • @ThomasDickey It doesn't matter what I set TERM to, including "linux" which is the default, and "". Besides, 256 colors is not the problem. It displaying properly, even in black and white, is the problem.
    – Roxy
    Oct 24, 2019 at 13:00
  • The actual terminal type and locale are the places to look. It's unclear in your question what the "serial console" is. If that's via minicom, don't expect much: it doesn't handle UTF-8. Oct 24, 2019 at 13:11
  • Did you ever find a solution to this, @Roxy? I’ve encountered a similar problem with Dive, a Docker utility that has a TUI.
    – Ed Sabol
    Apr 18, 2021 at 21:52

1 Answer 1

1

Assuming that your mention of "serial console" refers to minicom, it's likely that minicom doesn't work with UTF-8 (which is what a typical locale setting would tell ncurses to use: see the manual page discussion of NCURSES_NO_UTF8_ACS). If you use POSIX locale (i.e., LC_ALL=C), then ncurses will not attempt to use Unicode line-drawing, and generally fit within minicom's limitations. Some non-UTF-8 locale such as en_US might also work.

vim doesn't try to draw lines, so you wouldn't notice a problem with that (though some plugins may do this, the question doesn't mention that aspect).

1
  • A serial console is a device console through an RS232 or similar serial interface. It's microcontroller terminology. But I'll try the locale suggestion. Thanks.
    – Roxy
    Oct 25, 2019 at 2:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .