Raspberry Pi-eyed

Raspberry Pi KODI Touchscreen support

Raspberry Pi 2, OSMC & eGalax touchscreen

osmcOMSC: Touchscreen calibration & extra features

UPDATE: uimapper  – calibration works if different resolution selected in KODI, after re-plug/restart.

Thanks to ‘NIce Guy’ for figuring I’d messed up the tarball!! (now fixed…hopefully

NEW: check HERE  to make changes to improve event assignment and UDEV persistence

The following tutorial describes additional steps, after installation of OSMC, to enable calibration and extra functionality for the eGalax touchscreen in KODI.  By using a modified version of ts_calibrate for touchscreen calibration and python utility uinput-mapper, it’s possible to generate a user-input device even which handles the calibration transformations and gives additional BTN_LEFT/RIGHT functionality within KODI on the Raspberry Pi.

The procedure requires to install the following:

  • ts_calibrate
  • uinput-mapper & systemd service script – uimapper.service
  • evemu-tools (not essential, replaces evtest)

The systemd script uimapper.service starts/stops the python script uinput-mapper whenever the input-device is added/removed allowing hot-plugging and grabbing of the device within KODI.

Step 1: Install ts_calibrate

Stop KODI…

Download files…

Install the deb package…

Next, edit the file ts_calib.sh and change the event-device to the correct event# for the touchscreen device on your system, to find correct event use evemu-record (needed to update first)…

Now run the script and calibrate the touchscreen….

Step 2: Install uinput-mapper,  uimapper.service and udev rules files

Download files and extract tar…

Next, move the udev rules file to the correct location and reboot.

To find the correct touch device for the system service type the following…

You should see your device, mine is here below (i.e. dev-input-event3.device)

Next, edit the file uimapper.service and change the event-device to the correct event description (‘BindsTo=’, ‘After= ‘, ‘/dev/input/event#’ and ‘WantedBy=”) for the touchscreen device on your system and then move it to the correct directory…

Move file to correct directory and enable the service…

That’s all, you can now Reboot.


You can check the status of uimapper.service by typing…

To see the processes running in the background type…

40 thoughts on “Raspberry Pi 2, OSMC & eGalax touchscreen

  • radi says:

    hi mark,

    thanks for this update! its great.

    something that came up in the comments of the older post:
    uncle-sam suggested that one should edit the file
    to change the screen touchscreen resolution if the cursor is displaced

    party on

    • admin says:

      Hi Radi,

      Glad it worked.

      Regarding the screen resolution. This is a difficult one for a universal solution, I have tried many things on my system. I had it working for me when I changed to different resolutions in both config.txt and KODI. I came to the conclusion that if the ‘user’ has to change a couple of lines of code then it ain’t too bad!
      It’s also possible to create custom config files based on the touchscreen.py one that I did to suit your requirements.

      The ts_calib file uses the screen info given in config.txt, also reported in tvservice command. This may be different value than the screen resolution in KODI and overscan adjustment setting ( I needed to combat the bezel i have reducing the 7″ to 6.5″ screen). I tried many combinations to achieve a universal solution for every combination to suit my needs and early blog comments.

      The conclusion was to calibrate the screen in the same resolution you were going to use in KODI.

      With the new OSMC skin, the pointer is off to the right, it’s not designed for mouse or touchscreen. The top left of the arrow is the original pointer datum.

      My main philosophy was to create a solution that would work and give people the ability to play/learn as I have with no prior knowledge of Linux hardware or software.

      So please, party on and have fun!

  • Daniel says:

    Hey Mark, this is working best! Forget about my post in the old Raspbmc Tutorial! But I have an Issue with the double clicks or “enter klicks”! Is it not possible to tell the pi, that every touch is a click!? Thank u!
    Best, Daniel

    • admin says:

      Hi Daniel,

      Q1. I have been looking at previous problem, yes their is a bug which has been flagged before, but only just found real cause. I am in process of resolving and will post Q&A’s when done. (in short, tvservice -s matchs KODI resolution selection, but KODI log reports different resolution, in some cases which could cause touchscreen scaling issues)

      Q2. If the single click (long press) or right-click (longer press) isn’t working, stop mediacenter and check evemu-record to see if you get uimapper and both (double BTN_LEFT) for long press and (BTN_RIGHT) for longer press.

      hope it helps,

      • Daniel says:

        Thank u for your reply! The Clicks are working, but is is possible to change the time for pressing (left click, right click) ???

        Isn’t there a parameter for left click, where i can configure, that every touch, (also very short touches) are left clicks?

        Hope you understand my idea now! Otherwise I will switch to German! :) Best!!!

        • admin says:

          Hi Daniel,

          Yes you can play,

          sudo nano /scripts/uimapper/input-create.py

          Check the range and time section at the bottom of the file, try different values.

          Once saved, either re-plug touchscreen, or by SSH type:

          sudo systemctl restart uimapper.service

          If you want it more responsive , I think you can add a nice value to systemd script under [Service] section in uimapper.service file. (for example Nice=-10)

          sudo nano /lib/systemd/system/uimapper.service

          Your English is perfect, hope this works!



          • Daniel says:

            Works like a charme! Good work and really nice support!

            Looking forward for a solution concerning 1024×600!

            Thank you!!!

  • admin says:

    HI Daniel,

    thanks, it should work in 1024×600, it does for me, if your monitor natively supports it that is. Calibrate in that screen and change kodi to DESKTOP resolution, test with ‘tvservice -s’ via ssh and then check kodi.log in

    sudo find / -name kodi.log

    you should see something like this within:

    22:12:46 T:1956696064 NOTICE: Found resolution 1024 x 600 for display 0 with 1024 x 600 @ 59.000000 Hz

    whereas, here below causes the problem:

    22:12:46 T:1956696064 NOTICE: Found resolution 1152 x 720 for display 0 with 1440 x 900 @ 85.000000 Hz

    if its has 2 different resolutions then this is the problem I am fixing, nearly done, probably by later on today.


    • Daniel says:

      That is what i see in the Kodi.log:

      12:55:07 T:3024539648 NOTICE: Found resolution 640 x 480 for display 0 with 640 x 480 @ 60.000000 Hz

      12:55:07 T:3024539648 NOTICE: Found resolution 1024 x 600 for display 0 with 1024 x 600 @ 60.000000 Hz
      12:55:07 T:3024539648 NOTICE: Found resolution 1024 x 600 for display 0 with 1024 x 600 @ 59.940063 Hz
      12:55:07 T:3024539648 NOTICE: Found (1024×600@60.000000) at 69, setting to RES_DESKTOP at 16

      (edited post)

      • admin says:

        This looks good, I still need to fix things, but basically,
        1. set your display in config.txt,
        2. check with tvservice -s that it is the same and calibrate.
        3. Then set KODI to DESKTOP. It should work ok, for now you could try setting the following in touchscreen.py (but this is a old ‘fudge’ to ‘fudge’ my ‘fudge’) (fudge meaning a dodge/cheat)

        xmres = 1024
        ymres = 600

        I can check later hopefully with my completed modifications. Don’t forget you can change overscan etc in KODI video calibration too.


  • admin says:


    Most improvements and bugs fixed now, so all seems to work well. Screen resolution changes needs re-plug or restart uimapper, will change files on google drive shortly.

  • bfak says:

    Thanks it works great with my 7″ Touchscreen

    • admin says:

      I will upload new version shortly, slight changes to touchscreen.py, if it works no need to change.
      The update resolves issues when KODI resolution differs from calibration resolution.

  • uncle-sam says:

    great! thank you for doing this!

    but unfortunately it doesn’t work for me. the uimapper.service still doesn’t works.
    if i try to start the uimapper.service i get:

    “root@osmc:~# systemctl start uimapper.service
    Job for uimapper.service failed. See ‘systemctl status uimapper.service’ and ‘journalctl -xn’ for details.”

    if i type then

    “root@osmc:~# systemctl status uimapper.service”

    i get:

    “* uimapper.service – uimapper
    Loaded: loaded (/lib/systemd/system/uimapper.service; enabled)
    Active: failed (Result: exit-code) since Fri 2015-04-03 16:40:26 UTC; 20s ago
    Process: 378 ExecStart=/bin/sh -ec exec ./input-read.py $UIMAPPER_DEV -D | ./input-create.py $UIMAPPER_CONF & (code=exited, status=200/CHDIR)

    Apr 03 16:40:26 osmc systemd[1]: uimapper.service: control process exited, code=exited status=200
    Apr 03 16:40:26 osmc systemd[1]: Failed to start uimapper.
    Apr 03 16:40:26 osmc systemd[1]: Unit uimapper.service entered failed state.”

    any idea how this could be solved?

    eventually any conflicts with the config.txt? it is the only file i’ve edited for now.

    • admin says:

      Hi uncle-sam,

      Sorry it’s not working, please first check the download link for uimapper.tar.gz is correct:

      wget --no-check -O uimapper.tar.gz "https://docs.google.com/uc?export=download&id=0B4lrG9aRe-8MNF9MR1Fsakc0X3M"

      The problems might ie in the touchscreen.py file, hence uimapper.service not starting. What’s the native screen resolution?

      tvservice -m CEA


      • uncle-sam says:

        hi mark

        the download link is correct.
        the in config.txt used display resolution is 1024 x 600. the config.txt looks that way:


        hdmi_cvt=1024 600 60 30 0 0 0


        tvservice -m CEA gives me:

        (native) mode 4: 1280×720 @ 60Hz 16:9, clock:74MHz progressive 3D:TopBot|SbS-HH
        (native) mode 19: 1280×720 @ 50Hz 16:9, clock:74MHz progressive 3D:TopBot|SbS-HH

        i don’t know what to do…

        i got some trouble with the events. if i connect my vigo usb-soundcard the events are changing and the calibration doesn’t work anymore. are there any known issues? for calibrating and installing uimapper and even for testing i disconnected the usb-soundcard.

        • admin says:

          Hi Sorry for delay, family priorities, I’m looking into and think I’ve found a solution to the problems and intend to update soon

      • benjamin988 says:


        Great tutorial, I had a lot of problems finding a complete tutorial on this !

        Unfurtunatly I have the same problem than uncle-sam.
        The error message when launching uimapper.service is the same.

        I double-checked the download link for uimapper.tar.gz and it is correct.

        Here is the config given by evemu-record for the screen :

        Input device name: “eGalax Inc. USB TouchController”
        # Input device ID: bus 0x03 vendor 0xeef product 0x01 version 0x100
        # Supported events:
        # Event type 0 (EV_SYN)
        # Event code 0 (SYN_REPORT)
        # Event code 1 (SYN_CONFIG)
        # Event code 3 (SYN_MAX)
        # Event type 1 (EV_KEY)
        # Event code 330 (BTN_TOUCH)
        # Event type 3 (EV_ABS)
        # Event code 0 (ABS_X)
        # Value 1075
        # Min 0
        # Max 2047
        # Fuzz 0
        # Flat 0
        # Resolution 0
        # Event code 1 (ABS_Y)
        # Value 910
        # Min 0
        # Max 2047
        # Fuzz 0
        # Flat 0
        # Resolution 0

        Hoping there is a solution for making this screen work on osmc !

  • Hourglass says:

    hi ,
    i have the same problem here

    “root@osmc:~# systemctl start uimapper.service
    Job for uimapper.service failed. See ‘systemctl status uimapper.service’ and ‘journalctl -xn’ for details.”

    screen resolution 1366×768

    please help long time waiting for the device

    • admin says:

      Hi, yes it seems like input-read.py does not grab device, check device details, stop all services (mediacenter / uimapper) and try command line form /scripts/uinput-mapper folder.

      sudo ./input-read.py /dev/input/event3 -D | ./input-create.py configs/touchscreen.py

      change event no. to suit and check output for errors.

      will post updates soon, for auto-resolution change detection.


      • Nice Guy says:

        Hey guys,

        tried to test something.
        The problem is the filestructure.

        Try this to fix “sudo systemctl start uimapper.service” – failure:

        sudo mkdir /scripts/uinput-mapper/
        sudo mv /scripts/scripts/uinput-mapper/*.* /scripts/uinput-mapper/
        sudo systemctl enable uimapper.service
        sudo systemctl start uimapper.service

        • admin says:

          HI Nice guy, thanks for this, not been able to get around to having a look. I will re-post the corrected files, with some improvements/changes soon.

          Thanks for your contribution


      • Nice Guy says:

        Hi Mark,

        its me again.

        Got a problem with the calibration on my 7″ touchscreen TFT.

        sudo sh ts_calib.sh took variables into /etc/pointercal
        Thats all ok. No problem with permissions or other.

        After calibration i do a reboot. The touchscreen doesn’t function as well.
        Slide to the right > pointer goes at the bottom.
        Slide to the left > pointer goes at the top.
        Slide to the top > pointer goes at the left.
        Slide to the bottom > pointer goes at the right.

        Any idea for me?

        Thanks u a lot :-)

        • admin says:

          Hi Nice Guy,
          Sounds like x/y axis are swapped, what does pointercal look like? check bottom top-left/bottom right values in evemu-record when uimapper/mediacenter service stopped compared with the touch event values when uimapper is running (i.e. should it be swapped).
          hope it helps!


          • Nice Guy says:

            Hi Mark,

            thank u for support.

            My pointercal shows:
            -1091824 41576 73 -424000 23977 96 65536
            uimapper (and mediacenter) deactivated:
            # Waiting for events #
            E: 0.000000 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 0.000000 0001 014a 0001 # EV_KEY / BTN_TOUCH 1
            E: 0.000000 0003 0000 0198 # EV_ABS / ABS_X 198
            E: 0.000000 0003 0001 0134 # EV_ABS / ABS_Y 134
            E: 0.000000 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.063983 0003 0000 0197 # EV_ABS / ABS_X 197
            E: 0.063983 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.087992 0003 0000 0195 # EV_ABS / ABS_X 195
            E: 0.087992 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.095990 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 0.095990 0001 014a 0000 # EV_KEY / BTN_TOUCH 0
            E: 0.095990 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.056400 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 3.056400 0001 014a 0001 # EV_KEY / BTN_TOUCH 1
            E: 3.056400 0003 0000 1850 # EV_ABS / ABS_X 1850
            E: 3.056400 0003 0001 1896 # EV_ABS / ABS_Y 1896
            E: 3.056400 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.168396 0003 0000 1851 # EV_ABS / ABS_X 1851
            E: 3.168396 0003 0001 1897 # EV_ABS / ABS_Y 1897
            E: 3.168396 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.200400 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 3.200400 0001 014a 0000 # EV_KEY / BTN_TOUCH 0
            E: 3.200400 0000 0000 0000 # ———— SYN_REPORT (0) ———-

            uimapper activated
            # Waiting for events #
            E: 0.000000 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 0.000000 0001 014a 0001 # EV_KEY / BTN_TOUCH 1
            E: 0.000000 0003 0000 0210 # EV_ABS / ABS_X 210
            E: 0.000000 0003 0001 0156 # EV_ABS / ABS_Y 156
            E: 0.000000 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.063980 0003 0000 0209 # EV_ABS / ABS_X 209
            E: 0.063980 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.087987 0003 0001 0155 # EV_ABS / ABS_Y 155
            E: 0.087987 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.111990 0003 0000 0208 # EV_ABS / ABS_X 208
            E: 0.111990 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.135994 0003 0000 0207 # EV_ABS / ABS_X 207
            E: 0.135994 0003 0001 0154 # EV_ABS / ABS_Y 154
            E: 0.135994 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.159995 0003 0000 0206 # EV_ABS / ABS_X 206
            E: 0.159995 0003 0001 0152 # EV_ABS / ABS_Y 152
            E: 0.159995 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.175998 0003 0001 0151 # EV_ABS / ABS_Y 151
            E: 0.175998 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.200000 0003 0000 0205 # EV_ABS / ABS_X 205
            E: 0.200000 0003 0001 0150 # EV_ABS / ABS_Y 150
            E: 0.200000 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.224005 0003 0001 0148 # EV_ABS / ABS_Y 148
            E: 0.224005 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.248007 0003 0001 0147 # EV_ABS / ABS_Y 147
            E: 0.248007 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.272011 0003 0001 0146 # EV_ABS / ABS_Y 146
            E: 0.272011 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 0.304012 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 0.304012 0001 014a 0000 # EV_KEY / BTN_TOUCH 0
            E: 0.304012 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.840494 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 3.840494 0001 014a 0001 # EV_KEY / BTN_TOUCH 1
            E: 3.840494 0003 0000 1838 # EV_ABS / ABS_X 1838
            E: 3.840494 0003 0001 1878 # EV_ABS / ABS_Y 1878
            E: 3.840494 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.904492 0003 0000 1837 # EV_ABS / ABS_X 1837
            E: 3.904492 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.952499 0003 0000 1836 # EV_ABS / ABS_X 1836
            E: 3.952499 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 3.976503 0003 0000 1835 # EV_ABS / ABS_X 1835
            E: 3.976503 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 4.000508 0003 0000 1834 # EV_ABS / ABS_X 1834
            E: 4.000508 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 4.016510 0003 0000 1833 # EV_ABS / ABS_X 1833
            E: 4.016510 0000 0000 0000 # ———— SYN_REPORT (0) ———-
            E: 4.024512 0004 0004 852034 # EV_MSC / MSC_SCAN 852034
            E: 4.024512 0001 014a 0000 # EV_KEY / BTN_TOUCH 0
            E: 4.024512 0000 0000 0000 # ———— SYN_REPORT (0) ———-

            Any Idea?

            Thanks :-)

          • Nice Guy says:

            Hi Mark,

            shame on me. Fixed the cable connection between display and usb-touch-connector. Reinstalled the uimapper and it works!

            Thank u very much. Have a nice weekend.


          • admin says:

            Hi Christian,
            No shame on you!!
            Great to see you’ve got it working, and many thanks for your input, I love it when someone finds a fix for me too!

  • admin says:

    Think I will try to post a troubleshooting section soon, to show how to diagnose a fault,; think I keep falling into the ‘it works for me’ trap!!

    Btw, some users seem not to be aware that the main purpose of this solution was to add more functionally within KODI.
    – single short touch just ‘selects’,
    – longer touch is a double click and,
    – even longer touch gives a right click (useful for options menus/return from page)

    This was the whole point of using this over other solutions.

    Also, if it seems ‘laggy’, then add a Nice=-10 to the uimapper.service file (under [Service], it makes a big difference.

    This is not a perfect solution, I’m looking into others. I’ve also had it working on an android system, which I prefer since KODI is not my favorite.

    Will post new solution soon, with resolution change support


    Personally, I’m trying to

  • uncle-sam says:

    you’re my hero!

    you made it! i don’t know how, but with the knew tutorial it works perfect.
    it even works after reboot. no issus discovered for now.

    thank you very much for your effort.

    wish you all a nice week.

    • admin says:

      Great news,

      There was a problem with the tar file, I’d ‘tarred’ it within another folder. I am thinking of adding my latest version too, soon. Monitoring for screen changes (with tvservice -m) and then resetting the touchscreen to the new resolution.


  • admin says:

    Hi again,
    Finally made some progress, I will post a new section with the changes to uimapper. These include monitoring for resolution changes and auto adjustment.
    Changes to uimapper.service/udev input tagging for hotplug and persistence. In the event of re-plugging usb device and or adding other devices, I have symlinked the touchscreen device event that creates the touch event output, hopefully will work for all.

    Changes to udev tagging rules for inputs.

    This symlinks a device called ‘/dev/uimapper’ (linked to ‘/dev/input/event#’ <— where my touchscreen event has a property ENV{ID_INPUT_TABLET}==”1″, to distinguish between the 2 events created). It also creates a systemd device called ‘dev-uimapper.device’ for use in the ‘uimapper.service’ file. Those who would like to test, here’s how to modify the files. —————————————————————————————- Changes to udev rule sudo nano /etc/udev/rules.d/99-input-tagging.rules ACTION==”add”, KERNEL==”event*”, SUBSYSTEM==”input”, ATTRS{product}==”Touch”, ENV{ID_INPUT_TABLET}==”1″, SYMLINK+=”uimapper”, TAG+=”systemd”, ENV{SYSTEMD_ALIAS}+=”/sys/subsystem/input/devices/$env{ID_SERIAL}” Make sure the above is all on one line in the rules.d file —————————————————————————————- Changes to uimapper.service sudo nano /lib/systemd/system/uimapper.service [Unit] Description=uimapper BindsTo=dev-uimapper.device After=dev-uimapper.device [Service] Type=forking Environment=UIMAPPER_DEV=/dev/uimapper Environment=UIMAPPER_CONF=configs/touchscreen.py Environment=UIMAPPER_DIR=/scripts/uinput-mapper WorkingDirectory=/scripts/uinput-mapper Nice=-10 ExecStart=/bin/sh -ec “exec ./input-read.py $UIMAPPER_DEV -D | ./input-create.py $UIMAPPER_CONF &” [Install] WantedBy=dev-uimapper.device —————————————————————————————- Try it, hotpug, add devices, reboot, all should work, if your touchscreen has two events and you need to find the correct one automatically, I did the following. To find the correct event for my touchscreen I tried both events using ‘udevadm’. udevadm info /dev/input/event2 udevadm info /dev/input/event3 Here, I can see the only property to change between the two events are for event2, ‘ID_INPUT_MOUSE=1′ and for event3, ‘ID_INPUT_TABLET=1′. If it is different for you then change the udev rule using another attribute instead. Hope this is clear and you find it useful. I will add another post with all improvements and file changes soon. cheers mark

  • JD says:

    I have NO idea what I am doing wrong but although I have my Touch Screen plugged in correctly, I only get ” evemu-record [output file] ” when I try and run the evemu-record. It’s like it’s not seeing my touch screen. Hopefully someone can help me in this case, as I am a definite N00B.


    • admin says:

      Hi JD,

      Are you using te correct version of OSMC, RPI2? (think theere were inital issues with kernel configurations.

      Try directly into pi, not using hub.
      Things to try to check if device is working on system, or to find reasons why it’s not.
      1. try ‘lsusb’, first install ‘usbutils’ using ‘apt-get install usbutils’
      2. Check output of ‘dmesg’ , look for usb input devices.

      Hope this helps,
      Btw, what is the make, maybe someone else has similar?


  • Herbert says:

    First I wanted to thank the great work, disposal and spent.

    I followed the tutorial step by step but the last have problems, gives me the message

    “Root @ OSMC: ~ # systemctl start uimapper.service
    Job for uimapper.service failed. See ‘systemctl uimapper.service status’ and ‘journalctl -xn’ for details. ”

    achievement not solve it, appreciate it if you could give me some guidance to solve

    • admin says:

      Hi Herbert,

      Try entering ‘systemctl status uimapper’ for more info and also check you have the correct device event. It seems uimapper is not starting since the python scripts are not executing. Maybe wrong device event.
      Iif you stop uimapper & medicenter, you can try to run scripts from command line. i.e.

      cd /scripts/uinput-mapper

      ./input-read.py /dev/input/event0 -D | ./input-create.py configs/touchscreen.py

      change the event# to yours

      hope it helps,


  • MIke says:

    Hi Thanks for a great tutorial. I have been in a match trying to get this to work. For some reason when I do the evemu command I do not see my screen. However when I an lsusb command I see it. Any thought or help on what I can do to see this and start to use my new touchscreen. Much appreciated and thank you so much.

    • admin says:

      Hi Mike,

      Sorry to hear you are having problems, looks like you can see the usb device connected, but it isn’t generating the the input event, maybe?
      if this is the case, then you should try new install of OSMC to check everything works as expected (without calibration) prior to installing uimapper.

      IF all as expected, then there may be an issue with the udev input tagging, try editing/removing the file to test:
      sudo nano /etc/udev/rules.d/99-input-tagging.rules

      Remove it, reboot and see if your device shows up. Might be related to this post here? I can only test on my system so may need refining.


      I use ATTRS{product}==”Touch”, ENV{ID_INPUT_TABLET}==”1″ to identify my touchscreen, maybe yours is different.

      Hope some of this makes sense and helps


  • Taggart says:

    I am on a Pi2 running Kodi and XBMC (xbian) with a Tontec 7 inch touch screen.

    When I get to
    sudo apt-get install evemu-tools
    I get this…
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    E: Unable to locate package evemu-tools

    Then, of course, when I run
    I get
    -bash: evemu-record: command not found

    Do I have to add an additional repository for evemu-tools? If so, can someone point me to it please?

    • admin says:

      Hi Taggart,

      This particular post is specific to OSMC, I haven’t tried xbian/rpi2 with this method. IN your case if you cannot install evemu-tools, try evtest and see if that works.
      Not sure if xbian still uses UPSTART or has changed to systemd, which will present you with start-up problems using this method.

      Hope this is clear.

Leave a Reply to JD Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre prompt="" escaped="" class="" title="" data-url=""> <span class="" title="" data-url="">