=====================================================================                  

                 Elo Touchscreen Linux Driver - USB
       
         Installation/Calibration/Uninstallation Instructions 

---------------------------------------------------------------------                      
                         Version 2.0 RC1
                         October 18, 2006
                      Elo TouchSystems, Inc.

=====================================================================                  

Elo Linux USB Driver package contains native Linux drivers designed for Linux kernel 2.4.18 and later, video alignment program and control panel program for Elo TouchSystems touchmonitors. 


This readme file is organized as follows:

  1. Supported Touchmonitors and Elo Touchscreen Controllers
  2. System Requirements
  3. Installing the Elo Touchscreen USB Driver 
  4. Calibrating the Touchscreen 
  5. Accessing the Control Panel   
  6. Uninstalling the Elo Touchscreen USB Driver
  7. Troubleshooting
  8. Contacting Elo TouchSystems



==========================================================
1. Supported Touchmonitors and Elo Touchscreen Controllers
==========================================================

 - Elo USB Controllers (IntelliTouch(R) 2600, 2500U, 
   CarrollTouch(R) 4000U, 4500U) 

  --------------------------------------------------------
 |                                                        |
 | Elo USB Controller AccuTouch(R) 3000U is not supported.|
 |                                                        |
 | This driver does not support Elo PC-Bus controllers.   |
 |                                                        |
  --------------------------------------------------------


======================
2. System Requirements
======================

 - 32 bit platforms only

 - Kernels supported: 
    Kernel version 2.4.18 and later

 - XFree86 supported: 
    Xfree86 version 4.2.0
    Xfree86 version 4.3.0


 - Motif versions supported:
    Motif version 3.0
    Motif version 2.0


Note:
=====

The same binaries folder can be used for installation on other machines using the same kernel.



===============================================
3. Installing the Elo Touchscreen USB Driver 
===============================================

Important:
==========
a.) Must have administrator access rights on the Linux machine to
    install the Elo Touchscreen USB Driver. 
 
b.) Ensure all earlier Elo drivers are uninstalled from the system.

c.) The USB Human Interface Devices (usbhid or hid) component must 
    be built and loaded as a module. The Elo Touchscreen USB driver
    will not function if the usbhid is built as a static 
    "compiled-in" module while building the kernel.

d.) Do not extract the downloaded binary package on a Windows system. 



Step I:
-------

Copy the elo driver files from the extracted folder to the default elo folder and change the permissions for all the elo driver files. Copy and place the X display Elo component file in the proper location.

  a.) Copy the driver files to /elo folder location.

       > mv <Extracted folder>/  /elo
       > cd /elo
       > tar -xf loadelo.tar


  b.) Use the chmod command to set full permissions for all the
      users.(read/write/execute) 

       > chmod 777 *


  c.) Copy and place the X display Elo component file in the proper
      location. Use "> X -version" command to check the X display
      version.

       For Xorg version 7.0: (example: Fedora Core 5)
           
         > cp  /elo/elo_drv.o  /usr/lib/xorg/modules/input

       (or)

       For other XFree86 or Xorg versions: 

         > cp  /elo/elo_drv.o  /usr/X11R6/lib/modules/input



Step II:
--------

Modify the X windows configuration file (xorg.conf or XF86Config or XF86Config-4). This file is located in the /etc/X11 directory. Check the X windows log file ("/var/log/XFree86.0.log" or "/var/log/Xorg.0.log") to verify the X windows configuration file in use. 

  a.) Add the following lines to create a new Elo device                    configuration at the end of the file.
   
        Section "InputDevice"
           Identifier "elo"
           Driver "elo"
           Option "Device" "/dev/input/elo"
           Option "AlwaysCore"
        EndSection


  b.) Add the following line to the ServerLayout section to include
      the elo input device.
         
        InputDevice "elo" "SendCoreEvents"



Step III:
---------

Confirm whether the "/dev/input" directory exists. If it does not exist, create a new directory.
           
  > mkdir /dev/input



Step IV:
--------
 
Install the "elousb" driver module by running the following command.

  > ./install.sh



Step V:
-------

Configure a script to invoke Elo service at system startup.  


Debian, Ubuntu systems:
- - - - - - - - - - - -
 
Copy the elorc script file present in the /elo directory to the /etc/init.d directory.
 
  > cp /elo/elorc /etc/init.d 

A symbolic link for the elorc script has to be created in the desired runlevel directory (example: rc2.d,rc3.d,....rc5.d). This will allow the elorc script to run at system startup. Ubuntu and Debian systems use runlevel 2 (rc2.d directory) as default.

This directory has startup files (symbolic links) of the form SDDxxxx where DD is the sequence number. Pick a sequence number XX which is at least one smaller than the sequence number of the display manager script (xdm, gdm, etc.) found in this directory. 

Use the maintainer script update-rc.d to create the elorc symbolic link with selected sequence number XX.

  > cd /etc/rc2.d 
  > update-rc.d elorc start XX 2 .


Important: 
==========

 - Only use the update-rc.d maintainer script to modify these        
   symbolic links. The elorc script will not be run at startup
   if these symbolic links are  manually created. 

 - Notice that the update-rc.d command syntax has a space and
   period after the run-level parameter. 

 - The above example is for runlevel 2. Pick the appropriate folder
   for the desired runlevel. The default runlevel can be found in
   the /etc/inittab file.


Note:
===== 

The path of the runlevel directories might vary from distribution to distribution. The path for runlevel 5 in Redhat is "/etc/rc.d/rc5.d" while the path for Debian and Ubuntu is "/etc/rc2.d" for runlevel 2.

Locate the corresponding runlevel directory in the system and create the symbolic link for elorc script file in that directory using the update-rc.d maintainer script.
   


Redhat, Fedora, Mandrake and Slackware systems:
- - - - - - - - - - - - - - - - - - - - - - - -

On the above distributions, there are some restrictions for running the elorc script from /etc/rc.d/rc*.d directory. Hence, add the following two lines at the end of daemon configuration script in "/etc/rc.local" file. 

[ rc.local file might also be at location /etc/rc.d/rc.local. Use the   "> find /etc -name rc.local" command to locate the rc.local file.]

  /elo/loadelo  
  /elo/elodaem 



SUSE Systems:
- - - - - - -

Add the following two lines at the end of the configuration script in "/etc/init.d/boot.local" file.

  /elo/loadelo
  /elo/elodaem



Step VI: (Debian, Ubuntu systems skip to Step VII)
--------

Redhat, Fedora, SUSE, Mandrake and Slackware systems:
- - - - - - - - - - - - - - - - - - - - - - - - - - -

The elousb module needs to load before the USB Human Interface Devices (usbhid or hid) module, to take control of the Elo USB Touchscreen Controller, during system startup. Select and modify the appropriate module configuration file (/etc/modules.conf or /etc/modprobe.conf) based on the kernel version to enable elousb module to load before USB HID module. Use the "> uname -r" command to check the current kernel version.

  a.) For 2.4 kernels edit the "/etc/modules.conf" file and add
      the following line at the end of the file.

       post-install usbcore modprobe elousb
  

    (or)   


  b.) For 2.6 kernels edit the "/etc/modprobe.conf" file and add
      the following lines at the end of the file. 

      install <name-of-your-hid module> { modprobe elousb; } ; /sbin/modprobe --first-time --ignore-install
      <name-of-your-hid-module> && { /sbin/modprobe/ keybdev; /sbin/modprobe mousedev; /bin/true;}


      Note: 
      =====
 
      Replace <name-of-your-hid module> in the above lines with the
      correct USB HID module name. The name may vary from
      distribution to distribution. Use the "> lsmod |grep hid" 
      command or use the 
      "> ll /lib/modules/`uname -r`/kernel/drivers/usb/input" 
      command to locate the HID module and note the exact module
      name. The module name is usually "usbhid" or "hid" in most
      popular distributions.  

      The names of the keyboard and mouse modules may also vary
      among distributions. The use of the "keybdev" and "mousedev"
      module names will provide the required device functionality but
      may cause warnings to appear. To avoid these warnings locate
      the exact modules names for the keyboard and mouse and replace
      the generic names mentioned above.      

      Example: Consider the USB HID module is named "usbhid", the
      keyboard module is named "keybdev" and the mouse module is
      named "mousedev". The modified lines to insert at the end of
      the "/etc/modprobe.conf" file are shown below.  
 
      install usbhid { modprobe elousb; } ; /sbin/modprobe --first-time --ignore-install 
      usbhid && { /sbin/modprobe/ keybdev; /sbin/modprobe mousedev; /bin/true;} 



Step VII:
--------
 
Debian, Ubuntu systems: (Other Linux systems skip to Step VIII)
- - - - - - - - - - - -

