EGalax touchscreen no input on Ubuntu 18.04

I'm trying a Egalax touchscreen to work for a TPV on Ubuntu 18.04, but everything I tried didnt work at all. I tried to make it work with "calibrate touchscreen" as Ubuntu seems to detect the screen correctly, but no input at all from calibration. I tried with the Egalax driver as this tutorial: https://wiki.ubuntu.com/Touchscreen

And This other: eGalax Touchscreen Configuration Ubuntu 14.04LTS

But no luck. Nothing happens when I touch the screen. Here is my lsusb:

> tpv@tpv-desktop:~$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 116f:c108 Silicon 10 Technology Corp. Flash Card Reader
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 004 Device 003: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
Bus 004 Device 002: ID 248a:8367  
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 011 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 010 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

xinput -list

 xinput -list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Telink Wireless Receiver                  id=8    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=11   [slave  pointer  (2)]
⎜   ↳ eGalax Inc. USB TouchController           id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Telink Wireless Receiver                  id=9    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=10   [slave  keyboard (3)]
    ↳ Telink Wireless Receiver                  id=13   [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=14   [slave  keyboard (3)]

and

xinput -list-props 12
Device 'eGalax Inc. USB TouchController':
    Device Enabled (150):   1
    Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Calibration Matrix (307):  1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Calibration Matrix Default (308):  1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (272): 1, 0
    libinput Send Events Mode Enabled (273):    0, 0
    libinput Send Events Mode Enabled Default (274):    0, 0
    Device Node (275):  "/dev/input/event13"
    Device Product ID (276):    3823, 1

Any help to make a Egalax touchscreen to work with Ubuntu 18.04 whould be appreciated.

Thanks


Solution 1:

This is working on 5 of my machines and has the advantage that you can stop and start the touchscreen with systemD (systemctl status eGTouch.service)


Download the latest touchscreen driver from eGalax Untar the files

tar xvzf eGTouch_v2.5.5814.L-x

Run setup

sudo ./setup.sh

Create the SystemD .service file.

sudo systemctl edit --force --full eGTouch.service

Paste the following unit file modification

#######################################################
#### eGalax Touch Unit File for auto start on boot ####
#######################################################
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/usr/bin/eGTouchD
DefaultDependencies=no
Before=sysinit.target
After=apparmor.service

[Service]
Type=forking
Restart=always
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3
TimeoutSec=0
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
User=root
Group=root
ExecStart=/usr/bin/eGTouchD start
ExecReload=/usr/bin/eGTouchD restart
ExecStop=/usr/bin/eGTouchD stop

[Install]
WantedBy=multi-user.target
################################################

Then enable it

sudo systemctl enable eGTouch.service

Then restart it

sudo systemctl restart eGTouch.service

Then reboot

sudo reboot