Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 6168

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE> Text-Terminal-HOWTO: Terminal Emulation (including the Console) </TITLE>
 <LINK HREF="Text-Terminal-HOWTO-11.html" REL=next>
 <LINK HREF="Text-Terminal-HOWTO-9.html" REL=previous>
 <LINK HREF="Text-Terminal-HOWTO.html#toc10" REL=contents>
</HEAD>
<BODY>
<A HREF="Text-Terminal-HOWTO-11.html">Next</A>
<A HREF="Text-Terminal-HOWTO-9.html">Previous</A>
<A HREF="Text-Terminal-HOWTO.html#toc10">Contents</A>
<HR>
<H2><A NAME="term_emulation"></A> <A NAME="s10">10.</A> <A HREF="Text-Terminal-HOWTO.html#toc10">Terminal Emulation (including the Console) </A></H2>

<H2><A NAME="ss10.1">10.1</A> <A HREF="Text-Terminal-HOWTO.html#toc10.1">Intro to Terminal Emulation</A>
</H2>

<P> Since a PC has a screen and keyboard (as does a real terminal) but
also has much more computing power, it's easy to use some of this
computing power to make the PC computer behave like a real text
terminal.  This is one type of terminal emulation.  Another type of
terminal emulation is where you set up a real terminal to emulate
another brand/model of terminal.  To do this you select the emulation
you want (called "personality" in Wyse jargon) from the terminal's
set-up menu.  Still a third type is where you just use a text-based
interface (at the console) to your Linux PC, either by a terminal
screen in Xwindow or by a "virtual terminal".  This section only
covers the first case.</P>
<P>To fully emulate a real terminal on a PC requires that a serial
port of the computer will be used to connect the emulated terminal to
another computer.  This would be either with a direct cable connection
from serial port to serial port, or via a modem.  But in other cases,
the serial port will not be used directly as the interface.  Instead,
the interface may be a network and the flow of bytes to and from the
terminal will travel in network packets via either a modem on a serial
port or via an ethernet port.</P>
<P>Emulation for connection to a remote computer provides more that just
a real text-terminal since the PC doing the emulation can also do
other tasks at the same time it's emulating a terminal.  For example,
for serial port connections, kermit or zmodem may be run on the PC to
enable transfer of files over the serial line (and possibly over the
phone line via a modem) to the other computer that you are connected
to.  The emulation needs only to be run on one of the virtual consoles
of the PC, leaving the other virtual consoles available for using the
PC in command-line-interface.</P>
<P>For Linux see 
<A HREF="#pc_as_terminal">Make a Linux PC a serial port terminal</A>.  Emulation software for this also available for use
under MS Windows.  See 
<A HREF="#non_linux_pc">Make a non-Linux PC a terminal</A>  This can be used to connect a Windows PC (as a
Text-Terminal) to a Linux PC.</P>
<P>Most Linux free software can only emulate a VT100, VT102, or
VT100/ANSI, or Wyse60 (but not fully).  Since most PC's have color
monitors while VT100 and VT102 were designed for a monochrome monitor,
the emulation usually adds color capabilities (including a choice of
colors).  Sometimes the emulation is not 100% perfect but this usually
causes few problems.  None of them provide programmable function keys.
The non-free emulation software running under MS Windows can emulate
many more terminals than free Linux can. </P>

<H2><A NAME="term_not_for_emulation"></A> <A NAME="ss10.2">10.2</A> <A HREF="Text-Terminal-HOWTO.html#toc10.2">Don't Try to Use TERM Variable for Emulation</A>
 </H2>

<P> Some have erroneously thought that they could create an emulator
at a Linux console (monitor) by setting the environment variable TERM
to the type of terminal they would like to emulate.  This does not
work.  The value of TERM only tells an application program what
terminal you are using.  This way it doesn't need to interactively ask
you this question.  If you're at a Linux PC monitor (command line
interface) it's a terminal of type "Linux" and since you can't change this
TERM must be set to "Linux".  This should happen without you needing to
do anything.</P>
<P>If you set it to something else you are fibbing to an application
program.  As a result, it will incorrectly interpret certain escape
sequences from the console resulting in a corrupted interface.  Since
the Linux console behaves almost like a vt100 terminal, it could still
work almost OK if you falsely claimed it was a vt100 (or some other
terminal which is close to a vt100).  In this case it may seeming work
OK most of the time but once in a while will make a mistake.</P>

