Author: | Mario Lang <mlang@delysid.org> |
---|
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).
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.
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.
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