• My touchscreen doesn't work, not even the top left "small area", nothing at all.

    It's a resistive "waveshare" touchscreen (it shows up as "d-wav..."). It works in Raspbian but not in LibreELEC.

    I've downloaded and installed Libreelec(version 8.0.3) since it doesn't need complied anymore. Then I searched for the Touchscreen service (service.touchscreen- & System Tools addon and installed them. I've copied ts.conf-waveshare to ts.conf and to I'm not sure exactly what directory to put these, I put them in /storage/.kodi/userdata/addon_data/service.touchscreen. Through tweaking, I've even got the Touchscreen addon to display (not just the loading spinner) but I can't press the cross-hairs because there's no touchscreen inputs. Running evtest does give me output when I touch the screen.

    I believe the problem is the service.touchscreen isn't running...probably because it's error-ed off.
    Where are the logs to see why the daemon isn't running?

    Please help.

  • I changed the PID=0001 (waveshare driver) in to get the touchscreen calibration addon working. But again, I'm not getting any input on the touchscreen itself to calibrate it. How can I tell if the service.touchscreen is running?

  • i got it to finally work. For some reason my touchscreen lists 2 items. When I run evtest, this is what I get...

    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:    eGalax Inc. USB TouchController Pen
    /dev/input/event1:    eGalax Inc. USB TouchController
    /dev/input/event2:    tslib to uinput daemon
    Select the device event number [0-2]:

    I get touchscreen inputs only from /dev/input/event1. When I put the name from /dev/input/event1 into as such...

     TOUCHSCREEN_NAME="eGalax Inc. USB TouchController"

    It didn't work. After a lot of experimenting, I saw this when I ran

    systemctl status service.touchscreen -l

    If you'll notice the second to last line, it's reading from /dev/input/event0, the wrong on. it was always picking up the previous input. I plugged in a bluetooth module which moved everything down but again, it was always off by the previous one. My guess is that there is something wrong with the comparison in the TSLIB_TSDEVICE= line in

    I got it to work by commenting out the line in that tries to discover the device by name and added this line under it.

    TOUCHSCREEN_NAME="eGalax Inc. USB TouchController"
    # TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_NAME="$TOUCHSCREEN_NAME" '$0 ~ TS_NAME {print $1; exit}')

    I basically forced TSLIB_TSDEVICE for testing purposes and it worked. It's not a permanent fix because things move around depending what's plugged into the USB but at least it's a start.

  • You can try

    TOUCHSCREEN_NAME="eGalax Inc. USB TouchController$"

    Notice $ at the end meaning end of string.

    Or checking whole name with

    TOUCHSCREEN_NAME="^[\t ]*eGalax Inc. USB TouchController$"
    TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_NAME="$TOUCHSCREEN_NAME" '$2 ~ TS_NAME {print $1; exit}')


  • Putting the $ in at the end of the string did the trick!

    It now works whether there's USB devices plugged in or not. Thank you so much!

  • Btw: when waveshare touchscreen shows events with evtest then must be copied. is used only for waveshare displays which are using proprietary driver which is included in tslib (it uses raw data from



  • I originally tried the waveshare drivers because after reading here, that's what mine displayed as. However, I could never get it to work. I figured the device was simply displaying the wrong information even though it had 'eGalax' in the description.

    After much frustration, changing the PID in the waveshare driver and what not, I tried the 2 generic drivers, set the TOUCHSCREEN_NAME and noticed that the 'tslib to uinput daemon' was running when I did evtest. However, it was pointed to the wrong device(post #203) so I forced the device for testing purposes and the touchscreen worked! I then used your recommendation with the $ and all is good. Long story short, my touchscreen must not be a waveshare device. Got it from someone on eBay dealing straight from China, no documentation.

    Mod note: added hyperlink to post #93.

  • Hey,

    I've tried to use the image provided by Grruhn to calibrate my faytech touchscreen, but all that comes up when i try to open the calibration addon is a black box...

    How do I get the addon on the latest LibreELEC release? You said it's on the repository, but after looking to install it from within kodi, i couldnt find it listed anywhere. Do I need to add it outside of kodi?

  • Thanks, I've found it! However when trying to run it, it just keeps loading infinitely displaying the two blue circles rotating...

  • Did you copied required files (, ts.conf) manually with ssh session? Probably not.

    This addon is not magic one which would do everything automatically.


  • Fair enough, I assumed that the addon now handles everything. I copied these two files as instructed from Grruhn's post, but with the same result.

  • Which display exactly? Does it work with evtest (when kodi is stopped)? IS the name of touchscreen correctly copied from evtest to file? .......

    What does status show?

    systemctl status service.touchscreen.service


  • Its the faytech 10" capacitive touch monitor (FT10TMBCAP). Does work with evtest. By name do you mean the event name, if so yes.

    Status shows:

  • You are probably missing files ts.conf and in folder /storage/.kodi/userdata/addon_data/service.touchscreen.

    cp /storage/.kodi/userdata/addon_data/service.touchscreen/ /storage/.kodi/userdata/addon_data/service.touchscreen/
    cp /storage/.kodi/userdata/addon_data/service.touchscreen/ts.conf-generic /storage/.kodi/userdata/addon_data/service.touchscreen/ts.conf

    Then change in the line with your touchscreen name


    TOUCHSCREEN_NAME="Goodix Capacitive TouchScreen"