Modem-HOWTO David S.Lawyer
- v0.12, December 2000
+ v0.13, February 2001
Please freely copy and distribute (sell or give away) this document
-in any format. Forward any corrections and comments to the document
+in any format. Send any corrections and comments to the document
maintainer. You may create a derivative work and distribute it
provided that you:
- Send your derivative work (in the most suitable format such as
- sgml) to the LDP (Linux Documentation Project) or the like for
- posting on the Internet. If not the LDP, then let the LDP know
- where it is available. Except for a translation, send a copy to the
- previous maintainer's url as shown in the latest version.
+ If it's not a translation: Email a copy of your derivative work
+ to the LDP (Linux Documentation Project) for free distribution on the
+ Internet in a format LDP accepts. Also email such a copy to the
+ author(s) and maintainer (could be the same person).
License the derivative work in the spirit of this license or use
GPL. Include a copyright notice and at least a pointer to the
license used.
@@ -100,9 +100,8 @@ be a trademark). Such trademarks belong to their respective owners.
Credits
Most of the original Serial-HOWTO was written by Greg Hankins.
-
-He also rewrote many contributions by others in order to maintain
+
+H e also rewrote many contributions by others in order to maintain
continuity in the writing style and flow. He wrote: ``Thanks to
everyone who has contributed or commented, the list of people has
gotten too long to list (somewhere over one hundred). Special thanks
@@ -117,7 +116,8 @@ sites see: .
Various formats are available. If you only want to quickly check the
date of the latest version look at and compare
-it to this version: v2.09 October 2000 . New in this version is: link to Serial Driver homepage, ttySD etc.
+it to this version: v2.10 February 2001 . New in this version is:
+v2.10 EIA-485, frame errors on networks, gkermit, firewire
Related HOWTO's re the Serial Port
-Two gettys best for modems (avoid for terminals) are:
+Two gettys best for modems (avoid for directly connected terminals) are:
mgetty: the best one for modems; works for terminals too but inferior
uugetty: for modems only; part of the getty_ps package
-Simple gettys to use if you don't use a text-terminal. Most
+Simple gettys to use if you don't use a real text-terminal. Most
Linux users use one of these at their monitor:
mingetty
@@ -3094,7 +3114,8 @@ the minimum number of 3 conductors: transmit, receive, and common
signal ground) you should let getty know this by using a "local" flag.
The format of this depends on which getty you use.
- Programs get Stopped
+ If getty run from command line: Programs get stopped
+
You should normally run getty from inside /etc/inittab
and not from the command line or else some programs running on the
terminal may be unexpectedly suspended (stopped). Here's why (skip to
@@ -3197,8 +3218,8 @@ DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200
# 9600 bps Dumb Terminal entry
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
-
Note that the DT number you use here must be the same as the DT
-number that you use in /etc/inittab.
+
Note that the DT38400, DT19200, etc. are just labels and must
+be the same that you use in /etc/inittab.
If you want, you can make Problems with Editors
There may be some problems with using both emacs and vi on some
-terminals.
+terminals. A few terminals have no escape key (ESC) so you may need
+to type Ctrl-[ to get ESC.
- emacs and ^S, ^Q
+ emacs
If software flow control exists, then the ^S command in emacs will
-freeze the display. The ^Q command will unfreeze the display. The
+freeze the display. The ^Q command will unfreeze the display. One
fix is to map this to another key-press by configuring emacs that way.
+Some terminals have meta keys although you may need to setup the
+terminal to create a meta key.
vi and Cursor-Keys
-
Vi uses the esc-key as a command to exit insert mode. If one hits
-an arrow-key (cursor-key) an escape sequence (starting with the ESC
-character) is sent to the host. Vi must distinguish between these two
-meanings of ESC. A smart vi (such as vim if configured for it) is
-able to detect the difference by noting the time between the ESC and
-the next key. If it's a short time, then it's likely that a cursor
-key was pressed. Use "help cursor-keys" in vim to find out more.
+
Vi uses the esc-key as a command to exit insert mode.
+Unfortunately for most terminals the arrow-keys send an an escape
+sequence (starting with the ESC character) to the host. Vi must
+distinguish between these two meanings of ESC. A smart vi (such as
+vim if configured for it) is able to detect the difference by noting
+the time between the ESC and the next key. If it's a short time, then
+it's likely that a cursor key was pressed. Use "help cursor-keys" in
+vim to find out more.
Here's another way to fix this. On VT terminals the left-arrow-key
may be either set to send ESC [ D or ESC O D. The other arrow keys
@@ -4250,7 +4275,7 @@ enable the function (and related) keys (including the arrow keys). An
application enables these keys by sending the "ks" string to the
terminal. Whoever wrote the termcap reasoned that if an application
wants to enable these keys, then they should be put into "Application
-Mode" since this is an "application", but you don't want this.
+Key Mode" since this is an "application", but you don't want this.
The Linux console has no "ks" string so you can't fall into this trap
at the console. For other terminals you may need to edit the termcap
@@ -4264,6 +4289,41 @@ O D (so you don't need to edit termcap): See vim help for
keys to see what they send but they may be set to send something
different when you're in an editor.
+ Bugs in Bash
+
There have been problems with the readline interface to the Bash
+shell. Bash 2.01 (1998) had a readline interface which was quite
+corrupted if one used a dumb terminal. This was fixed in later
+versions. One problem still outstanding is that if certain terminal
+keys send bytes with the high order bit set to 1, then Bash seems to
+ignore the terminfo entries for them. I've reported this as a bug in
+Bash. Other programs such as the vim editor and the lynx browser work
+OK with such keys.
+
+To work around this problem one may define what these keys should do
+in Bash by putting such definitions into /etc/inputrc. For
+example, A Wyse 60 will send D0-D3 when the arrow-keys are hit
+provided the terminal is in "application key mode". After modifying
+the terminfo to reflect this, they still wouldn't work on the command
+line in the Bash shell. So I explicitly defined the arrow-keys in
+/etc/inputrc like this:
+
+
+# Arrow keys in 8 bit keypad mode: Sends d0-d4. -ap means application.
+$if term=wy60-25-ap
+set enable-keypad on
+"\xd0": backward-char
+"\xd1": forward-char
+"\xd2": next-history
+"\xd3": previous-history
+$endif
+
+
+If the terminal is already in "application key mode" there's no need
+to "set enable-keypad on". enable-keypad will send the terminal the
+escape sequence named smkx in terminfo (which for wyse60 is \E~3 and
+makes the arrow keys send D1-D3). Many other application send this
+without needing to be told to do so.
+
Color ls Corruption
If
- or
-
-If you didn't do any of these two, then your program could by buggy or
-you interaction with it fatally illegal.
+ or
+
+If you didn't do any of these two, then the program you're running
+could by buggy or you interaction with it fatally illegal.
If you want to quit the program you were running and you can't do it
by the usual methods (some programs have special keys you must hit to
@@ -4308,7 +4368,7 @@ using hardware flow-control is to prevent such freezes.
This includes the case of a "frozen display" = "hung terminal" of
the previous section.
- Symptoms and Some Fixes
+ Symptoms and some fixes
When the display doesn't look right, or when what you type doesn't
display correctly (if at all), or nothing happens when you type a
command, you may have a corrupted terminal interface. In rare cases
@@ -4328,12 +4388,12 @@ that the interface got corrupted by something you did. Three mistakes
you might have made to corrupt the interface are:
-
-
+
+
- Sent Terminal Binary Characters
+ Sent terminal binary characters
Your terminal will change its characteristics if sent certain
escape sequences or control characters. It you inadvertently try to
display a binary file, it might by chance contain such sequences which
@@ -4365,7 +4425,7 @@ instead of fixing the problem, "reset" only compounds it by disabling
communication between the terminal and computer. You will likely need
to log in again and hope the getty sets "clocal". If you see a login
prompt without asking for it, you're in luck. Otherwise see for how to get a login
+id="symptoms_" name="Symptoms and some fixes"> for how to get a login
prompt. You should try out "reset" before you need it and use
"setterm -reset" if "reset" logs you out or otherwise doesn't work
right. I submitted a bug report in Mar. 2000 so "reset" could be
@@ -4375,8 +4435,8 @@ For the case where you see strange "graphic" characters instead of
the normal ones, pressing ^O may switch back to the normal letters.
The "reset" command also does this but it resets everything else too.
-
- Abnormally Exited a Program
+
+ Abnormally exited a program
Large application programs (such as editors) often use the stty
command (or the like) in their code to temporarily change the stty
configuration when you are running the program. This may put the
@@ -4472,7 +4532,7 @@ using Shift-PageUp. This is frequently needed since the scrolling is
often too fast to stop using ^S. Once you've scrolled backwards
Shift-PageDown will scroll forward again.
- Take Next Character Literally
+ Take next character literally
^V sends the next character typed (usually a control character)
directly thru the device driver with no action or interpretation.
Echoed back are two ASCII characters such as ^C.
@@ -4547,7 +4607,7 @@ command line. Since "echo ..." will execute faster (since it doesn't
do any lookups) it's good for using in shell scripts which run at
start-up, etc.
- Saving Changes
+ Saving changes
When you turn off the terminal the changes you made will be lost
(unless you saved them in non-volatile terminal memory by going into
set-up mode and saving it). If you want to use them again without
@@ -4556,94 +4616,6 @@ shell function. Then run it when you want to make the changes. One
way to make the changes semi-permanent is to put the commands in a
file that runs each time you login or start up the computer.
- Serial Console
-
-
This will turn a text-terminal (or emulator PC) into a "serial
-console". Many messages from the system are normally only sent to the
-console (the PC monitor). Some of the messages sent to the console at
-boot-time may also be seen on any terminal after the boot succeeds by
-typing the command: dmesg. If the boot failed this will not be of any
-use since the terminal can't work without an operating system. It's
-possible to modify the Linux kernel so as to make a terminal serve as
-the console and receive all the messages from Linux intended for the
-console. Unfortunately, the messages from the BIOS (which display on
-the monitor when a PC is first started) will not display on this
-terminal (but still display on the monitor).
-
-Some people do this when they run a PC without a monitor or keyboard.
-Normally, a PC will not start up without a keyboard and video card but
-some BIOSs permit it. If you are lucky enough to have such a BIOS
-that supports "console re-direct" you will likely then need to setup
-the BIOS using the CMOS menus when you start your PC.
-
-The method of creating a "serial console" depends on your kernel
-version. In any case serial support needs to be compiled into the
-kernel and not supplied as a module.
-
- For Kernels 2.2 or higher
-
The instructions for creating a serial-console are included with
-source code documentation in the file: serial-console.txt. Normally,
-the device /dev/console is linked to tty0 (the PC console). For a
-serial-console you create a new /dev/console by
-
-mknod -m 622 console c 5 1
-
-You must also put statements regarding the serial-console into
-/etc/lilo.conf and then run lilo. This is because the equivalent of
-"setserial" needs to be run early before the kernel is loaded so that
-the serial-console can display the booting. See the above mentioned
-documentation and the man page for lilo.conf for more details.
-
-Here is an example /etc/lilo.conf file contents (for ttyS0):
-
-prompt
-timeout=50
-boot = /dev/sda
-vga = normal # force sane state
-install = /boot/boot.b
-message = /boot/message
-image = /vmlinuz
-root = /dev/sda1
-label = console
-serial = 0,9600n8
-append = "console=ttyS0"
-
-
- For Kernels before 2.2
-
The Linux Journal in April 1997 had an article on patching
-the Linux kernel. You add a couple of #defines at the start of
-src/linux/drivers/char/console.c:
-
-
-#define CONFIG_SERIAL_ECHO
-#define SERIAL_ECHO_PORT 0x2f8 /* Serial port address */
-
-The following was not in the Linux Journal article.
-In kernel 2.+ (and earlier ??) you need to also set the baud
-rate (unless 9600 is OK). Find these 2 lines:
-
-serial_echo_outb(0x00, UART_DLM); /* 9600 baud */
-serial_echo_outb(0x0c, UART_DLL);
-
-Change 0x0c in the line above (depending on the baud rate you want):
-
-115200 baud: 0x01 19200 baud: 0x06 2400 baud: 0x30
- 57600 baud: 0x02 9600 baud: 0x0c 1200 baud: 0x60
- 38400 baud: 0x03 4800 baud: 0x18
-
-
-If you currently use the console to select which operating system to
-boot (using LILO), but would like to do this from a terminal, then you
-need to add a line to the /etc/lilo.conf file. See the manual page
-for lilo.conf and search for "serial=".
-
- Can I Run Linux without a Monitor (PC Console) ?
-
Yes, you use a terminal and make it behave like the console per
-above. You will likely still need a video card since most BIOSs
-require one to get the PC started. Your BIOS may also require a
-keyboard to get started or it may have an option where you can set the
-BIOS not to require a keyboard.
-
Multiple Sessions
The " Special Uses for a Terminal
+Make a Serial Terminal the Console
+
+
This will turn a text-terminal (or emulator PC) into a "serial
+console". Many messages from the system are normally only sent to the
+console (the PC monitor). Some of the messages sent to the console at
+boot-time may also be seen on any terminal after the boot succeeds by
+typing the command: dmesg. If the boot failed this will not be of any
+use since the terminal can't work without an operating system. It's
+possible to modify the Linux kernel so as to make a terminal serve as
+the console and receive all the messages from Linux intended for the
+console. Unfortunately, the messages from the BIOS (which display on
+the monitor when a PC is first started) will not display on this
+terminal (but still display on the monitor).
+
+Some people do this when they run a PC without a monitor or keyboard.
+Normally, a PC will not start up without a keyboard and video card but
+some BIOSs permit it. If you are lucky enough to have such a BIOS
+that supports "console re-direct" you will likely then need to setup
+the BIOS using the CMOS menus when you start your PC.
+
+The method of creating a "serial console" depends on your kernel
+version. In any case serial support needs to be compiled into the
+kernel and not supplied as a module.
+
+ For Kernels 2.2 or higher
+
The instructions for creating a serial-console are included with
+source code documentation in the file: serial-console.txt. Normally,
+the device /dev/console is linked to tty0 (the PC console). For a
+serial-console you create a new /dev/console by
+
+mknod -m 622 console c 5 1
+
+You must also put statements regarding the serial-console into
+/etc/lilo.conf and then run lilo. This is because the equivalent of
+"setserial" needs to be run early before the kernel is loaded so that
+the serial-console can display the booting. See the above mentioned
+documentation and the man page for lilo.conf for more details.
+
+Here is an example /etc/lilo.conf file contents (for ttyS0):
+
+prompt
+timeout=50
+boot = /dev/sda
+vga = normal # force sane state
+install = /boot/boot.b
+message = /boot/message
+image = /vmlinuz
+root = /dev/sda1
+label = console
+serial = 0,9600n8
+append = "console=ttyS0"
+
+
+ For Kernels before 2.2
+
The Linux Journal in April 1997 had an article on patching
+the Linux kernel. You add a couple of #defines at the start of
+src/linux/drivers/char/console.c:
+
+
+#define CONFIG_SERIAL_ECHO
+#define SERIAL_ECHO_PORT 0x2f8 /* Serial port address */
+
+The following was not in the Linux Journal article.
+In kernel 2.+ (and earlier ??) you need to also set the baud
+rate (unless 9600 is OK). Find these 2 lines:
+
+serial_echo_outb(0x00, UART_DLM); /* 9600 baud */
+serial_echo_outb(0x0c, UART_DLL);
+
+Change 0x0c in the line above (depending on the baud rate you want):
+
+115200 baud: 0x01 19200 baud: 0x06 2400 baud: 0x30
+ 57600 baud: 0x02 9600 baud: 0x0c 1200 baud: 0x60
+ 38400 baud: 0x03 4800 baud: 0x18
+
+
+If you currently use the console to select which operating system to
+boot (using LILO), but would like to do this from a terminal, then you
+need to add a line to the /etc/lilo.conf file. See the manual page
+for lilo.conf and search for "serial=".
+
+ Run Linux without a Monitor
+
One way to do this is to just use a terminal (serial console) for
+the monitor See . You will likely still need a video card since most
+BIOSs require one to get the PC started. Your BIOS may also require a
+keyboard to get started or it may have an option where you can set the
+BIOS not to require a keyboard.
+
+If you have a keyboardless terminal, it can also be used as a monitor
+by use of the ttysnoop program. As of yet, it doesn't work like a
+console since it doesn't get all the initial boot-time messages. See
+
+
+ Use a Keyboardless Terminal as the Monitor
+ How it works
+
While you might think that a terminal without a keyboard is
+useless it is possible to use it as the monitor and type on the PC's
+own keyboard. This may be done by using the spy program
+ One way to set it up
+
This is not the ideal setup since ttysnoop runs so late that the
+login prompt doesn't appear. This example is for a wyse60 terminal on
+ttyS2 and the missing monitor/PC-keyboard on tty1. It uses the agetty
+program for getty as supplied by the Debian distribution. Your getty
+may require a different format.
+
+In /etc/inittab:
+
+1:2345:respawn:/sbin/getty 38400 tty1 wyse60 -l /usr/sbin/ttysnoops
+
+Note that ttysnoop/ttysnoops is a client-server combo so the
+"s" is not a typo.
+
+In /etc/snooptab:
+
+# tty snoopdev type execpgm
+tty1 /dev/ttyS3 init /usr/local/bin/sterm
+
+In the above, a script named sterm is used to run the stty program.
+You may not need this or may want to use it for another purpose.
+Here's the example sterm script in /usr/local/bin/sterm:
+
+
+#!/bin/sh
+stty rows 24
+/bin/login $@
+
+
Trouble-Shooting
If you suspect that the problem is a hardware problem, see the section. If the problem
-involves the serial port itself see the Serial-HOWTO.
+id="repair_" name="Repair and Diagnose"> section. If it's the keyboard
+see . If the problem involves
+the serial port itself see the Serial-HOWTO.
Here is a list of possible problems:
@@ -4752,14 +4903,14 @@ Here is a list of possible problems:
Suspect the terminal is defective.
-
+ Characters you
+ type are "foreign" letters/symbols.
Either skips
over some text or displays some text OK and hangs.
- with
- message "Stopped"
+ with message "Stopped"
(console error message)
@@ -4894,6 +5045,18 @@ need to write to your terminal, it's reasonable not to use lockfiles.
See Lock-Files in the Serial-HOWTO.
Getty Respawning Too Rapidly
+
+ No modem control signal
+
If getty can't open and/or use a port because of the lack of a
+positive modem control voltage on one of the pins, then getty might
+be killed. Then, per the instructions in inittab, getty respawns and
+tries again, only to be killed again, etc., etc. You may see an error
+message like: Getty respawning too fast: disabled for 5 minutes.
+Instead of "Getty" it may give the label (such as S2) of the line in
+/etc/inittab from where from where getty was called. Try using
+the "local" option with getty and/or check the modem control settings
+and voltages.
+
No serial support
Linux provides serial support either by selecting it when
compiling the kernel or by loading the serial module. This
@@ -4901,21 +5064,13 @@ compiling the kernel or by loading the serial module. This
into the kernel nor provided by a serial module. You many use the
"lsmod" command to see if the serial module is loaded.
- No modem control signal
-
If getty can't open and/or use a port because of the lack of a
-positive modem control voltage on one of the pins, then getty might
-be killed. Then, per the instructions in inittab, getty respawns and
-tries again, only to be killed again, etc., etc. You may see an error
-message indicating that due to getty respawning too rapidly it has been
-temporarily disabled. Try using the "local" option with getty and/or
-check the modem control settings and voltages.
-
- Key Shorted
-
Another possible cause of getty respawning is if a keyboard key is
-shorted, giving the same result as if the key was continuously held
-down. With auto-repeat enabled, this "types" thousands characters to
-the login prompt. Look for a screen filled with all the same
-character (in some cases with 2 or more different characters).
+ Key shorted
+
Another possible cause of getty respawning too rapidly is if a
+keyboard key is shorted, giving the same result as if the key was
+continuously held down. With auto-repeat enabled, this "types"
+thousands of characters to the login prompt. Look for a screen filled
+with all the same character (in some cases with 2 or more different
+characters).
Fails Just After Login
If you can login OK but then you can't use the terminal it may be
@@ -4976,15 +5131,16 @@ Try it with a return to see if it fixes it.
No Login Prompt
If there's no login prompt displayed after hitting the return-key
-a few times, first make sure that the terminal is powered on. Is the
-computer it's connected to up and running? Use the "top" or "ps"
-programs to make sure that a getty (or login) process is running on
-the terminal. If getty isn't running, carefully check the format for
-calling getty in /etc/inittab. Make sure that it includes the current
-runlevel (shown by typing the command "runlevel") and that it is valid
-for your flavor of getty. Sometimes killing getty (it will restart
-automatically) helps.
+a few times then check the following: Use the "top" or "ps" programs
+to make sure that a getty (or login) process is actually running on
+the terminal. Is the terminal getting power? Is the null modem cable
+plugged in to the correct ports on both the terminal and computer?
+If getty isn't running, carefully check the format for calling getty
+in /etc/inittab. Make sure that it includes the current runlevel
+(shown by typing the command "runlevel") and that it is valid for your
+flavor of getty. Sometimes killing getty (it will restart
+automatically) helps.
Terminal was working OK
Although hardware failures are possible, the problem is likely due
@@ -5001,12 +5157,11 @@ mode, etc. At this point two different avenues of approach are (you
may pursue more than one at a time).
-
- Measure Voltages
+
+
- Diagnose Problem from the Console
+ Diagnose problem from the console
One test is to try to copy a something to the terminal (It might
be a good idea to try this near the start of the installation process
before setting up getty). You may use the Linux copy command such as:"cp
@@ -5018,7 +5173,7 @@ sure the baud rates and the bits/byte are the same. If nothing
happens verify that the port is alive with a voltmeter per the next
section.
- Measure Voltages
+ Measure voltages
If you have a voltmeter handy check for a negative voltage (-4v to
-15v) at pin 3 (receive data) at the terminal side of the null-modem
cable. The positive lead of the meter should be connected to a good
@@ -5046,6 +5201,22 @@ you could get a false high AC reading when looking at the idle DC of
good device (such as another terminal or an external modem) to the
serial port and see if it works OK.
+ Types Garbage
+
+
If what you see on the screen is not what you type but looks like
+a foreign language, math symbols, line-drawing character, etc. then
+it could be that the many of bytes that are echoed to your terminal
+have the high order bit set (when it shouldn't be). You are looking
+at the character set (or part of a character set) which has high order
+bit set. This may happen if you have the baud rate set wrong. Try
+stty -F /dev/ttyS? from another terminal to check if the baud rate is
+correct.
+
+Perhaps the wrong character set (font) has been installed. An
+erroneous escape sequence sent to the terminal could have switched
+character sets. If you are using the mapchan program to change the
+keyboard mapping, it could be incorrect.
+
Slow: pauses of several seconds between bursts of characters
You likely have mis-set interrupts> See the Serial-HOWTO section
starting with "Slow:"
@@ -5107,7 +5278,7 @@ select "local" from a menu (or press a certain key). See .
Serial Electrical Test Equipment
- Breakout Gadgets, etc.
+ Breakout gadgets, etc.
While a multimeter (used as a voltmeter) may be all that you need
for just a few terminals, simple special test equipment has been made
for testing serial port lines. Some are called "breakout ... " where
@@ -5124,7 +5295,7 @@ light means on (+12 v) while red means off (-12 v). They also sell a
"RS-232 Serial Jumper Box" which permits connecting the pins anyway
you choose.
- Measuring Voltages
+ Measuring voltages
Any voltmeter or multimeter, even the cheapest that sells for
about $10, should work fine. Trying to use other methods for
checking voltage is tricky. Don't use a LED unless it has a series
@@ -5143,7 +5314,7 @@ clip into the desired opening. The paper clip's diameter should be no
larger than the pins so that it doesn't damage the contact. Clip
an alligator clip (or the like) to the paper clip to connect up.
- Taste Voltage
+ Taste voltage
As a last resort, if you have no test equipment and are willing to
risk getting shocked (or even electrocuted) you can always taste the
voltage. Before touching one of the test leads with your tongue, test
@@ -5384,12 +5555,6 @@ reduces the number of conductors needed (and reduces the number of
pins needed on the chip). It's a similar scheme to what is called a
"crossbar switch".
- One Press Types 2 Different Characters
-
If, due to a defect, conductors 3 and 4 become shorted together
-then pressing the 3-B key will also short 4 and B and the chip will
-think that both keys 3-B and 4-B have been pressed. This is likely to
-type 2 different characters when all you wanted was one character.
-
Modern vs Old Keyboards
While the modern keyboard and the old fashioned type look about
the same, the mechanics of operation are different. The old ones have
@@ -5401,18 +5566,25 @@ printed circuits (including contact points). When you press a key,
the two "printed" sheets are pressed together at a certain point,
closing the contacts printed on the sheets at that point.
- Keyboard Doesn't Work At All
-
If none of the keys work try another keyboard (if you have one) to
-verify that the keyboard is the problem. The most likely cause is a
-broken wire inside the cord (cable) that connects it to the terminal.
-The most likely location of the break is at either end of the cord.
-Try wigging the ends of the cord while tapping on a key to see if it
-works intermittently. If you find a bad spot, you may carefully cut
-into the cord with a knife at the bad spot and splice the broken
-conductor. Sometimes just a drop of solder will splice it. Seal up
-the cord with electrical tape, glue, or caulk.
+ One Press Types 2 Different Characters
+
If, due to a defect, conductors 3 and 4 become shorted together
+then pressing the 3-B key will also short 4 and B and the chip will
+think that both keys 3-B and 4-B have been pressed. This is likely to
+type 2 different characters when all you wanted was one character.
- Typing b Displays bb, etc. (doubled)
+ Keyboard doesn't work at all
+
If none of the keys work try another keyboard (if you have one) to
+verify that the keyboard is the problem. One cause is a broken wire
+inside the cord (cable) that connects it to the terminal. The most
+likely location of the break is at either end of the cord. Try
+wigging the ends of the cord while tapping on a key to see if it works
+intermittently. If you find a bad spot, you may carefully cut into
+the cord with a knife at the bad spot and splice the broken conductor.
+Sometimes just a drop of solder will splice it. Seal up the cord with
+electrical tape, glue, or caulk. A keyboard that has gotten wet may
+not work at all until it's dry.
+
+ Typing b displays bb, etc. (doubled)
If all characters appear double there is likely nothing wrong with
the keyboard. Instead, your terminal has likely been incorrectly set
up for half-duplex (HDX or local echo=on) and every character you type
@@ -5421,29 +5593,55 @@ your host computer. If the two characters are not the same, there may
be a short circuit inside your keyboard. See
- The Keyboard Types By Itself
-
If a key is shorted out it is likely to type out a large number of
-the same character if auto-repeat is enabled. If more than one key is
-shorted out then repeating sequences of a few characters will be
-typed. This may cause getty to respawn too fast if it happens at the
-login prompt. See . The fix
-is to clean the contacts per .
+ Row upon row of the same character appears
+
This may happen when auto-repeat is enabled and a key is held
+pressed down (or the like). It may be a key that sticks down when
+typed or it could be an electrical short that has the same
+effect.
- Liquid Spilled on the Keyboard
+ Key sticks in down position (individual switches)
+
If it's a stuck key on a keyboard with individual switches, a good
+way to fix it is to remove the keycap (if it's removable). See
+id="kbd_sw" name="Keyboards with individual switches">. Use a small
+amount of cleaner on the push rod. Some keys stick due to stickiness
+on the keycap bottom surface (and where it hits on the switch). If
+the key sticks in the fully down position this could be the problem.
+So clean this this area too.
+
+Hitting the key a lot to exercise it may help, but the problem is
+likely to return. If you suspect the push rod is sticking you might
+try to type it while pushing sideways on it with a small screwdriver.
+You should push it sideways in one of the four directions and try
+different directions. What you are doing by this is attempting to
+force out a foreign particle that is rubbing on the side of the key's
+push-rod and making it stick. Again, the problem may return later.
+
+To test the key, push it down very slowly and see if it sticks. Also
+push it sideways a little as you're pushing it down. If you hit it
+fast or push it straight down, then you may not observe the
+stickiness.
+
+ Key electrically shorted
+
If you suspect that a key is shorted out fix it by cleaning the
+contacts per .
+If this problem happens at the login prompt see .
+
+ Liquid spilled on the keyboard
If water or watery liquid has been spilled on the keyboard (or if
-it was exposed to rain, heavy dew, or dampness) some keys may not work
-right. The dampness may cause a key to short out (like it was pressed
-down all the time) and you may see the screen fill up with that letter
-if auto-repeat is enabled. If it's gotten wet and then partially (or
-fully) dried out, certain keys may not work due to deposits on the
-contact surfaces. For the modern type of keyboard, one may readily
-take apart the plastic sheets inside and dry/clean them. For the old
-type one may let it dry out in the sun or oven (low temp.). When it's
-dry it may still need contact cleaner on some keys as explained below.
+it was exposed to rain, heavy dew, or dampness) some (or all) keys may
+not work right. The dampness may cause a key to short out (like it
+was pressed down all the time) and you may see the screen fill up with
+that letter if auto-repeat is enabled. If it's gotten wet and then
+partially (or fully) dried out, certain keys may not work due to
+deposits on the contact surfaces. For the modern type of keyboard,
+one may readily take apart the plastic sheets inside and dry/clean
+them. For the old type one may let it dry out in the sun or oven (low
+temp.). When it's dry it may still need contact cleaner on some keys
+as explained below.
- Cleaning Keyboard Contacts
- Keyboards with Membranes
+ Cleaning keyboard contacts
+ Keyboards with membranes
On some newer keyboards, the plastic sheets (membranes) are easy
to remove for inspection and cleaning if needed. You only need to
remove several screws to take apart the keyboard and get to the
@@ -5453,7 +5651,7 @@ glue to put back (probably not worthwhile to repair). Such a keyboard
may sometimes be made to work by flexing, twisting, and/or pounding
the assembly containing the plastic sheets.
- Keyboards with Individual Switches
+ Keyboards with individual switches
What follows is for older keyboards that have separate hard
plastic switches for each key. Before going to all the work of
cleaning electrical contacts first try turning the keyboard
@@ -5482,7 +5680,7 @@ liquid get under nearby keys where it may pick up dust and then seep
(with the dust) into adjacent key switches. If you make this mistake
you may fix one key but damage nearby keys. If this should happen,
immediately work (repeatedly press) the affected nearby keys until
-they work OK.
+they continue to work OK.
You might tilt the keyboard so that the cleaner flows better into the
contacts. For the CIT101e terminal with an Alps keyboard, this means
@@ -5528,7 +5726,7 @@ fly up into the air when taking apart a key switch.
List of Linux Terminal Commands
- Sending a Command to the Terminal
+ Sending a command to the terminal
: long options
: terse options
@@ -5537,7 +5735,7 @@ fly up into the air when taking apart a key switch.
setterm -reset: sends reset string
- Configuring the Terminal Device Driver
+ Configuring the terminal device driver
:
@@ -5586,7 +5784,7 @@ url="http://www.wyse.com/service/support/kbase/wyseterm.asp"
comp.terminals is the newsgroup for terminals
- Books Related to Terminals
+ Books related to terminals
EIA-232 serial port see .
@@ -5596,7 +5794,7 @@ url="http://www.wyse.com/service/support/kbase/wyseterm.asp"
name="Termcap Documents">
- Entire Books on Terminals
+ Entire books on terminals
As far as I know, there is no satisfactory book on text terminals
Although this HOWTO has been published as a book, I don't suggest that
that you buy it if you have access to the online version which I'm
@@ -5629,7 +5827,7 @@ used ANSI terminals used today on Unix-like systems. Although it does
discuss them a little it doesn't show the various wiring schemes used
to connect them to serial ports.
- Books with Chapters on Terminals
+ Books with chapters on terminals
These chapters cover almost nothing about the terminals themselves
and their capabilities. Rather, these chapters are mostly about how
to set up the computer (and its terminal driver) to work with
@@ -5816,7 +6014,7 @@ of the work. Today, the functionality of this chip is usually built
into another chip.
Voltages
- Voltage for a Bit
+ Voltage for a bit
At the EIA-232 serial port, voltages are bipolar (positive or
negative with respect to ground) and should be about 12 volts in
magnitude (some are 5 or 10 volts). For the transmit and receive
@@ -5827,7 +6025,7 @@ normally both true and positive. Although the receive and transmit
pins are inverted logic, other pins (modem control lines) are normal
logic with a positive voltage being true (or "on" or "asserted") and a
negative voltage being false (or "off" or "negated"). Zero voltage
-has no meaning (except it usually means that the unit is powered off).
+has no meaning (except it usually means that the PC is powered off).
A range of voltages is allowed. The specs say the magnitude of a
transmitted signal should be between 5 and 15 volts but must never
@@ -5844,7 +6042,7 @@ was once the standard) so that if you try to use test equipment
designed for testing 3-5 volt computer logic (TTL) on the 12 volts of a
serial port, it may damage the test equipment.
- Voltage Sequence for a Byte
+ Voltage sequence for a byte
The transmit pin (TxD) is held at -12 V (mark) at idle when nothing
is being sent. To start a byte it jumps to +12 V (space) for the
start bit and remains at +12 V for the duration (period) of the start
@@ -6200,10 +6398,16 @@ url="http://www.wyse.com/products/gpt/index.htm" name="Wyse terminals">.
Wyse 60
Display adjustments (must remove cover): Brightness VR202, Height
-VR302, Width VR101 (also affects height).
+VR302, Width VR101 (also affects height). If you want to use it in
+Native Personality, then the arrow-key codes will conflict with the
+codes used in vi (such as ^L). To fix this set "Application key mode"
+with ESC ~ 3. This results in the arrow keys sending 0xd1 - 0xd4.
+Due to a bug in the readline interface of the Bash shell, you need to
+edit /etc/inputrc so that the arrow keys will work in Bash. See Wyse 85
-
Can emulate VT52/T100/VT200. Press F3 for setup. Scroll thru
+
Can emulate VT52/VT100/VT200. Press F3 for setup. Scroll thru
setup with up/down keys.
Wyse 99-GT
@@ -6281,3 +6485,4 @@ the set-up (confusing menu design).
END OF Text-Terminal-HOWTO
+