From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] Backspace not working in terminal (using ssh)
Date: Wed, 20 Mar 2019 16:41:45 +0100 [thread overview]
Message-ID: <20190320154145.jjp4t34eqqozc3ic@pengutronix.de> (raw)
In-Reply-To: <d3ae3963-d786-d5f6-fe46-34973cd90e5f@mev.co.uk>
On Wed, Mar 20, 2019 at 12:41:47PM +0000, Ian Abbott wrote:
> On 20/03/2019 09:15, Dold, Wolfram wrote:
> > On Tue, 2019-03-19 at 17:42 +0000, Ian Abbott wrote:
> > > On 19/03/2019 12:33, Dold, Wolfram wrote:
> > > > Hi Ian,
> > > > On Tue, 2019-03-19 at 12:06 +0000, Ian Abbott wrote:
> > > > > On 19/03/2019 09:17, Dold, Wolfram wrote:
> > > > > > Hi there,
> > > > > > when we connect via ssh to our embedded device, the backspace key does not work.
> > > > > > During the analysis we found out that the passage
> > > > > >
> > > > > > # This fixes the backspace when telnetting in.
> > > > > > if [ "$TERM" != "linux" ]; then
> > > > > > stty erase ^H
> > > > > > fi
> > > > > >
> > > > > > from the file '/etc/profile' contained in ptxdist.
> > > > > >
> > > > > > Now I want to ask, how best to fix this behavior?
> > > > > > Can the passage simply be omitted? (At least the comment lets me assume that, because there 'telnet' is
> > > > > > mentioned
> > > > > > and
> > > > > > that is no longer necessarily state of the art).
> > > > > > Or does omitting it lead to other unwanted side effects?
> > > > > >
> > > > > > Any help would be appreciated.
> > > > > >
> > > > >
> > > > > Code can interpret input characters in various ways independently of the
> > > > > stty settings. For example, if the "Command Line Editing" feature is
> > > > > enabled in the Busybox configuration, the Busybox "ash" and "hush"
> > > > > shells' interactive line editing will handle both ASCII DEL and ASCII BS
> > > > > as a "backspace" operation. This can be enabled in the PTXdist
> > > > > menuconfig via:
> > > > >
> > > > > Shell & Console Tools --->
> > > > > -*- busybox --->
> > > > > Settings --->
> > > > > [*] Command Line Editing
> > > > >
> > > > > This sets "PTXCONF_BUSYBOX_FEATURE_EDITING=y" in the ptxconfig file.
> > > > >
> > > >
> > > > The feature is already enabled.
> > > > But it does not work for me. It only works when I delete the stty command from /etc/profile,
> > > >
> > > > > If you are using Bash or some other other program with READLINE support,
> > > > > I think it handles ASCII BS and ASCII DEL similarly to Busybox's command
> > > > > line editing feature.
> > > >
> > > > We do not use bash, we use the busybox shell.
> > >
> > > Just for comparison, I'm using the busybox "ash" shell. (There are two
> > > shells in Busybox - "ash" and "hush".)
> > >
> > > My SSH client is set to send ASCII DEL when the backspace is pressed,
> > > and sets TERM="xterm" or TERM="xterm-256color". The stty command on my
> > > target system shows "erase ^H".
> > >
> > > Both the backspace key (which sends ASCII DEL) and the CTRL-H sequence
> > > (which sends ASCII BS) result in a backspace operation on the ash
> > > command line.
> > >
> > > If I run a command that doesn't do any fancy line editing, such as:
> > >
> > > od -c
> > >
> > > then the ASCII DEL characters get passed through to standard input and
> > > the ASCII BS characters erase the previous characters (as per the stty
> > > erase ^H setting).
> > >
> > > If I change the stty setting:
> > >
> > > stty erase '^?'
> > >
> > > then both ASCII DEL and ASCII BS result in a backspace operation on the
> > > ash command line, but for commands that do not do any fancy line
> > > editing, the ASCII BS is passed through to standard input and the ASCII
> > > DEL erases the previous character as per the stty erase '^?' setting.
> > >
> > > So in summary, the PTXCONF_BUSYBOX_FEATURE_EDITING option seems to work
> > > for me, at least in the "ash" shell. (I haven't tried the "hush" shell.)
> > >
> > > I am using BusyBox 1.29.3 from PTXdist 2019.03.0.
> > >
> > Sorry, I didn't describe the problem detailed enough:
> > When I type in the shell, everything works as you described it.
> > The problem that the backspace key doesn't work occurs when we
> > use the busybox-read function from a shell script.
> >
> > We are using ash from busybox.
> > We are using BusyBox v1.29.3 from ptxdist 2019.03.1
> >
> > Sorry again for the miscommunication.
>
> I understand your problem now, the BusyBox ash "read" built-in does not have
> line editing support, so only the kernel-level, n_tty line-discipline
> editing features can be used. (Bash's "read" built-in supports the "-e"
> option to allow line-editing when the input is from a tty.)
>
> I've no idea why that bit of the /etc/profile file is there, but I guess it
> must have suited one of the PTXdist developers at the time. A "git blame"
> only revealed that the whole file was added in 2006, so I don't know how
> relevant that part of it is today.
This code was moved around some more. It was actually introduced in the
initial import from CVS in 2003 :-). Telnet works just fine without this,
so I guess this is no longer needed.
I'll be happy to apply a patch that removes this.
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
next prev parent reply other threads:[~2019-03-20 15:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-19 9:17 Dold, Wolfram
2019-03-19 10:31 ` Roland Hieber
2019-03-19 10:57 ` Dold, Wolfram
2019-03-19 12:06 ` Ian Abbott
2019-03-19 12:33 ` Dold, Wolfram
2019-03-19 17:42 ` Ian Abbott
2019-03-20 9:15 ` Dold, Wolfram
2019-03-20 12:41 ` Ian Abbott
2019-03-20 15:41 ` Michael Olbrich [this message]
2019-03-21 12:46 ` Ian Abbott
2019-03-21 13:33 ` Michael Olbrich
2019-03-21 14:47 ` Ian Abbott
2019-03-21 15:24 ` Ian Abbott
2019-03-22 7:55 ` Michael Olbrich
2019-03-22 10:16 ` Ian Abbott
2019-03-22 12:30 ` [ptxdist] [PATCH] projectroot: remove setting stty erase character to "^H" Dold, Wolfram
2019-03-21 10:45 ` [ptxdist] Backspace not working in terminal (using ssh) Dold, Wolfram
2019-03-21 11:26 ` Michael Olbrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190320154145.jjp4t34eqqozc3ic@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox