mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: "Dold, Wolfram" <Wolfram.Dold@allegion.com>
To: "ptxdist@pengutronix.de" <ptxdist@pengutronix.de>,
	"abbotti@mev.co.uk" <abbotti@mev.co.uk>
Cc: "Dold, Wolfram" <Wolfram.Dold@allegion.com>
Subject: Re: [ptxdist] Backspace not working in terminal (using ssh)
Date: Thu, 21 Mar 2019 10:45:57 +0000	[thread overview]
Message-ID: <a9003cd06345d3b9dbd1e0775c693d2117576866.camel@allegion.com> (raw)
In-Reply-To: <d3ae3963-d786-d5f6-fe46-34973cd90e5f@mev.co.uk>

On Wed, 2019-03-20 at 12:41 +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 already read that bash's read supports the option '-e'.
But 'bash' is not an option for us at the moment.

> 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.
> 
> Still, it's easy enough to replace the default file with a modified one 
> in your project since it uses PTXdist's "install_alternative" to install 
> it in the root file system.  See:
> 
That's the way I solved the problem right now.
> https://www.ptxdist.org/doc/ref_manual.html#install-alternative
> 
> This does mean you might need to keep track of future changes to the 
> default copy of the file in future PTXdist releases and modify your 
> local copy if relevant.
> 
Yes, I know and I actually wanted to avoid that.
But maybe, when the ptxdist developers read this thread,
they take a closer look at that and maybe it was really

Thank you for your detailed explanations and for the time to discuss
this topic with me.

-- 
Regards,
Wolfram
 

only necessary for telnet and is therefore no longer needed nowadays.
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  parent reply	other threads:[~2019-03-21 10:46 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
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           ` Dold, Wolfram [this message]
2019-03-21 11:26             ` [ptxdist] Backspace not working in terminal (using ssh) 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=a9003cd06345d3b9dbd1e0775c693d2117576866.camel@allegion.com \
    --to=wolfram.dold@allegion.com \
    --cc=abbotti@mev.co.uk \
    --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