Next Previous Contents

# Text-Terminal-HOWTO

## David S. Lawyer mailto:dave@lafn.org

v1.42 January 2010

This document was originally written for real text terminals which are seldom used anymore. It explains how they work, how to install and configure them, and provides some info on how to repair them. Most of this information is mainly of historical interest. But much in this HOWTO applies to the emulation of text terminals by PC's which is used more often than real terminals. Except that the standard text modes of Linux are still used a lot: either the direct text mode (virtual console) or using text windows in the X-window interface (such as rterm). But while these standard interfaces (with no serial cables to connect) are still emulations of a text terminal the details of these standard emulations is not well covered in this HOWTO since it was well covered by Keyboard-and-Console-HOWTO which was written for Linux 2.0 and likely needs updating. This HOWTO also provides an brief overview of modern GUI terminals.

## 1. Introduction

- 1.1 Copyright, Trademarks, Disclaimer, & Credits
- 1.2 Future Plans: You Can Help
- 1.3 New Versions of this HOWTO
- 1.4 Related HOWTOs, etc.
- 1.5 Terminology Used in this Document
- 1.6 What is a Terminal ?
- 1.7 Real Text Terminals

## 2. Types of Terminals

- 2.1 Dumb Terminals
- 2.2 Text Terminals
- 2.3 Graphic GUI Capabilities of Text Terminals

## 3. Thin Clients Terminals

