BRLTTY: Introduction

Next Previous Contents

## 1. Introduction

BRLTTY gives a braille user access to the text consoles of a Linux/Unix system. It runs as a background process (daemon) which operates a refreshable braille display, and can be started very early in the system boot sequence. It enables a braille user, therefore, to easily independently handle aspects of system administration such as single user mode entry, file system recovery, and boot problem analysis. It even greatly eases such routine tasks as logging in.

BRLTTY reproduces a rectangular portion of the screen (referred to within this document as `the window') as braille text on the display. Controls on the display can be used to move the window around on the screen, to enable and disable various viewing options, and to perform special functions.

## 1.1 Feature Summary

BRLTTY provides the following capabilities:

- Full implementation of the usual screen review facilities.
- Choice between `block`, `underline`, or `no` cursor.
- Optional `underline` to indicate specially highlighted text.
- Optional use of `blinking` (rates individually settable) for cursor, special highlighting underline, and/or capital letters.
- Screen freezing for leisurely review.
- Intelligent cursor routing, allowing easy fetching of cursor within text editors, web browsers, etc., without moving ones hands from the braille display.
- A cut-and-paste function (linear or rectangular) which is particularly useful for copying long file names, copying text between virtual terminals, entering complicated commands, etc.
- Table driven in-line contracted braille (english grade 2 provided).
- Support for multiple braille codes.
- Ability to identify an unknown character.
- Ability to inspect character highlighting.
- An on-line help facility for braille display commands.
- A preferences menu.
- Basic speech support.
- Modular design allowing relatively easy addition of drivers for other braille displays and speech synthesizers.
- An application programming interface.

## 1.2 System Requirements

To date, BRLTTY runs under Linux, Solaris, and OpenBSD. While ports to other Unix-like operating systems aren't currently planned, we do welcome any interest in such projects.

Linux

  This software has been tested on a variety of Linux systems:

  - Desktops, laptops, and some PDAs.
  - Processors from a 386SX20 to a Pentium.
  - A huge range of memory sizes.
  - Several distributions including Debian, Red Hat, Slackware, and SuSE.
  - Many kernels, including 1.2.13, 2.0, 2.2, and 2.4.
  - A DEC Alpha (only tested once under Red Hat Alpha Linux on a noname board kindly lent to the Cambridge University Computer Laboratory by DEC in Reading, England).
OpenBSD

  This software has been tested on the following OpenBSD systems:

  - The Intel architecture (release 3.4).
Solaris

  This software has been tested on the following Solaris systems:

  - The Sparc architecture (releases 7, 8, and 9).
  - The Intel architecture (release 9).

On Linux, BRLTTY can inspect the content of the screen completely independently of any logged in user. It does this by using a special device which provides easy access to the contents of the current virtual console. This device was introduced in version 1.1.92 of the Linux kernel, and is normally called either `/dev/vcsa` or `/dev/vcsa0` (on systems with `devfs` it's called `/dev/vcc/a`). For this reason, Linux kernel 1.1.92 or later is required if BRLTTY is to be used in this way. This capability:

- Allows BRLTTY to be started very early in the system boot sequence.
- Enables the braille display to be fully operational during the login prompt.
- Makes it much easier for a braille user to perform boot-time system administration tasks.

A patch for the `screen` program is provide (see the `Patches` subdirectory). It allows BRLTTY to access `screen`'s screen image via shared memory, and, therefore, allows BRLTTY to be used quite effectively on platforms which don't have their own screen content inspection facility. The main weakness of the `screen` approach is that BRLTTY can't be started until the user has logged in.

In order for BRLTTY to successfully communicate with the refreshable braille display, the correct driver (serial, parallel, USB) must be configured into the kernel. If the driver requires special options, then they must be supplied. If it's built into the kernel, then its options must be:

Linux

  - Set during the kernel configuration procedure.
  - Supplied at the LILO boot prompt.
  - Specified on an `append` directive in `/etc/lilo.conf`.

If the driver is a module, then its options must be:

Linux

  - Supplied as options to the `modprobe` (or `insmod`) command.
  - Specified on an `options` directive in `/etc/modules.conf` (called `/etc/conf.modules` by some older distributions).

BRLTTY only works with text-based consoles and applications. It can be used with `curses`-based applications, but not with any application which either uses special VGA features or requires a graphics console (like the X Window system).

You must also, of course, possess a supported refreshable braille display (see section Supported Braille Displays for the complete list). We hope that additional displays will be supported in the future, so, if you have any vaguely technical programming information for a device which you'd like to see supported, then please let us know (see section Contact Information).

Finally, you need tools to build the executable from its source: `make`, `C` and `C++` compilers, `yacc`, `awk`, etc. The development tools provided with standard Unix distributions should suffice. If you have problems, then contact us and we'll compile a binary for you.

Next Previous Contents