================================================================================ Elo Multiple Touchscreen Linux Driver - Single-Touch and Multi-Touch Serial Intel i686 (32 bit) or AMD64/Intel (64 bit) Installation/Calibration/Uninstallation Instructions -------------------------------------------------------------------------------- Version 3.7.2 August 20, 2024 Elo Touch Solutions ================================================================================ Elo Linux Multiple Serial Driver package contains native Linux drivers designed for Linux kernel 2.4, 2.6, 3.x and later, video alignment utility, rotation utility and control panel utilities for Elo touchmonitors. The touch driver will support the various multi-video setup without any additional configuration. ATI Big Desktop, Nvidia Twinview, Merged Buffer, Xorg Xinerama and Xorg Separate X screens(non-Xinerama) modes are supported. This readme file is organized as follows: 1. Supported Touchmonitors with Elo Touchscreen Controllers and EETI controllers 2. System Requirements 3. Installing the Elo Touchscreen Serial Driver 4. Serial Driver Commandline Options and Usage 5. Calibrating the Touchscreen 6. Retrieving Calibration Values from NVRAM (Non Volatile Random Access Memory) / Pre-Calibration (Optional) 7. Accessing the Control Panel 8. Adapting Touchscreen Calibration to Video Rotation (Optional) 9. Uninstalling the Elo Touchscreen Serial Driver 10. Troubleshooting 11. Contacting Elo Touch Solutions ========================================================== 1. Supported Touchmonitors and Elo Touchscreen Controllers ========================================================== The following touch controller hardware is supported: Elo IntelliTouch surface acoustic wave technologies: CTR-2300, CTR-2310, CTR-2310B CTR-2701 CTR-2500, CTR-2510 CTR-3200 Elo CarrollTouch infrared technologies: CTR-4000, CTR-4500, CTR-4501 Elo AccuTouch resistive technologies: CTR-2210, CTR-2216, CTR-2218 Elo TouchPro projected capacitive technologies: CTR-825000, CTR-825032, CTR-825084, CTR-825184, CTR-825284 CTR-9201, CTR-9301 Connection through USB-to-RS232 converter is supported. ====================== 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.4.18 and later Kernel version 2.6.xx Kernel version 3.x.xx Kernel version 3.8 or later: for multi-touch from EETI serial controller - XFree86/Xorg supported: Xfree86 version 4.3.0 Xorg version 6.8.2 - 7.2 Xorg (Xserver) version 1.3 and later - Motif versions supported: Motif version 3.0 (libXm.so.3) Motif version 4.0 (libXm.so.4) =============================================== 3. Installing the Elo Touchscreen Serial Driver =============================================== Important: ========== a.) Must have administrator access rights on the Linux machine to install the Elo Touchscreen Serial Driver. b.) Ensure all earlier Elo drivers are uninstalled from the system. Follow the uninstallation steps from the old driver's readme.txt file to remove the old driver completely. c.) Do not extract the downloaded binary package on a Windows system. d.) Motif 3.0(libXm.so.3) or 4.0(libXm.so.4) library is required to perform standard touchscreen calibration (elova) and use the graphical control panel (cpl). Openmotif or lesstif or libmotif installation packages provide the required libXm.so.3 or libXm.so.4 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-ser folder location. # cp -r ./bin-serial/ /etc/opt/elo-ser b.) Use the chmod command to recursively set full permissions for all the users for the /etc/opt/elo-ser 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-ser # chmod -R 777 * # chmod -R 444 *.txt Step II: [Linux distributions with systemd init system] -------- Install a script to invoke Elo service through systemd init at system startup. Check if systemd init is being used in your Linux distribution and then proceed with this installation step. If systemd init is not active, proceed with Step III of the installation. Check for active systemd init process. # ps -eaf | grep [s]ystemd # ps -eaf | grep init # ls -l /sbin/init If systemd init system is active, copy and enable the elo.service systemd script to load the elo driver at startup. Proceed to Step IV of the installation. # cp /etc/opt/elo-ser/eloser.service /etc/systemd/system/ # systemctl enable eloser.service # systemctl status eloser.service Note 1: ======= Edit /etc/opt/elo-ser/loadEloSerial.sh Replace in the command /etc/opt/elo-ser/eloser with one of the following names based on which serial ports the touch inputs are connected. ttyS0 : for /dev/ttyS0 ttyS1 : for /dev/ttyS1 ttyS2 : for /dev/ttyS2 ,etc. ttyUSB0 : for USB-to-RS232 converter device 0 ttyUSB1 : for USB-to-RS232 converter device 1 Example: /etc/opt/elo-ser/eloser ttyS0 ... /etc/opt/elo-ser/eloser ttyUSB0 ... Step III: -------- Install a script to invoke Elo drivers at system startup. Redhat, Fedora, Mandrake, Slackware, Debian and Ubuntu systems: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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.] /etc/opt/elo-ser/setup/loadelo /etc/opt/elo-ser/eloser ... [See Note 1 below for ] SUSE Systems: - - - - - - - Add the following two lines at the end of the configuration script in "/etc/init.d/boot.local" file. /etc/opt/elo-ser/setup/loadelo /etc/opt/elo-ser/eloser ... [See Note 1 below for ] Note 2: ======= Replace in the command /etc/opt/elo-ser/eloser with one of the following names based on which serial ports the touch inputs are connected. ttyS0 : for /dev/ttyS0 ttyS1 : for /dev/ttyS1 ttyS2 : for /dev/ttyS2 ,etc. ttyUSB0 : for USB-to-RS232 converter device 0 ttyUSB1 : for USB-to-RS232 converter device 1 Example: The modified lines for ttyS1 and ttyS2 (2 touchscreens) should be, ... /etc/opt/elo-ser/setup/loadelo /etc/opt/elo-ser/eloser ttyS1 ttyS2 ... ... /etc/opt/elo-ser/setup/loadelo /etc/opt/elo-ser/eloser ttyUSB0 ... Step IV: --------- Reboot the system to complete the driver installation process. # shutdown -r now ============================================== 4. Serial Driver Commandline Options and Usage ============================================== The Serial (eloser) driver commandline options are listed below. If required, add the necessary commandline options to the eloser driver startup entry. --help [ Print usage information and available options ] --version [ Display Serial 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. ] --handshake [ Enable hardware handshake(flow control) for all serial ports specifed on command line ] [ Specify valid serial ports for touch input like ttyS2, ttyS0, etc. ] Usage Examples: --------------- eloser --help [ Print this usage information ] eloser --version [ Display Serial touchscreen driver version information ] eloser ttyS0 [ Enable single touchscreen on serial port ttyS0 ] eloser ttyS2 ttyS0 [ Enable multiple touchscreens on serial ports ttyS2 and ttyS0 ] eloser --handshake ttyS1 ttyS0 [ Enable hardware handshake(flow control) and enable serial ports ttyS1 and ttyS0] eloser --displaycoordinates ttyS0 [ Enable printing of touch data to a terminal for testing the touchscreen on serial port ttyS0] eloser ttyUSB0 [ Enable single touchscreen on serial port ttyUSB0 ] ============================== 5. Calibrating the Touchscreen ============================== Calibration is a tool that asks user to touch specific displayed targets. The driver then offsets and scales all subsequent touch coordinates so that touch response is properly aligned to the displayed video. Calibration is typically recommended for best touch accuracy (touch-to-video alignment) on AccuTouch resistive, IntelliTouch surface acoustic wave, and CarrollTouch infrared technologies. Calibration is not typically required for TouchPro projected capacitive technologies, which by their design are highly accurate. Calibration is not typically required for Elo AccuTouch (resistive) and IntelliTouch (surface acoustic wave) display products, which are pre-calibrated at the Elo factory. In many older OS (or even possibly some combination of OS & certain touch controllers), rotating the video display may not automatically rotate touch coordinates. If a previously calibrated system's touch becomes "uncalibrated" because of display rotation, use the xrandr system command to rotate touch instead of rerunning the Elo calibration routine. Important: ========== a.) Calibration is not available for CTR-825000, CTR-825032, CTR-825084, CTR-825184, CTR-825284 PCAP touch controller models. b.) Users must have read and write access to "/dev/elo-ser" and "/etc/opt/elo-ser" directory to perform the touchscreen calibration. c.) If the standard calibration program (elova) is not working as expected, try the lighter version (elovaLite) instead. This utility has limited functionality but should work properly on most window managers. The calibration verification procedure(see Step II) is not available in elovaLite. Use the command "# /etc/opt/elo-ser/elovaLite --help" to see the available options and usage information. Step I: ------- Run the calibration utility with root privileges from a command window in X Windows from the /etc/opt/elo-ser directory, for a single monitor or multiple monitor setup. # cd /etc/opt/elo-ser # ./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-ser # ./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-ser # ./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-ser # ./elova --caltargettimeout=0 [Disable the calibration timeout for all targets and videoscreens] # ./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-ser # ./elova --viewdevices To view all the available options and specific usage for elova calibration program, use the command shown below. # cd /etc/opt/elo-ser # ./elova --help Step II: -------- Touch the targets from a position of normal use. The calibration targets have a default timeout of 30 seconds, which can be disabled or modified using the "--caltargettimeout" commandline option. If a timeout occurs the calibration program will move on to the next available video screen. Once the calibration is over, the new calibration values will be applied temporarily so that the calibration can be verified. A dialog box will be displayed to either accept the new calibration or to redo the calibration. The dialog box has a fixed timeout period of 30 seconds. If a timeout occurs, previous calibration values will be restored and the calibration program will move on to the next available video screen. If the new calibration values are not acceptable, select the redo button to restart the calibration process again. The calibration values computed during the previous calibration will be discarded. Select the accept button, if the calibration is good. The calibration data is written to the configuration file and the NVRAM based on the command line parameters. The calibration program will move on to the next available video screen. The new calibration values are available for use immediately after the calibration. ============================================================= 6. This Section Intentionally Blank ============================================================= ============================== 7. 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-ser directory and run control panel application. Important: ========== Users must have read and write access to "/dev/elo-ser" folder to run the control panel applications. Step I: ------- Run the control panel utility with root privileges from a command window in X Windows from the /etc/opt/elo-ser directory. Motif version 3.0(libXm.so.3) or version 4.0(libXm.so.4) is required to use GUI Control Panel (/etc/opt/elo-ser/cpl). # cd /etc/opt/elo-ser # ./cpl Step II: -------- Navigate through the various tabs by clicking on them. Here is an overview of information related to each tab. General - Perform standard touchscreen calibration using elova (not elovaLite) Mode - Change the touchscreen mode Sound - Change Beep on Touch Parameters (Enable/Disable Beep, Beep Tone, Beep Duration) Touchscreen-1 - Display data related to the Serial touchscreen 1. Touchscreen-2 - Display data related to the Serial touchscreen 2. (multiple touchscreen setup) 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-ser directory. # cd /etc/opt/elo-ser # ./cplcmd ===================================================== 8. Adapting Touchscreen Calibration to Video Rotation ===================================================== Use system xrandr command to rotate incoming touch coordinates. ================================================= 9. Uninstalling the Elo Touchscreen Serial Driver ================================================= Important: ========== Must have administrator access rights on the Linux machine to uninstall the Elo Touchscreen Serial Driver. Step I: ------- Delete the script or commands that invoke Elo service at startup. Linux with Systemd init system: ------------------------------- Disable and remove the elo.service startup script registered with systemd init system in Step II of Installation section. # systemctl status eloser.service # systemctl stop eloser.service # systemctl disable eloser.service # systemctl status eloser.service # rm -rf /etc/systemd/system/eloser.service Linux with sysvinit or Upstart or older init system: ---------------------------------------------------- SUSE systems: - - - - - - - Remove the following entries created in Step II of Installation section from the configuration script in"/etc/init.d/boot.local" file. /etc/opt/elo-ser/setup/loadelo /etc/opt/elo-ser/eloser ttyS0 Redhat, Fedora, Mandrake, Slackware, Debian and Ubuntu systems: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Remove the following entries 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-ser/setup/loadelo /etc/opt/elo-ser/eloser ttyS0 Step II: -------- Delete all the elo driver files from the system. a.) Delete the main elo driver folder and device folders. # rm -rf /etc/opt/elo-ser # rm -rf /dev/elo-ser b.) Remove the elo script file "xEloInit.sh" placed in 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 remove the line (if present) that invokes /etc/opt/elo-ser/setup/xEloInit.sh script file. # rm /etc/X11/xinit/xinitrc.d/xEloInit.sh Step III: --------- Reboot the system to complete the driver uninstallation process. # shutdown -r now =================== 10. Troubleshooting =================== A. Hardware Check -------------- 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