Ho alcuni dispositivi collegati a un server a termine seriale Cisco; molti funzionano bene quando vado telnet
direttamente alla porta su Cisco. Tuttavia, ho alcuni dispositivi testardi che non useranno Backspacepoiché è mappato in Telnet per impostazione predefinita.
Se è importante, telnet da rxvt
sotto Debian squeeze (in una X Window). TERM
è impostato rxvt
, ma non importa se io uso vt100
, vt101
o xterm
... la modifica TERM
non ha alcun effetto. Ho iniziato la strada del cambiamento in TERM
base a ciò che ho visto in una vecchia FAQ di Kermit . FWIW, stty erase ^h
e stty erase ^?
non funziona neanche.
Ho notato che Backspacefunziona correttamente su questi dispositivi se uso un socket TCP non elaborato da netcat
... ie nc 192.168.12.117 2006
; tuttavia, mi imbatto in altri problemi con password non nascoste o paginazione del terminale.
Come posso forzare selettivamente Telnet e SSH per mappare Backspacea CtrlHper questi dispositivi? Inoltre, quali criteri devo usare per valutare se si tratta di un bug nel dispositivo?
MODIFICARE
Nel caso sia importante, questo è l'output di showkey -a
per le chiavi in questione ... ^?
corrisponde Backspaceed ^H
è CtrlH. Sembra che dovrei avvicinarmi quando guardo The Linux Keyboard and Console Howto , ma non riesco a decifrare cosa posso fare per cambiarlo. Ho provato vari incantesimi loadkeys
senza alcun effetto.
[mpenning@hotcoffee docs]$ sudo showkey -a
Press any keys - Ctrl-D will terminate this program
^? 127 0177 0x7f
^H 8 0010 0x08
Sto includendo anche l'output pertinente da dumpkeys
... questa è la mappatura corrente nel mio sistema (che non funziona su alcuni dispositivi in questione). Se riuscissi a capire come fare Backspaceper fare la stessa cosa CtrlH, avrei una soluzione.
[mpenning@hotcoffee docs]$ sudo dumpkeys | grep -Ei "backspace|127"
keycode 8 = BackSpace ampersand braceleft
keycode 14 = BackSpace Delete
control keycode 14 = BackSpace
keycode 127 =
[mpenning@hotcoffee docs]$
ssty erase '^?'
? Se i dispositivi insistono su aC-h
, non è la chiamata di Telnet, è il terminale (emulatore).