The elousb module needs to load before the USB Human Interface Devices (usbhid or hid) module, to take control of the Elo USB Touchscreen Controller, during system startup. 

  a.) For Debian system: Edit the "/etc/modules.conf" file and add
      the following line at the end of the file.

       post-install usbcore modprobe elousb
  

    (or)   


  b.) For Ubuntu 6 system: Edit the "/etc/init.d/readahead" file and
      add the following line before the "exit 0" command at the end
      of the file.
   
      /sbin/modprobe elousb


    (or)   


  c.) For Ubuntu 5.1 system: No modifications are needed as the
      necessary commands to load the elousb ahead of the USB HID
      module are already inserted into the modified "elorc" script.
      Proceed to Step VIII.



Step VIII:
----------

Reboot the system to complete the driver installation process.
 
  > shutdown -r now 



==============================
4. Calibrating the Touchscreen
==============================

Important:
==========

Users must have read and write access to "/dev/elo" folder to perform the touchscreen calibration.


Step I:
-------

Run the calibration program from a command window in X Windows from the /elo directory. 

  > cd /elo
  > ./elova -u 


Step II:
--------

Touch the targets from a position of normal use. The calibration data is written to the driver at the end of calibration. 



==============================
5. Accessing the Control Panel 
==============================

The control panel application allows the user to easily set the available driver configuration options. After the driver package is installed, change to the /elo directory and run control panel application. 


Important:
==========

Users must have read and write access to "/dev/elo" folder to run the control panel applications.


Step I:
-------

Run the control panel program from a command window in X Windows from the /elo directory. If Motif version 2.0 is installed use the  /elo/cpl.motif-2.0 application instead of /elo/cpl.

  > cd /elo
  > ./cpl 


Step II:
--------

Navigate through the various tabs by clicking on them. Here is an overview of information related to each tab.

  General    - Perform touchscreen calibration
  Mode       - Change the touchscreen mode
  Properties - Display data related to the Serial/USB touch monitor.
  About      - Information about the package. Click on the Readme                    button to open this Readme file. 
	

Step III:
---------

If Motif is not installed, use the command line version of the application to access the control panel. Run the command line application from a command window in X Windows from the /elo directory.

  > cd /elo
  > ./cplcmd



=================================================
6. Uninstalling the Elo Touchscreen USB Driver
=================================================


Important:
==========
Must have administrator access rights on the Linux machine to uninstall the Elo Touchscreen USB Driver. 



Step I:
-------

Delete the script or commands that invoke Elo service at startup.  


SUSE systems: 
- - - - - - -
Remove the following entries created in Step V of Installation section from the configuration script in"/etc/init.d/boot.local" file.

  /elo/loadelo
  /elo/elodaem


Redhat, Fedora, Mandrake and Slackware systems:
- - - - - - - - - - - - - - - - - - - - - - - -

Remove the following entries created in Step V of Installation section from the configuration script in "/etc/rc.local" file. (or "/etc/rc.d/rc.local" file)
        
  /elo/loadelo
  /elo/elodaem


Debian, Ubuntu systems:
- - - - - - - - - - - -

a.) Remove the symbolic link file created in Step V of Installation     
    section using the update-rc.d maintainer script.
 
      > update-rc.d -f elorc remove


b.) Remove the elo script file "elorc" placed in the "/etc/init.d"        
    directory.

      > rm /etc/init.d/elorc



Step II:
--------

Delete the following lines from X windows configuration file (xorg.conf or XF86Config or XF86Config-4). This file is located in the /etc/X11 directory. Check the X windows log file ("/var/log/XFree86.0.log" or "/var/log/Xorg.0.log") to verify the X windows configuration file in use. 

  a.) Delete Elo device configuration section
       
      Section "InputDevice"
        Identifier "elo"
        Driver "elo"
        Device "/dev/input/elo"
        Option "AlwaysCore"
      EndSection

   b.) Delete the elo device from the ServerLayout section
      
       InputDevice "elo" "SendCoreEvents"



Step III:
---------

Delete all the elo driver files from the system.

  a.) Delete the elo driver folder.

        > cd /
        > rm -fR /elo


  b.) Delete X display elo component. Use "> X -version" command to  
      check the X display version.

        For Xorg version 7.0: (example: Fedora Core 5)
        
          > rm /usr/lib/xorg/modules/input/elo_drv.o

        (or)

        For other XFree86 or Xorg versions: 
  
          > rm /usr/X11R6/lib/modules/input/elo_drv.o


  c.) Delete all the elo related folders.

        > rm -fR /dev/elo
        > rm /dev/input/elo



Step IV:
--------

