Appendix C. Smarttech Touchboard

Warning

It is to my knowledge not possible to setup Smartboard on a LTSP-based thinclient, it might be theoretically possible, since some touchscreens are indeed supported, but I haven't managed, or even tried that with Smartboard.

It is also to my knowledge not possible yet with the provided software from Smarttech to use the USB-cable on Linux, although the Linux kernel recognises the device when plugged in with USB-cabel, my advice is to demand a fix for this.

C.1. Setup

A touchboard is a big, touch-sensitive board, which together with a video projector, makes it possible to stand up "by the board" and press and write on it, about the same as you would do with a regular whiteboard.

Warning

I have only got experience with connecting it via PS/2 (Mouse), and not USB. If your Smartboard has a USB connection to your computer then this recipe may not be very helpful for you. You will then need to get in touch with the dealer/importer for help.

In order to get a Smarttech Touchboard to function you need to download and install the SMART Board software. The latest version is SMART Board software version 8.0.0, which can be downloaded from smarttech.com, where you will find versions for Red Hat Linux 7.1 or higher, Mandrake Linux 9.1 and SuSE Linux 8.2 (all of these versions are identical). No versions are available for Debian or Skolelinux/Debian-edu. Fortunately, the ones that are available also work for Skolelinux/Debian-edu right out-of-the-box.

The program to be downloaded is called Linux_SMART_Board_Software.bin. In order to install it, you need to make it ready to run with this command:

chmod 755 Linux_SMART_Board_Software.bin

After that you can install it with

./Linux_SMART_Board_Software.bin

You may see a message complaining that you haven't installed the package libstdc++2.9-glibc2.1. If so, you can install that with this command:

apt-get install libstdc++2.9-glibc2.1

The board is usually connected to the computer via the serial port /dev/tts/0. To start with, the port is set up this way

stat /dev/tts/0
  File: "/dev/tts/0"
  Size: 0               Blocks: 0          IO Block: 1024   Character Device
Device: 6h/6d   Inode: 347         Links: 1     Device type: 4,40
Access: (0660/crw-rw- - - -)  Uid: (    0/    root)   Gid: (   20/ dialout)
Access: Thu Jan  1 01:00:00 1970
Modify: Wed Feb  4 16:00:48 2004
Change: Wed Feb  4 15:56:32 2004
which means that normal users cannot use it. A simple, but temporary solution, which is gone as soon as you restart the machine, is chmod 0666 /dev/tts/0. If you want to make the change permanent, you need to use your favorite text editor to change a line in the file /etc/devfs/perms By changing this line
REGISTER ^(tts|cua)/[^/]*$              PERMISSIONS root.dialout 0660
to
REGISTER ^(tts|cua)/[^/]*$              PERMISSIONS root.dialout 0666
the serial port will be accessible to all users. If you aren't comfortable with having absolutely everybody being able to use the serial port, you can establish a group and then add to that group those users whom you want to be able to use the SMARTBoard.

C.1.1. SmartBoard Icons for Users

Now that the SmartBoard driver has been installed and the proper permissions have been set up for the serial port, the only thing you need now is a nice little icon for your users to click on.

You need two files if you want your users to be able to start the Smartboard easily, one icon on their desktop, together with a little script centrally located in the machine. Make sure that the users who are going to use the Smartboard have this file in their Desktop directory in their home directory. The file should be named Smartboard.desktop and have this content:


[Desktop Entry]
Comment=Smartboard
Comment[nb]=Smartboard
Encoding=UTF-8
Exec=/usr/local/bin/smartboard.sh
GenericName=Smartboard
GenericName[nb]=Smartboard
Icon=/usr/bin/SMARTBoard/lib/pixmaps/board256.xpm
MimeType=
Name=SMartBoard
Name[nb]=SMartBoard
Path=
ServiceTypes=
SwallowExec=
SwallowTitle=Smartboard
Terminal=false
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=
You also need this script, which gets called up by Smartboard.desktop. If you put this script in a different location than /usr/local/bin/smartboard.sh you will need to change this also in Smartboard.desktop. This is the contents of the file /usr/local/bin/smartboard.sh

#!/bin/bash
#Save as something like /usr/local/bin/smartboard.sh
export SBOARD_INSTALL_PATH=/usr/bin/SMARTBoard

export PATH=$SBOARD_INSTALL_PATH/bin:$PATH
export BROWSER=konqueror
if [ "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH=/usr/X11R6/lib:$LD_LIBRARY_PATH:$SBOARD_INSTALL_PATH/lib
else
export LD_LIBRARY_PATH=/usr/X11R6/lib:$SBOARD_INSTALL_PATH/lib
fi

if [ "$XFILESEARCHPATH" ]; then
export XFILESEARCHPATH=/usr/X11R6/lib/locale/%L/%T/%N%S:/usr/X11R6/lib/%T/%N%S:$XFILESEARCHPATH:$SBOARD_INSTALL_PATH/lib/%T/%N%S
else
export XFILESEARCHPATH=/usr/X11R6/lib/locale/%L/%T/%N%S:/usr/X11R6/lib/%T/%N%S:$SBOARD_INSTALL_PATH/lib/%T/%N%S
fi

eval exec /usr/bin/SMARTBoard/bin/SMARTService

The file $HOME/SMARTBoard/SMARTBoardService.log should contain useful information if your board doesn't function, mine says:


Board on port /dev/ttyS0 has been opened successfully.
Board on port /dev/ttyS0 hardware version: 7.29
Board on port /dev/ttyS0 check sum: 0x664B664B
Board on port /dev/ttyS0 hardware model #: 133/5