eol setting is not for the key that would take you to the end of some line-editing buffer, that's a setting of the tty line discipline.
It is for its very basic line editor, the one used when entering input for applications (like
sed) that don't have their own line editor. That editor doesn't have cursor positioning, the only editing it can do is via backspace (
stty erase), Ctrl+W (
stty werase) and Ctrl+U (
stty kill) possibly more on some systems.
It is done in the tty device driver itself in the kernel, the applications (
sed...) don't see those characters.
eol setting is only to tell that driver to recognise a different (additional) character from linefeed (aka newline aka
^J) as the line ending character. Upon entering that character, the line discipline would send the characters entered so far to the reading application.
For instance, to input text one word at a time instead of one line at a time, you could do:
stty eol ' '; cat
And you'd see that each time you press space,
cat would output the text you've entered (including that space character).
If you're at the prompt of a command that implements its own line editor, then making End move the cursor to the end of the current buffer would not be done via
stty but by specific configuration of that command (if at all).
For instance, with the
zsh shell, that would be done with:
bindkey '^[[F' end-of-line
bindkey '^[OF' end-of-line
Assuming your terminal sends the
<ESC>OF character sequence when you press that End key as your "F" suggests.
Some application will automatically bind End to their _end-of_line_ action. To do that, they will query the local termcap or terminfo terminal databases to find out what character sequence your terminal sends upon that key press.
For that, they use the
$TERM variable. If the entry for that key in that database does not match what your terminal sends, then that won't work.
You can try:
tput kend | sed -n l
To see what the database things the End key sends if your tput uses terminfo or check for your $TERM entry in /etc/termcap if using termcap. You may be able to find an entry there that more closely matches your minicom (or the terminal emulator that hosts it) behaviour.
Edit based on new info
So, most likely, you're running
minicom in a modern
xterm-like terminal and communicating over serial. At the other end of the serial line,
getty assumes you're running an at386 console (which I believe is actually the internal console driver of old PC-based AT&T systems). That is very far from a modern xterm.
Looking at a Solaris system here which in many respects is about as modern as your old AT&T system, there is a
xterm entry in terminfo but it lacks the
What you could do is upload the terminfo definition of your terminal on the machine you run minicom on (
infocmp > file), transfer that to the SysV machine, and try and compile it over there with
tic (and set
$TERM to the same value of there, set the
TERMINFO environment variable beforehand to something like
~/.terminfo if you're not administrator there). If that doesn't work because the curses version is too ancient, you could use the vt100 entry of the AT&T system instead, and just edit in the
kend=\EOF of your terminal, change the name and use
cat > my-term.info << \EOF
my-term|My VT100 compatible terminal with an end-key,
am, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>,
el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=\t,
hts=\EH, ind=\n, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=\b,
kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB,
kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP,
kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmkx=\E[?1l\E>,
sgr0=\E[m^O$<2>, smacs=^N, smkx=\E[?1h\E=,
smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, kend=\EOF
TERMINFO="$HOME/.terminfo" export TERMINFO
mkdir -p "$TERMINFO"
if [ "`tty`" = "the-serial-device" ] && [ "$TERM" = at386 ]; then
export TERM TERMINFO
the-serial-device is whatever
tty outputs when you login over serial.