BRLTTY on OpenBSD

Author: Mario Lang <mlang@delysid.org>

Contents

This document describes how to get BRLTTY working on a recent OpenBSD system. It assumes that you're working with a recent OpenBSD installation (e.g. 3.4).

Setting up BRLTTY

Patching screen

Since OpenBSD doesn't have a way for user-space applications to access the contents of the virtual consoles, we have to use screen to make this information available to BRLTTY. This also means that you can't use BRLTTY with the OpenBSD virtual consoles directly - you must start screen first on some virtual terminal in order to be able to use BRLTTY.

You need to patch screen to enable the IPC_SHARED_IMAGE functionality that BRLTTY relies on. Assuming your ports tree is in /usr/ports, you'll need to copy the appropriate patch from brltty/Patches into /usr/ports/misc/screen/patches.

OpenBSD 3.4 comes with screen-4.0.1. You can check the screen version by looking in /usr/ports/misc/screen/Makefile.

The patch file should be named with the prefix patch- so that the screen build process will find it.

Now change into /usr/ports/misc/screen and run:

make
sudo make install

If you've successfully managed to compile and install the screen package, you can proceed to building BRLTTY.

There's a simple test you can use to verify if your screen installation does support the IPC_SHARED_IMAGE feature. Start screen, and then execute the command:

ipcs -m

You should see output that looks roughly like this:

Shared Memory:
T       ID     KEY        MODE       OWNER    GROUP
m    65536 -1160968401 --rwa------     root     root

If you do, then screen seems to have been compiled with the IPC_SHARED_IMAGE feature.

Note that proper integration of the IPC_SHARED_IMAGE functionality via an additional "flavor" for the screen port has recently been submitted to the OpenBSD ports mailing list. If you're working with the CVS ports tree, it might be worthwhile to check if the shm flavor has already been checked in by invoking the following command when in /usr/ports/misc/screen:

make show=FLAVORS

If you see shm listed as a choosable flavor, simply build screen with the FLAVOR environment variable set to shm - don't bother copying the patch from BRLTTY's source tree.

Compiling BRLTTY

To compile BRLTTY, do the following:

./configure
gmake
sudo gmake install

Note that gmake should be used in order to avoid a problem related to BSD and GNU Make incompatibilities.

Running BRLTTY

You need to have screen started before you try to run BRLTTY. Inside screen, simply invoke BRLTTY as you would on other systems. Note that the first serial port is /dev/cua00.

A typical invocation could look like this:

brltty -b ts -d serial:cua00