Troubleshooting Linux Touch Driver: "Failed to Start Invoke Elo Service at System Startup"
Audience: Public / System Administrators, Developers & Integrators
Article Type: Troubleshooting & Configuration Guide
The error "Failed to start Invoke Elo service at system startup" typically occurs when the Elo Multi-Touch driver service has not been registered or enabled within the Linux initialization manager (systemd or legacy SysVinit/Upstart).
During installation, manual configuration may be required depending on your Linux distribution and init system architecture. For complete details, refer to the official Elo Linux MT USB Driver Installation Instructions.
Method 1: Modern Linux Distributions using systemd
Most modern distributions (Ubuntu 16.04+, RHEL/CentOS 7+, Debian 8+, Fedora, SUSE) utilize systemd.
1. Verify Active Init System
# ps -eaf | grep [s]ystemd # ps -eaf | grep init # ls -l /sbin/init
2. Enable and Start the Elo Service
If systemd is active, copy and enable the provided service unit:
# cp /etc/opt/elo-mt-usb/elo.service /etc/systemd/system/ # systemctl daemon-reload # systemctl enable elo.service # systemctl start elo.service # systemctl status elo.service
VMware Virtual Machine Note: Starting with MTUSB v4.2, when running inside a VMware virtual machine, the --vm flag is required. Edit /etc/opt/elo-mt-usb/loadEloMultiTouchUSB.sh and append --vm:
/etc/opt/elo-mt-usb/elomtusbd --mtdigitizer --vm
Method 2: Legacy Init Systems (SysVinit, Upstart, non-systemd)
A. Red Hat, CentOS, Fedora, Mint, Debian & Ubuntu
Add the invocation script at the end of your /etc/rc.local (or /etc/rc.d/rc.local) file:
/etc/opt/elo-mt-usb/loadEloMultiTouchUSB.sh
Creating /etc/rc.local on Ubuntu 18.04 LTS or Later:
If /etc/rc.local does not exist, create it with executable permissions:
#!/bin/sh -e /etc/opt/elo-mt-usb/loadEloMultiTouchUSB.sh exit 0
Set execution permissions:
# chmod 755 /etc/rc.local
SELinux Configuration (Red Hat Family):
If SELinux blocks driver execution at startup, set SELinux to disabled or permissive in /etc/selinux/config:
SELINUX=disabled SELINUXTYPE=targeted
B. SUSE Linux Distributions
Append the startup line to /etc/init.d/boot.local:
/etc/opt/elo-mt-usb/loadEloMultiTouchUSB.sh
Please report any broken links by emailing elo.support@zebra.com and include a link to the knowledge article