This article provides information about Elo Multiple Touchscreen Linux Driver, Single-Touch (ST) USB v4.0.1 Installation Instructions
Below are Elo Multiple Touchscreen Linux Driver, Single-Touch (ST) USB v4.0.1 Installation Instructions.
This dirver is obsolete and no longer supported.
Elo Multiple Touchscreen Linux Driver - Single Touch (ST) USB
Intel i686 (32 bit) or AMD64/Intel (64 bit)
Installation/Calibration/Uninstallation Instructions
--------------------------------------------------------------------------------
Version 4.0.1
November 11, 2014
Elo Touch Solutions
===============================================================================
Elo Linux Multiple Touchscreen ST USB Driver package contains userspace Linux drivers designed for Linux kernel 2.6.x and 3.x.x (GCC version 4.0.0 and later), video alignment utility and control panel utilities for single touch Elo touchmonitors (not multi-touch). This multiple USB touchscreen driver works only on Linux distributions that have at least GCC version 4.0.0 or later due to restrictions for compiling the libusb-1.0 library source code.
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. USB Driver Commandline Options and Usage
5. Setting Active Touch Area
6. Calibrating the Touchscreen
7. Retrieving Calibration Values from NVRAM / Pre-Calibration (Optional)
8. Accessing the Control Panel
9. Uninstalling the Elo Touchscreen USB Driver
10. Troubleshooting
11. Contacting Elo Touch Solutions
==========================================================
1. Supported Touchmonitors and Elo Touchscreen Controllers
==========================================================
- Elo Smartset USB Controllers
(IntelliTouch(R) 2701, 2700, 2600, 2500U,
CarrollTouch(R) 4500U, 4000U,
Accutouch(R) 2216, 3000U, 2218,
Surface Capacitive 5020, 5010, 5000,
Accoustic Pulse Recognition(APR) Smartset 7010
and other Elo Smartset USB controllers)
======================
2. System Requirements
======================
- 32 bit Intel i686 (x86) platform (or) [Visit the Linux downloads section at www.elotouch.com
64 bit AMD/Intel x86_64 platform to download driver package for your 32 or 64 bit Linux]
- Kernels supported:
Kernel version 2.6.x (GCC version 4.0.0 and later)
Kernel version 3.x.x
- Xorg Xwindows version supported:
Xorg version 6.8.2 - 7.2
Xorg (Xserver) version 1.3 - 1.8
Xorg (Xserver) version 1.9 and newer
- Motif versions supported:
Motif version 3.0 (libXm.so.3)
- libusb versions supported:
libusb version 1.0
===============================================
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 Elo Touchscreen driver components now require new libusb-1.0
library support (older libusb-0.1 library will not work). Most
newer Linux distributions have started shipping this library
(update to the popular libusb-0.1 library) as a part of their
standard release. Customers can also download and compile the
libusb-1.0 library from source (requires gcc v4.0.0 or later)
available at libusb website. This driver will NOT work with
the older libusb-0.1 library.
d.) Do not extract the downloaded binary package on a Windows system.
e.) Motif 3.0 (libXm.so.3) library is required to use the Graphic User
Interface (GUI) based control panel (/etc/opt/elo-usb/cpl).
Openmotif or lesstif installation packages provide the required
libXm.so.3 library.
Step I:
-------
Copy the elo driver files from the binary folder to the default elo folder. Change the permissions for all the elo driver files. These broad permissions are provided to suit most systems. Please change them to tailor it to your access control policy and for specific groups or users.
a.) Copy the driver files to /etc/opt/elo-usb folder location.
# cp -r ./bin-usb/ /etc/opt/elo-usb
b.) Use the chmod command to set full permissions for all the
users for the /etc/opt/elo-usb folder.(read/write/execute).
These broad permissions are provided to suit most systems.
Please change them to tailor it to your access control
policy and for specific groups or users.
# cd /etc/opt/elo-usb
# chmod 777 *
# chmod 444 *.txt
c.) Copy the udev rules file to /etc/udev/rules.d/ folder location.
Please edit touchscreen device permissions to tailor it to your
access control policy and for specific groups or users.
# cp /etc/opt/elo-usb/99-elotouch.rules /etc/udev/rules.d
Step II:
--------
Configure a script to invoke Elo service at system startup.
Debian, Ubuntu (prior to 6.10) systems:
- - - - - - - - - - - - - - - - - - - - -
Copy the elorc script file present in the /etc/opt/elo-usb directory to the /etc/init.d directory.
# cp /etc/opt/elo-usb/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 larger 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, Slackware and Ubuntu (6.10 or later) 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 line 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.]
/etc/opt/elo-usb/loadEloTouchUSB.sh
SUSE Systems:
- - - - - - -
Add the following line at the end of the configuration script in "/etc/init.d/boot.local" file.
/etc/opt/elo-usb/loadEloTouchUSB.sh
Step III:
----------
Plug in the USB touchscreen and reboot the system to complete the driver installation process.
# shutdown -r now
===========================================
4. USB Driver Commandline Options and Usage
===========================================
The USB (elousbd) driver commandline options are listed below. If required, modify the
/etc/opt/elo-usb/loadEloTouchUSB.sh script file to add commandline options to the elousbd
driver startup.
--help [ Print usage information and available options ]
--version [ Display USB touchscreen driver version information ]
--displaycoordinates [ Display the touch data, corresponding to each touch, on a terminal.
Touch data consists of touch state (Touch/ Stream/ Untouch) along
with X and Y coordinates. This option is used for testing the
touchscreen, hence touch data is only displayed and not sent to the
Xserver to move the mouse pointer. ]
--xwarppointer [ Use XWarpPointer call to send touch events to X window system ]
--activetoucharea <originx,originy,width,height> [ Set the active touch area parameters : OriginX, OriginY, Width and
Height. When these parameters are set, the mouse pointer will
respond to touch input within the specified area only. ]
Usage Examples:
---------------
elousbd --help [ Print this usage information ]
elousbd --version [ Display USB touchscreen driver version information ]
elousbd --displaycoordinates [ Enable printing of touch data to a terminal for testing the touchscreen ]
elousbd --xwarppointer [ Use XWarpPointer call to send touch events to X window system ]
elousbd --activetoucharea 150,200,1000,700 [ Set the active touch area: Origin=(150,200), Width=1000, Height=700 ]
============================
5. Setting Active Touch Area
============================
Important:
==========
The "--activetoucharea" driver commandline option will render some areas of the Linux desktop inaccessible to touch input.
This option currently works with one videoscreen only and its behaviour is unknown in a multiple videoscreen setup. If Elo
touchscreen is the only input device for the Linux system, please pay close attention to the active touch area parameters.
Step I:
-------
Skip this step, if you already know the values for the "--activetoucharea" option parameters.
Open a terminal, check if the USB touchscreen is connected. Then unload the "elousbd" driver, if it is active. Launch the elousbd
driver with "--displaycoordinates" option to determine and compute the values for "--activetoucharea" option parameters (OriginX,
OriginY, Width and Height). Use the sudo command to execute the following commands, if you do not have administrator access.
# lsusb [ List all USB devices connected to the Linux system ]
# killall elousbd [ Unload the elousbd driver, if it was loaded ]
# cd /etc/opt/elo-usb
# ./elousbd --displaycoordinates [ Load the elousbd driver to display coordinates on the terminal]
Now the driver will report the video coordinates corresponding to the area being touched. Use this information to determine and
compute the origin coordinates (top left corner), width and height of the active touch area.
Step II:
--------
Use the values for "--activetoucharea" option parameters (OriginX, OriginY, Width and Height) and load the elousbd driver manually.
# killall elousbd [ Unload the elousbd driver, if it was loaded ]
# elousbd --activetoucharea 150,200,1000,700 [ Set the active touch area: Origin=(150,200), Width=1000, Height=700 ]
To load these parameters every time the driver loads, modify the /etc/opt/elo-usb/loadEloTouchUSB.sh script file and add these commandline options to the elousbd
driver startup.
Note:
=====
When the active touch area option is selected in the driver, all touch events that are generated outside the active area are discarded
by the driver and not reported to Xwindows. Event reporting resumes when touch events are generated within the active area.
==============================
6. Calibrating the Touchscreen
==============================
Important:
==========
Users must have read and write access to "/dev/elo-usb" and "/etc/opt/elo-usb" directory to perform the touchscreen calibration. The previous calibration command line parameters -u and -s are now obsolete. All long command line options in elova calibration utility have been modified to use "--" format instead of "-" format. (example: "--help" instead of "-help")
Type "# /etc/opt/elo-usb/elova --help" for available command line parameters and usage.
Step I:
-------
Run the calibration utility with root previleges from a command window in X Windows from the /etc/opt/elo-usb directory for a single or multiple video setup (supports Xorg Xinerama, Xorg non-Xinerama and Nvidia Twinview options).
# cd /etc/opt/elo-usb
# sudo ./elova --nvram
The '--nvram' or '--precal' option writes the calibration data to the NVRAM on the monitor and the configuration file on the hard disk. To perform the calibration and update only the configuration file on the hard disk, use the command shown below.
# cd /etc/opt/elo-usb
# sudo ./elova
In a multiple video setup, the calibration target(s) will be shown on the first video screen and switch to the next video screen after a 30 second default timeout for each target or screen. Once all the touchscreens are calibrated the data is stored in a configuration file on the hard disk. To display the calibration targets on just one specific video screen(example:videoscreen[1]) use the command shown below.
# cd /etc/opt/elo-usb
# sudo ./elova --videoscreen=1
To change or disable the default calibration timeout for each target or screen, use the command shown below. [Timeout Range: Min=0 (no timeout), Max=300 secs, Default=30 secs]
# cd /etc/opt/elo-usb
# sudo ./elova --caltargettimeout=0 [Disable the calibration timeout for all targets and videoscreens]
# sudo ./elova --caltargettimeout=45 [Modify the calibration timeout to 45 seconds]
To view a list of video and USB touch devices available for calibration, use the command shown below.
# cd /etc/opt/elo-usb
# ./elova --viewdevices
To view all the available options and specific usage for elova calibration program, use the command shown below.
# cd /etc/opt/elo-usb
# ./elova --help
Step II:
--------
Touch the target(s) from a position of normal use. The calibration data is written to the driver at the end of calibration. Accoustic Pulse Recognition(APR) smartset 7010 controller does not require a 3 point calibration like other smartset controllers. If a APR 7010 controller is detected a single touch alignment (only 1 target displayed) is performed instead of a full 3 point calibration.
=============================================================
7. Retrieving Calibration Values from NVRAM / Pre-Calibration (Optional)
=============================================================
Important:
==========
A valid calibration must exist in the monitor NVRAM (Non Volatile Random Access Memory) to use this function. Users must first perform a touchscreen calibration using elova and write the calibration values to the monitor NVRAM. The existing values in the NVRAM will be lost as only one set of calibration values can be stored in the NVRAM. Hence ensure that the current NVRAM calibration values can be overwritten before performing a new calibration and writing to the NVRAM.
Option I: [Manual Option]
---------
To retrieve the calibration values from the NVRAM immediately, run the program 'eloautocalib' from a command window in X Windows from the /etc/opt/elo-usb directory. The command line option '--renew' enables the reading of the calibration values from monitor NVRAM and overwriting the current values in the configuration file on the hard disk.
# cd /etc/opt/elo-usb
# ./eloautocalib --renew
To view all the available options and specific usage for eloautocalib program, use the command shown below.
# cd /etc/opt/elo-usb
# ./eloautocalib --help
Option II: [Automatic Option]
----------
Copy the xEloInit.sh script file present in the /etc/opt/elo-usb directory to the /etc/X11/xinit/xinitrc.d/ directory. If the destination "xinitrc.d" does not exist (example: Ubuntu), edit the /etc/X11/xinit/xinitrc script file and add a line to invoke the /etc/opt/elo-usb/xEloInit.sh script file.
# cp /etc/opt/elo-usb/xEloInit.sh /etc/X11/xinit/xinitrc.d/
To retrieve the calibration values from the NVRAM automatically on system
startup, enable the 'eloautocalib' entry in the 'xEloInit.sh' script file located
in the '/etc/X11/xinit/xinitrc.d/' directory. The eloautocalib entry is
commented out by default and does not load the calibration values from monitor
NVRAM. Uncomment the entry '/etc/opt/elo-usb/eloautocalib --renew' to enable
reading the calibration values from monitor NVRAM and overwriting the current
values in the configuration file on the hard disk during system startup.
Default: '# /etc/opt/elo-usb/eloautocalib --renew' - Does not load calibration values from NVRAM
Modified: '/etc/opt/elo-usb/eloautocalib --renew' - Loads calibration values from NVRAM
==============================
8. 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 /etc/opt/elo-usb directory and run control panel application.
Important:
==========
Users must have read and write access to "/dev/elo-usb" folder to run the control panel applications.
Step I:
-------
Run the control panel utility with root previleges from a command window in X Windows from the /etc/opt/elo-usb directory. Motif version 3.0 (libXm.so.3) is required to use the GUI based control panel (/etc/opt/elo-usb/cpl).
# cd /etc/opt/elo-usb
# sudo ./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
Sound - Change Beep on Touch Parameters (Enable/Disable Beep, Beep Tone, Beep Duration)
Touchscreen-0 - Display data related to the USB touchscreen 0.
Touchscreen-1 - Display data related to the USB touchscreen 1.
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 /etc/opt/elo-usb directory.
# cd /etc/opt/elo-usb
# ./cplcmd
=================================================
9. 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 entry created in Step II of Installation section from the configuration script in"/etc/init.d/boot.local" file.
/etc/opt/elo-usb/loadEloTouchUSB.sh
Redhat, Fedora, Mandrake, Slackware and Ubuntu (6.10 or later) systems:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Remove the following entry created in Step II of Installation section from the configuration script in "/etc/rc.local" file. (or "/etc/rc.d/rc.local" file)
/etc/opt/elo-usb/loadEloTouchUSB.sh
Debian, Ubuntu (prior to 6.10) systems:
- - - - - - - - - - - - - - - - - - - - -
a.) Remove the symbolic link file created in Step II 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 all the elo driver files from the system.
a.) Delete the main elo driver folder.
# rm -rf /etc/opt/elo-usb
b.) Delete the elo related device folder and files.
# rm -rf /dev/elo-usb
# rm -rf /etc/udev/rules.d/99-elotouch.rules
Step III:
---------
Reboot the system to complete the driver uninstallation process.
# shutdown -r now
===================
10. Troubleshooting
===================
A. Make sure libusb-1.0 library is installed on the target Linux
system. The driver will NOT work with the older libusb-0.1
library. Most Linux distributions come with the newer
libusb-1.0 library installed by default. It can also be
installed by downloading and compiling the library source
(requires gcc v4.0.0 or later) from the libusb-1.0 website.
B. If touch is not working, check if the elousbd driver is loaded
and currently available in memory. Some Xorg Xserver versions
terminate the touchscreen driver upon user logout. The current
workaround in this situation is to startup the driver from
Xwindows startup script or reboot the system.
# ps -e |grep elo
Check the driver log file for any errors that have been reported.
# gedit /var/log/elo-usb/EloUsbErrorLog.txt
If the driver is not present then load the driver again. Root access
is needed to load the driver manually. Normal users will have to
restart the system so that the elousbd daemon is loaded again during
system startup. Normal users may be able to load the driver manually
depending on access control and file permissions that are setup.
# sudo /etc/opt/elo-usb/elousbd
C. If starting the Elo touchscreen driver from the normal startup
locations like rc.local or boot.local does not work, first test
if the touchscreen is working by manually launching the driver
from a terminal window within XWindows GUI.
# sudo /etc/opt/elo-usb/loadEloTouchUSB.sh
If the touchscreen works when the driver is launched manually,
try to add the touchscreen driver startup line to the end of
one of the XWindows startup scripts. The Xwindows startup scripts
are located usually in the following path /etc/X11/xinit/xinitrc.d/.
Running the touchscreen driver from the Xwindows startup script
will provide touch input ONLY after the user has logged in
successfully at the GUI Login screen.
D. Beep-on-touch feature does not work in the GUI control panel sound tab
(Beep Test button) or if the driver is loaded manually from a non-root
user context. The driver has to be loaded from a system startup script
or root user account for beep-on-touch to function properly. The beep
on touch feature also depends on the pcspkr(PC Speaker) kernel module.
E. While trying to load the driver manually, if you get an error
"Error opening USB_ERROR_LOG_FILE", check the file permissions for
the /var/log/elo-usb/EloUsbErrorLog.txt file. The user needs to have
read and write access to this log file to launch the driver.
F. If the target Linux platform has multiple video screens configured in separate
X video screen mode or Xinerama mode, the cursor may not always respond to
touch on the proper video screen after calibration. The default call the driver
uses to send touch events, XTestFakeMotionEvent has a bug that prevents the
switching of cursor across video screens in separate X video screen mode or
Xinerama mode[Xorg v7.4 or later]. In this case, launch the driver with
"--xwarppointer" commandline parameter to use XWarpPointer call instead of
the XTestFakeMotionEvent call to send touch events to X windows system.
==============================
11. Contacting Elo TouchSystems
==============================
Website: http://www.elotouch.com
E-mail: eloinfo@elotouch.com
Mailing Address:
----------------
Elo Touch Solutions Inc,
1033 McCarthy Blvd,
Milpitas, CA 95035
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) 2014 Elo Touch Solutions
All rights reserved.
================================================================================
000004145</originx,originy,width,height>
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article