- 3.1 Introduction
- 3.2 MS Window terminals
- 3.3 Network computers (NC's)
- 3.4 Thin clients and NCs under Linux
- 3.5 Hardware hookups
- 3.6 History and the future

## 4. Quick Text-Terminal Install

## 5. Why Use a Terminal ?

- 5.1 Intro to Why Use a Terminal
- 5.2 Lower Hardware Costs ?
- 5.3 Control of Software
- 5.4 Hardware Upgrades
- 5.5 Other Advantages of Terminals
- 5.6 Major Disadvantages of Text Terminals
- 5.7 Major Disadvantages of All Terminals
- 5.8 Are Text Terminals Obsolete ?

## 6. Overview of How Text Terminals Work (in Linux)

- 6.1 Device Names
- 6.2 Login/Logout
- 6.3 Half/Full Duplex
- 6.4 Terminal Memory
- 6.5 Commands for the Terminal
- 6.6 Lack of Standardization Solved by Terminfo
- 6.7 The Interface
- 6.8 Emulation
- 6.9 The Console

## 7. Terminal Special Files such as /dev/tty

- 7.1 Serial Port Terminals
- 7.2 Pseudo Terminals
- 7.3 The Controlling Terminal /dev/tty
- 7.4 /dev/ttyIN "Terminals"
- 7.5 The Console: ttyN or vc/N
- 7.6 Creating a Device with "mknod"

## 8. Some Details on How Terminals Work

- 8.1 Terminal Memory Details
- 8.2 Early Terminals
- 8.3 Escape Sequences and Control Codes (intro)
- 8.4 Display Attributes & Magic Cookies

## 9. Special Features/Types of Some Terminals

- 9.1 Terminal Uses a PC Monitor
- 9.2 Color
- 9.3 Multiple Sessions
- 9.4 Printer/Auxiliary Port
- 9.5 Pages
- 9.6 Character-Sets
- 9.7 Fonts
- 9.8 Keyboards & Special Keys
- 9.9 Mouse

## 10. Terminal Emulation (including the Console)

- 10.1 Intro to Terminal Emulation
- 10.2 Don't Try to Use TERM Variable for Emulation
- 10.3 Serial Communication programs (mostly dialing)
- 10.4 Testing Terminal Emulation
- 10.5 The Linux Console
- 10.6 Emulation Software
- 10.7 Colors on Emulated Terminals

## 11. Flow Control (Handshaking)

- 11.1 Why Is Flow Control Needed ?
- 11.2 Padding
- 11.3 Overrunning a Serial Port
- 11.4 Stop Sending
- 11.5 Keyboard Lock
- 11.6 Resume Sending
- 11.7 Hardware Flow Control (RTS/CTS etc.)
- 11.8 Is Hardware Flow Control Done by Hardware ?
- 11.9 Obsolete ?? ETX/ACK or ENQ/ACK Flow Control

## 12. Physical Connection

- 12.1 Introduction
- 12.2 Multiport I/O Cards (Adapters)
- 12.3 Direct Serial Cable Connection.
- 12.4 Modem Connection
- 12.5 Telnet and ssh
- 12.6 Terminal Server Connection
- 12.7 Connector and Adapter Types
- 12.8 Making or Modifying a Cable

## 13. Set-Up (Configure) in General

- 13.1 Intro to Set-Up
- 13.2 Terminal Set-Up (Configure) Overview
- 13.3 Computer Set-Up (Configure) Overview
- 13.4 Many Options
- 13.5 Communication Interface Options
- 13.6 Quick Attempt

## 14. Terminal Set-Up (Configure) Details

- 14.1 Send Escape Sequences to the Terminal
- 14.2 Older Terminals Set-Up
- 14.3 Getting Into Set-Up (Configuration) Mode
- 14.4 Communication Options
- 14.5 Saving the Set-up
- 14.6 Set-Up Options/Parameters
- 14.7 Emulation {Personality} {{Terminal Modes}}
- 14.8 Display Options
- 14.9 Page Related Options
- 14.10 Reporting and Answerback
- 14.11 Keyboard Options
- 14.12 Meaning of Received Control Codes
- 14.13 Where New Text Goes
- 14.14 Function Keys
- 14.15 Block Mode Options
- 14.16 Locks
- 14.17 Screen Saver {Scrn Saver}
- 14.18 Printer

## 15. Computer Set-Up (Configure) Details

- 15.1 Getty (used in /etc/inittab)
- 15.2 Stty & Setserial
- 15.3 Setserial
- 15.4 Stty
- 15.5 Terminfo & Termcap (brief)
- 15.6 Setting TERM and TERMINFO
- 15.7 Rarely Needed /etc/ttytype File
- 15.8 Login Restrictions
- 15.9 Run Command Only If TERM=my_term_type
- 15.10 Character Mapping: mapchan

## 16. Terminfo and Termcap (detailed)

- 16.1 Intro to Terminfo
- 16.2 Terminfo Database
- 16.3 Bugs in Existing Terminfo Files (and Hardware)
- 16.4 Modifying Terminfo Files
- 16.5 Init String
- 16.6 TERM Variable
- 16.7 Terminfo/Termcap Documents

## 17. Using the Terminal

- 17.1 Intro to Using the Terminal
- 17.2 Starting Up the Terminal
- 17.3 Terminal (Serial) Device Driver
- 17.4 Problems with Editors
- 17.5 Problem with Slow Scrolling
- 17.6 Bugs in Bash
- 17.7 Color ls Corruption
- 17.8 Display Freezes (hung terminal)
- 17.9 Corrupted Terminal Interface
- 17.10 Special (Control) Characters
- 17.11 Viewing Latin1 Files on a non-Latin1 terminal
- 17.12 Eliminating Overstriking in Files
- 17.13 Inspecting the Interface
- 17.14 Changing the Terminal Settings
- 17.15 Multiple Sessions
- 17.16 Logging Out
- 17.17 Chatting between Terminals, Spying
- 17.18 Sharing the Serial Port
- 17.19 Browsers for Text-Terminals

## 18. Special Uses for a Terminal

- 18.1 Make a Serial Terminal the Console
- 18.2 Run Linux without a Monitor
- 18.3 Use a Keyboardless Terminal as the Monitor

## 19. Trouble-Shooting

- 19.1 Terminal Was Working OK
- 19.2 Terminal Newly Installed
- 19.3 Is the Terminal OK ?
- 19.4 Missing Text
- 19.5 All Keys Work Erratically; Must Hit a Key a Few Times
- 19.6 ... respawning too fast: disabled for 5 minutes
- 19.7 Fails Just After Login
- 19.8 Can't Login
- 19.9 Garbled Login Prompt
- 19.10 No Login Prompt
- 19.11 Displays Foreign/Weird Characters/Symbols
- 19.12 Displays Escape Sequences
- 19.13 Slow: pauses of several seconds between bursts of characters
- 19.14 Cursor Jumps
- 19.15 Terminal doesn't scroll
- 19.16 Serial Monitoring/Diagnostics
- 19.17 Local Mode
- 19.18 Serial Electrical Test Equipment

## 20. Repair & Diagnose

- 20.1 Repair Books & Websites
- 20.2 Safety
- 20.3 Appearance of Display
- 20.4 Diagnose
- 20.5 Detective work
- 20.6 Error Messages on the Screen
- 20.7 Capacitors
- 20.8 Keyboards

## 21. Appendix A: General

- 21.1 List of Linux Terminal Commands
- 21.2 The Internet and Books
- 21.3 Non-Linux OSs

## 22. Appendix B: Escape Sequence Commands Terminology

- 22.1 Esc Sequence Lists
- 22.2 8-bit Control Codes
- 22.3 Printer Esc
- 22.4 Reports
- 22.5 Cursor Movements
- 22.6 Pages (definition)

## 23. Appendix C: Serial Communications on EIA-232 (RS-232)

- 23.1 Intro to Serial Communication
- 23.2 Voltages
- 23.3 Parity Explained
- 23.4 Forming a Byte (Framing)
- 23.5 Limitations of EIA-232
- 23.6 Synchronization & Synchronous
- 23.7 Block Mode
- 23.8 EIA-232 (RS-232) Books
- 23.9 Serial Software

## 24. Appendix D: Notes by Brand/Model

- 24.1 Adds
- 24.2 CIT
- 24.3 IBM Terminals
- 24.4 Teletypes
- 24.5 VT (originally DEC, now Boundless)
- 24.6 Links
- 24.7 Qume
- 24.8 Wyse Terminals

Next Previous Contents