<H2><A NAME="ss10.3">10.3</A> <A HREF="Text-Terminal-HOWTO.html#toc10.3">Serial Communication (Dialing) programs</A>
</H2>

<P> Dialing programs for making a PPP connection to the Internet such
as wvdial, don't normally include any terminal emulation.  But some
other programs (such as minicom or seyon) do both terminal emulation
and  modem dialing (without PPP so it's not easy to use them to
connect to the internet).  The program "picocom" just does terminal
emulation although it's possible to type in a modem command and a
phone number to dial out manually.  These programs are also useful for
testing modems.  Seyon is only for use with X Window and can emulate
Tektronix 4014 terminals.  In the past one could use them to dial up
some public libraries to use their catalogs and indexes, (or even read
magazine articles on line).  But today it's done on the Internet.  </P>
<P>The communication program C-Kermit (sometimes just called kermit)
doesn't do terminal emulation for Linux (in 2006).  But Kermit can
emulate many terminals in its non-free MS Windows versions so you`ll
see lots of claims that Kermit can do terminal emulation.  With Linux,
it's merely a semi-transparent pipe between whatever terminal you are
on and the remote site you are connected to.  Thus if you use kermit
on a Linux PC the terminal type will be "Linux".  If you have a Wyse60
connected to your PC and run kermit from that, you will appear as a
Wyse60 to the remote computer (which may not be able to handle Wyse60
terminals).  Minicom emulates a VT102 and if you use it on Wyse60
terminal vt102 the remote host will think you are a vt102 and send you
vt102 escape sequences.  These will flow into your computer's serial
port and will get translated to the Wyse escape sequences before going
out another serial port on your computer to your Wyse60 terminal.
C-Kermit can't do this sort of thing.</P>
<P>Emulators exist under DOS such as <CODE>telix</CODE> and <CODE>procomm</CODE> work
just as well.  The terminal emulated is often the old VT100, VT102, or
ANSI (like VT100).</P>

<H3>Emulation under X Window</H3>

<P>There are many terminal emulation programs (such as xterm, uxterm.
gnome-terminal, and konsole) which may be run under X Window.  They can
usually emulate a VT102, but some may be able to emulate at VT220, or
Tektronix 4014.  They provide a command line interface to the computer
but they don't communicate via the serial port like a text terminal.
See 
<A HREF="http://packages.ubuntu.com/dapper/virtual/x-terminal-emulator">Ubuntu -- x-terminal-emulator</A> for a brief list of such
emulators.  Some are multilingual.  Your Linux distribution has likely
installed one for you.</P>

<H3>Real terminals may be better</H3>

<P> Unless you are using X Window with a large display, a real
terminal is often nicer to use than emulating one.  It often has
better resolution for text (since it's monochrome), and has no disk
drives to make annoying noises.</P>

<H2><A NAME="ss10.4">10.4</A> <A HREF="Text-Terminal-HOWTO.html#toc10.4">Testing Terminal Emulation</A>
</H2>

<P> For the VT series terminals there is a test program: <CODE>vttest</CODE>
to help determine if a terminal behaves correctly like a vt53, vt100,
vt102, vt220, vt320, vt420 etc.  There is no documentation but it has
menus and is easy to use.  To compile it run the configure script and
then type "make".  It may be downloaded from: 
<A HREF="http://www.ibiblio.org/pub/Linux/utils/console/">http://www.ibiblio.org/pub/Linux/utils/console/</A></P>

<H2><A NAME="console_"></A> <A NAME="ss10.5">10.5</A> <A HREF="Text-Terminal-HOWTO.html#toc10.5">The Linux Console </A>
</H2>

<P> The console for a PC Linux system is normally the computer monitor
in text mode.  It emulates a terminal of type "Linux" and the escape
sequences it uses are in the man page: console_codes.  There is no way
(unless you want to spend weeks rewriting the kernel code) to get it
to emulate anything else.  Setting the TERM environment variable to
any type of terminal other than "Linux" will not result in emulating
that other terminal.  It will only result in a corrupted interface
since you have falsely declared (via the TERM variable) that your
"terminal" is of a type different from what it actually is: Linux.
See 
<A HREF="#term_not_for_emulation">Don't Use TERM For Emulation</A></P>
<P>In X Window, using a terminal emulator give you the equivalent of a
console and for the KDE they chose to call this emulation "konsole".
In some cases, the console for a Linux PC is a text-terminal.  One may
recompile Linux to make a terminal receive most of the messages which
normally go to the console.  See 
<A HREF="Text-Terminal-HOWTO-18.html#term_as_console">Make a Serial Terminal the Console</A>.</P>
<P>The "Linux" emulation of the monitor is flexible and has features
which go well beyond those of the vt102 terminal which it was intended
to emulate.  These include the ability to use custom fonts and easily
re-map the keyboard.  These extra features reside in the console
driver software (including the keyboard driver).  The console driver
only works for the monitor and will not work for a real terminal even
if it's being used for the console.  Thus the "console driver" is
really a "monitor driver".  In the early days of Linux one couldn't
use a real terminal as the console so "monitor" and "console" were
once always the same thing.</P>
<P>The stty commands work for the monitor-console just like it was a real
terminal.  They are handled by the same terminal driver that is used
for real terminals.  Bytes headed for the screen first go thru the
terminal (tty) driver and then thru the console driver.  For the monitor
some of the stty commands don't do anything (such as setting the baud rate).
You may set the monitor baud rate to any allowed value (such as a slow
300 speed) but the actual speed of putting text on the monitor screen
will not actually change.  The file /etc/ioctl.save stores stty
settings for use only when the console is in single user mode (but you
are normally in multiuser-user mode).  This is explained (a little) in the
init man page.</P>
<P>Many commands exist to utilize the added features provided by the
console-monitor driver.   Real terminals, which use neither scan codes
nor VGA cards, unfortunately can't use these features.  To find out
more about the console see the Keyboard-and-Console-HOWTO.  Also see
the various man pages about the console (type "man -k console").
Unfortunately, much of this documentation is outdated.</P>

<H2><A NAME="ss10.6">10.6</A> <A HREF="Text-Terminal-HOWTO.html#toc10.6">Emulation Software</A>
</H2>

<P> Emulators often don't work quite right so before purchasing
software you should try to throughly check out what you will get.</P>

<H3><A NAME="pc_as_terminal"></A> Make a Linux PC a serial port terminal </H3>

<P> Unless you want to emulate the standard vt100 (or close to it) or
a Wyse 60, there doesn't seem to be much free terminal emulation
software available for Linux.  The free programs minicom, picocom, and
seyon (only for X Window) can emulate a vt100 (or close to it).  Seyon
can also emulate a Tektronix 4014 terminal.  See 
<A HREF="http://gutschke.com/wy60/">Wyse 60 emulator</A>.  gtkterm
doesn't use escape sequences, and might be said to emulate a terminal
of type "dumb" so it would be quite slow if used as a text terminal
for editing, etc.  It's simple to set up, very weak in capabilities,
but it does show its current status at the bottom of the screen.</P>
<P>Minicom, picocom, or gtkterm may be used to emulate a directly
connected terminal by simply starting one of them.  For minicom, you
must configure it for the serial port used).  Picocom is like a
mini-minicom, doesn't have automatic dialout capability.  Gtkterm
might be called a "mini-mini-minicom".</P>
<P>Skip this paragraph if you use picocom.  For the case of minicom you
obviously don't try to dial-out.  When you want to quit minicom (after
you logout from the other PC) you use minicom's q command to quit
without reset since there is no modem to reset.  When minicom starts,
it automatically sends out a modem init string to the serial port.
But since there's no modem there, the string gets put after the
"login:" prompt.  If this string is mostly capital letters, the getty
program (which runs login) at the other PC may think that your
terminal has only capital letters and try to use only capital letters.
To avoid this, configure the modem init strings sent by minicom to
null (erase the init strings).</P>
<P>The non-free terminal emulator "Procomm" (which is from the MS world),
can be used on a Linux PC if you run dosemu to emulate Dos or possibly
in a mode emulating MS Windows.  The last version of it seems to be
4.8 released in around 2000 so it will likely not work with modern MS
systems.  It was sold by Symantec which has many files supporting it
which may be found using their search engine at 
<A HREF="http://www.symantec.com/">http://www.symantec.com/</A>.  And if you check the Internet (in
2008), it's still being sold here and there.</P>
<P>There's a specialized Linux distribution: Serial Terminal Linux.  It
will turn a PC to into a minicom-like terminal.  It's small (fits on a
floppy) and will not let you use the PC for any other purpose (when
it's running).  See 
<A HREF="http://www.eskimo.com/~johnnyb/computers/stl/">http://www.eskimo.com/~johnnyb/computers/stl/</A>.  It will let you
have more than one session running (similar to virtual terminals), one
for each serial port you have.</P>
<P>TERM (non-free commercial software from Century Software) 
<A HREF="http://www.centurysoftware.com/terminal_emulator/advanced_terminal_emulator.php">Terminal Emulator</A>  can emulate Wyse60, 50; VT 220, 102, 100,
52: TV950, 925, 912; PCTERM; ANSI; IBM3101; ADM-1l; WANG 2110.  Block
mode is available for IBM and Wyse.  It runs on a Linux PC.</P>

<H3>Make a Linux PC an IBM network terminal</H3>

<P>This happens automatically when you run programs like telnet or
ssh, provided of course that your computer is connected to a network
(perhaps via a modem).  Telnet normally uses a network (often the
Internet) to connect your console, which emulates a terminal of type
"Linux", to a remote computer for you to log in to.  However, there
are some  free programs that allow you to use telnet with IBM terminal
emulation on your PC to connect with IBM mainframes.</P>
<P>One IBM program emulates an IBM tn5250 terminal and printer and
another emulates an IBM c3270.  There's also one that emulates an IBM
pr3287 printer (the mainframe thinks it's connected to the printer).
The Debian distribution has these.  It's reported that the tn5250
emulates a vt keyboard under Linux and not a 5250 keyboard like it
should.  Also, it's reported that the documentation and keyboard
mapping for the MS Windows version are better than for the Linux
version.</P>

<H3><A NAME="non_linux_pc"></A> Make a non-Linux PC a terminal </H3>

<P> Emulators exist which run on non-Linux PCs.  They permit you to
use a non-Linux-PC as a terminal connected to a Linux-PC.  Under DOS
there were many programs that not only emulated a terminal but let you
dial out with a modem so that you could connect to other computers
over telephone lines (without getting connected to the Internet).  Of
historical interest is  
<A HREF="http://www.byte.com/art/9402/sec8/art1.htm">DOS Serial Communications (1994)</A>.   </P>
<P>Today Windows comes with "HyperTerminal" (formerly simply called
"Terminal" in Windows 3.x and DOS).  Competing with this is
"HyperTerminal Private Edition" 
<A HREF="http://www.hilgraeve.com/htpe/index.html">http://www.hilgraeve.com/htpe/index.html</A> which is non-free to
business.  It can emulate vt-220.  The Windows "terminals" are
intended for calling out with a modem but they should also work as
directly connected terminals??  Turbosoft's TTWin can emulate over 80
different terminals under Windows.  See 
<A HREF="http://www.ttwin.com/">http://www.ttwin.com/</A> or 
<A HREF="http://www.turbosoft.com.au/">http://www.turbosoft.com.au/</A> (Australia).  See also 
<A HREF="http://www.wrq.com/">WRQ</A></P>
<P>For using a Mac computer to emulate a common terminal use either
Linux's "minicom" (ported to the  Mac OS X) or the old "zterm"
(shareware).  For very old Macs prior to OS X, see the mini-howto:
Mac-Terminal.  
<A HREF="http://www.carnationsoftware.com/carnation/HT.Carn.Home.html">Carnation Software</A> has non-free software to emulate a wide
variety of terminals on a Mac.  Mac OS X has a "terminal" program that
gives you a terminal window just like the xterm window in Linux's X
Window.  In that window you may run "minicom" (if it's available).
Both the "fink" and "darwinports" projects have ported minicom to the
Mac, but they may not have the most recent version and you might need
to compile minicom yourself.</P>
<P>One place to check terminal emulation products is Shuford's site, but
it seems to lists old products (which may still work OK).  The fact
that most only run under DOS (and not Windows) indicates that this
info is dated.  See 
<A HREF="http://www.cs.utk.edu/~shuford/terminal/term_emulator_products.txt">http://www.cs.utk.edu/~shuford/terminal/term_emulator_products.txt</A>.</P>

<HR>
<A HREF="Text-Terminal-HOWTO-11.html">Next</A>
<A HREF="Text-Terminal-HOWTO-9.html">Previous</A>
<A HREF="Text-Terminal-HOWTO.html#toc10">Contents</A>
</BODY>
</HTML>