Remove the installed "elousb" driver module from the directory "/lib/modules/`uname -r`/kernel/drivers".

  For 2.4 Kernels:
    > cd /lib/modules/`uname -r`/kernel/drivers
    > rm -r elousb.o 
    > depmod -a
 
  (or)  

  For 2.6 Kernels:
    > cd /lib/modules/`uname -r`/kernel/drivers
    > rm -r elousb.ko
    > depmod -a



Step V: (Debian, Ubuntu systems skip to Step VI)
-------

Redhat, Fedora, SUSE, Mandrake and Slackware systems:
- - - - - - - - - - - - - - - - - - - - - - - - - - -

Delete the command lines inserted in the modules configuration file
in Step VI of the Installation section. Select and modify the
appropriate module configuration file (/etc/modules.conf or
/etc/modprobe.conf) based on the kernel version. Use the "> uname -r"
command to check the current kernel version.

  a.) For 2.4 kernels edit the "/etc/modules.conf" file and delete
      the following line at the end of the file.

       post-install usbcore modprobe elousb
  

    (or)   


  b.) For 2.6 kernels edit the "/etc/modprobe.conf" file and delete
      the following lines at the end of the file. The exact names of
      the USB HID, Keyboard and mouse modules may vary among
      distributions. Refer to the note in Step VI of the Installation
      section for further details. 

      install <name-of-your-hid module> { modprobe elousb; } ; /sbin/modprobe --first-time --ignore-install
      <name-of-your-hid-module> && { /sbin/modprobe/ keybdev; /sbin/modprobe mousedev; /bin/true;}



Step VI:
-------
 
Debian, Ubuntu systems: (Other Linux systems skip to Step VII)
- - - - - - - - - - - -

Delete the command line inserted in the modules configuration file or startup script file in Step VII of the Installation section.

  a.) For Debian system: Edit the "/etc/modules.conf" file and delete 
      the following line at the end of the file.

       post-install usbcore modprobe elousb
  

    (or)   


  b.) For Ubuntu 6 system: Edit the "/etc/init.d/readahead" file and
      delete the following line located before the "exit 0" command
      at the end of the file.
   
      /sbin/modprobe elousb


    (or)   


  c.) For Ubuntu 5.1 system: No modifications are needed as the
      modified "elorc" script has been deleted in Step I of this
      Uninstallation section. Proceed to Step VII.



Step VII:
---------

Reboot the system to complete the driver uninstallation process.
 
  > shutdown -r now 



==================
7. Troubleshooting
==================

A. Every time X Windows is reconfigured using XWindows configurator, 
   the X windows configuration file (xorg.conf or XF86Config) has to     be modified to include the elo device configurations mentioned in     Step II of the Installation section.

B. Hardware Check (For Serial devices only)
   --------------

   To verify that the touchmonitor is connected and functioning 
   correctly, type the following command in an command window 
   for serial port 1 (COM1).

     > od -h -w10 </dev/ttyS0 

   Similarly for serial port 2 (COM2) use,

     > od -h -w10 </dev/ttyS1 

   The screen should start displaying a lot of numbers when the
   screen is touched. The standard Elo protocol data packet is 
   identified by the distinctive appearance of "5455" as the 
   first byte pair of a 10 byte data packet. 

C. The display image should be centered on the screen and fill 
   as much of the visible area of the touchmonitor screen as 
   possible without image distortion. 

  
D. Incase of Mandrake Linux, use the xdm display manager instead of      "Mandrake Display Manager". This can be changed using the      
   "settings" from "display manager". 



==============================
8. Contacting Elo TouchSystems
==============================

Website: http://www.elotouch.com


E-mail:  eloinfo@elotouch.com


Mailing Address: 
----------------

  Elo TouchSystems, Inc.
  301 Constitution Dr.,
  Menlo Park, CA 94025
  USA

  Phone:   (800) 557-1458
           (650) 361-4700
  Fax:     (650) 361-4722

--------------------------------  

  Elo TouchSystems GmbH & Co. KG
  Haidgraben 6
  D-85521 Ottobrunn
  Germany
         
  Phone: +49 (0) 89/60822-0
  Fax:   +49 (0) 89/60822-150

--------------------------------  

  Elo TouchSystems, NV
  Diestsesteenweg 692
  B-3010 Kessel-Lo
  Belgium

  Phone: +32 (16) 35-2100
  Fax:   +32 (16) 35-2101


=====================================================================                  
               Copyright (c) 2006 Elo TouchSystems, Inc.

                          All rights reserved.

===================================================================== 