This page describes the method used to implement the support of Braille tablets in the Tom's RTBT boot disk, from Tom Oehser, Tom@Toms.NET. Tom's RTBT can be found at http://www.toms.net/rb/

Before this package becomes the beta version 0.01 of the"bigletom RTBT", I Would need some positive returns, would be needed, because I have no tablet :) Please , consider this as a micro - HOWTO"Brltty for Tom's RTBT".

IMPORTANT NOTE: The preparation of this package do not involve modification of source code. The sources of the packages used are available on sites linked.
The package bigletomrtbt-1.7.367.tar.gz is a french version (azerty keyboard) with Visiobraille support. It can be found at http://mrmarco.free.fr/bigletomrtbt-1.7.367.tar.gz.
The package bigletomrtbt-1.7.365.tar.gz is an english version (qwerty keyboard) with Visiobraille support. It can be found at http://mrmarco.free.fr/bigletomrtbt-1.7.365.tar.gz.

Prerequisites


The kernel should include minix and loopback support.

Elements needed


The following packages are necessary:

lbc5


It is the version of the libc that is used by tomsrtbt. As it is not possible to load two versions of the libc on a floppy disk, brltty must be compiled with this version. If it is not the one of the host, it is necessary to download and to install it.

tomsrtbt


Tomsrtbt's Homepage.

brltty


Brltty's Homepage.

Uncompress


In order to make the adaptation of the procedure easier, we define some variables, so the given commands can be directly copied independently of the distribution or the version of the programs.

export VERS_TOM="1.7.361"
export VERS_BRLTTY ="2.98"
export REP_BASE ="~/bigletom"
export PATH_LIBC5 ="/usr/i486-linuxlibc1/bin" (Debian)
Export PATH_LIBC5 ="/usr/i486-linux-libc5/lib" (Mandrake)

libc5


Debian (versions 2.x)
apt-get install libc5-dev libc5-altdev altgcc libdl1-altdev ldso BR
Mandrake (version 8.0)
rpm --rebuild libc5.3.12-35mdk.src.rpm
cd /usr/src/RPM/RPMS/i586
rpm -ivh libc5.3.12-35mdk.i586.rpm

tomsrtbt


tar xzvf tomsrtbt.$VERS_TOM.tar.gz
cd tomsrtbt.$VERS_TOM
./unpack.s tomsrtbt.raw
creates the directory
tomsrtbt.$VERS_TOM.unpacked. This command should be executed with the mandatory rights on mount (I have not been able to do it without being root, the mount command with two arguments being always rejected with another user )
cd ..

brltty


tar xzvf brltty.$VERS_BRLTTY.tar.gz

Configuration of brltty


cd brltty-$VERS_BRLTTY

It is necessary to edit the Makefile in order to include the support of the chosen tablet, ( Field BRL_TARGETS. Support for every tablet is not possible for now, it should be OK for next brltty versions)... Here, the Visiobraille tablet is the one chosen. Then put default support for the table in French.
For that purpose, replace TEXTTRANS = text.us.tbl by TEXTTRANS = text.french.tbl
See the BrailleTables directory for the other available tables
Note: to support Nathalie's tablet, 20 is given as the tablet's size in brltty-2.98/VisioBraille.

Compilation of brltty against libc5


PATH=$PATH_LIBC5:$PATH make

Creates the brltty, scrtest,and brltest binaries that will be copied then under tomsrtbt.x.y.zzz.unpacked.

cp scrtest ../tomsrtbt-$VERS_TOM/tomrtbt-$VERS_TOM .unpacked/2/usr/bin
cp brlttest ../tomsrtbt-$VERS_TOM/tomrtbt-$VERS_TOM .unpacked/2/usr/bin
cp brltty ../tomsrtbt-$VERS_TOM/tomrtbt-$VERS_TOM .unpacked/2/sbin
cd ../tomsrtbt-$VERS_TOM/tomsrtbt-$VERS_TOM.unpacked/2/usr/bin
chown brltest --reference=busybox
chown scrtest --reference=busybox
cd ../../sbin
chown brltty --reference=sh
Brltty configuration directory and table descriptions have to be created :
cd ../../
mkdir 2/etc/brltty/
cd ../../../brltty-2.98
install -m 644 BrailleTables/*.tbl ../tomsrtbt-$VERS_TOM/tomsrtbt-$VERS_TOM.unpacked/2/etc/brltty


In bootdisks, the init.c file is compiled.

cd bootdisks
PATH=$PATH_LIBC5:$PATH gcc -o init -s init.c info gcc gives "-s remove all symbol table and relocation information from the executable."

This init launches brltty before the real_init

Installation of brltty in tomsrtbt


At first, both init are exchanged:

cd../../tomsrtbt-$VERS_TOM/tomrtbt-$VERS_TOM .unpacked
mv 2/bin/init 2/bin/real_init
cp ../../brltty-$VERS_BRLTTY/bootdisk/init 2/bin/init
Make the appropriate chown for aestetical reasons (only?)
Remove some binaries from tom's to make room (there is already vi...) :

cd 2/usr/bin
rm view elvis ex emacs
cd ../man
rm elvis emacs
cd ../..

At last, brltty needs libdl.so.1 (from the ldso package) in addition to libc. It must be added

cp /lib/libdl.so.1.9.11 lib/libdl.so.1

Keyboard selection


Uncompress rc.custom.gz

cd ../1
gunzip rc.custom.gz

Replace

sh<<'X'&
cat /usr/lib/key.lst
read -p "
Select keyboard, ENTER for default (15 seconds): " J/dev/tty1 [ "$J" ]&&loadkmap /usr/lib/key/$J.map

with

loadkmap /usr/lib/key/41.map
(loadkmap /usr/lib/key/16.map for french) <BR>
And remove the X that is at one of the lines following.

Compress again the file

gzip rc.custom

Creation of the device for brltty


The vcsa0 device is then created with right parameters. This one is the one used by brltty.

mknod -m o=2/dev/vcsa0 c 7 128

(Here, dont ask : )

Contruction of the floppy disk


Take care of erasing the backup files made by your editor if it creates it automatically (the space is rare on the tomsrtbt).
Copy buildit.s in the "unpacked" directory from the upward directory and edit it
\rm r * ~ .bak
cp ../buildit.s
Change the timeout value to 0, replace vga=ask by vga=normal, and remove the line with "prompt" which is next.

./buildit.s

Creates the tar.gz and the directory tomsrtbt-x.yy.zzz.
Insert a blank floppy disk.

cd tomsrtbt-$VERS_TOM
./install.s

Create the floppy boot disk.
Some small additional modification have been done in the .s and rc.custom.gz in the distributed version (mainly replacing tomsrtbt by bigletomrtbt to make autoconstruction possible and translation in french of the boot message). diff is your friend.

Credits: I am interested in this small project since the meeting of the biglux team from Toulouse's LUG, Le Culte . Special thanks to Nath, the first tester.

Important contributions: Philippe Coulonges