2

my Touchscreen is broken and I need to deactivate it, because it makes 'ghost clicks'. In several hours tried out every possible solution I found on Google - but nothing helped to deactivate it. Now I'm very lost. It would be awesome if you could help me out! What did I do wrong? Or what else shall I try out to deactivate the TouchScreen?

=> EDIT&ANSWERED The solution that worked for me has been described in this post. It's been the UDEV-rule for the USB-device <=

I did the following and all failed:

  • xinput - deactivating
  • xorg.conf.d entry - not loading drivers
  • udev-rule
  • deactivating hid_multitouch

Details about my computer: Thinkpad T440s with Ubuntu 21.10, 64-bit. Wayland Windowmanagment. Gnome 40.4.0. Drop me a message if you need to know more.

xinput:

WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:17                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:17              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-touch:17                         id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:17                      id=8    [slave  keyboard (3)]

I do not know, whether ID 9 is the TouchPad or TouchScreen. Deactivating did not help.

I tried xorg.conf.d as well. I did it in steps, but in the end I tried the maximum: I edited every config-file in /usr/share/X11/xorg.conf.d/ and changed to MatchIsTouchscreen "off" per TouchScreen and added Option "Ignore" "on". Furthermore I created a new file: /usr/share/X11/xorg.conf.d/98-disabletouch.conf

# from file Nr. 40
Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "off"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Ignore" "on"
EndSection

from file Nr. 70

Section "InputClass" Identifier "Wacom USB touchscreen class" MatchUSBID "056a:" MatchDevicePath "/dev/input/event" MatchIsTouchscreen "off" Driver "wacom" Option "Ignore" "on" EndSection

Section "InputClass" Identifier "Wacom touchscreen class" MatchProduct "Wacom|WACOM|PTK-540WL|ISD-V4" MatchDevicePath "/dev/input/event*" MatchIsTouchscreen "off" Driver "wacom" Option "Ignore" "on" EndSection

Dell Canvas 27 (touch part is an Advanced Silicon, pen part a Wacom)

Section "InputClass" Identifier "Dell Canvas 27 Touch" MatchUSBID "2575:0204" MatchDevicePath "/dev/input/event*" MatchIsTouchscreen "off" Driver "wacom" Option "Ignore" "on" EndSection

As this did not work I copied the file to /etc/X11/xorg.conf.d/99-disabletouchscreen.conf as well.

File list: ls /usr/share/X11/xorg.conf.d/

10-amdgpu.conf  10-quirks.conf  10-radeon.conf  40-libinput.conf  70-wacom.conf  98-disabletouch.conf

Full of despair I also created a udev-rule in a new file: sudo gedit /etc/udev/rules.d/94-disabletouchscreen.conf

SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0224", ATTR{authorized}="0"

This is based on the following output for cat /proc/bus/input/devices

I: Bus=0003 Vendor=04f3 Product=0224 Version=0110
N: Name="ELAN Touchscreen"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.5/1-1.5:1.0/0003:04F3:0224.0001/input/input33
U: Uniq=
H: Handlers=mouse0 event5 
B: PROP=0
B: EV=1b
B: KEY=400 0 0 0 0 0
B: ABS=10000000003
B: MSC=10

I: Bus=0003 Vendor=04f3 Product=0224 Version=0110 N: Name="ELAN Touchscreen" P: Phys=usb-0000:00:1d.0-1.5/input0 S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.5/1-1.5:1.0/0003:04F3:0224.0001/input/input34 U: Uniq= H: Handlers=event6 B: PROP=0 B: EV=9 B: ABS=10000000000

I: Bus=0003 Vendor=04f3 Product=0224 Version=0110 N: Name="ELAN Touchscreen" P: Phys=usb-0000:00:1d.0-1.5/input0 S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.5/1-1.5:1.0/0003:04F3:0224.0001/input/input35 U: Uniq= H: Handlers=event17 B: PROP=0 B: EV=100001

Last but not least I tried to deactivate hid_multitouch. Output for: lsmod | grep touch

hid_multitouch         28672  0
hid                   135168  3 usbhid,hid_multitouch,hid_generic

Output for: modinfo hid_multitouch | head

filename:       /lib/modules/5.13.0-37-generic/kernel/drivers/hid/hid-multitouch.ko
license:        GPL
description:    HID multitouch panels
author:         Benjamin Tissoires <benjamin.tissoires@gmail.com>
author:         Stephane Chatty <chatty@enac.fr>
srcversion:     A626AE4AE4D9CF6F069DB68
alias:          hid:b*g0004v*p*
alias:          hid:b*g0002v*p*
alias:          hid:b*g*v000018D1p00005028
alias:          hid:b0003g0002v00001477p00001025

BUT: modprobe -r hid_multitouch had no effect like deactivating the Touchscreen (or Touchpad). Though afterwards the output for lsmod | grep touch was empty, of course. Because it did not work I did not deactivate hid_multitouch permanently.

Now I'm lost and in despair, because I did not find further google solutions after hours of trial and error. I do not want to replace the display/TouchScreen, because it really costs a lot. And the display is working very well, just the Touch Screen makes it almost impossible to work with the laptop.

Do you have an idea for anything else I can try? Or did I do something wrong? I would be very grateful for any advice!

All the best, Manuel

New info: I found the following - not sure whether this is supposed to be that way: ls -l /sys/bus/hid/drivers/hid-multitouch/ says:

lrwxrwxrwx 1 root root    0 Mär 27 19:04 0003:04F3:0224.0001 -> ../../../../devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.5/1-1.5:1.0/0003:04F3:0224.0001
--w------- 1 root root 4096 Mär 27 19:04 bind
lrwxrwxrwx 1 root root    0 Mär 27 19:04 module -> ../../../../module/hid_multitouch
--w------- 1 root root 4096 Mär 27 19:04 new_id
--w------- 1 root root 4096 Mär 27 19:03 uevent
--w------- 1 root root 4096 Mär 27 19:04 unbind

I was wondering about the first folder, because there is no further entry for any other device. ls lists the following content for the folder:

country  driver  hidraw  input  modalias  power  quirks  report_descriptor  subsystem  uevent

Not sure whether it's relevant, but FYI.

ManuelW
  • 21
  • Does sudo echo "0003:04F3:0224.0001" > /sys/bus/hid/drivers/hid-multitouch/unbind disable the touch screen? If so, I’ll write an answer to show you how to make this permanent – matigo Mar 25 '22 at 22:19
  • Unfortunately it did not work. It says: bash: /sys/bus/hid/drivers/hid-multitouch/unbind: Keine Berechtigung (no authorization). I tried to do the command with sudo su (and then without sudo). No complaints about authorization - but no effect either. Thanks for helping - do you have further suggestions? – ManuelW Mar 27 '22 at 09:42
  • Some further info: I added the content of /sys/bus/hid/drivers/hid-multitouch/ above (in the end of the first post). Not sure whether it's relevant, but FYI. – ManuelW Mar 27 '22 at 17:17
  • 1
    I wonder if this answer might work. The touchscreen appears to be using USB, which means it may be possible to disconnect just that one device – matigo Mar 27 '22 at 22:29
  • It worked! I added your link above in the description. THANKS a lot! But: I did only create a udev-rule in /lib/udev/rules.d. In the description it sounds like an odd/old solution. (Further answers are only necessary, if I should rather use the other solution instead of the odd way) Which file is correct? /sys/bus/usb/devices/ => what follows? /usb1/1-1/1-1.5/ looks like having the correct ids (see above). Is it echo disabled | sudo tee /sys/bus/usb/devices/usb1/power/wakeup? Or more than just ./usb1/? I'm afraid to deactivate too many devices. – ManuelW Mar 29 '22 at 21:23
  • Having the correct IDs is important, yes. As is being narrow in the usage of the function. If you disable an entire bus, then no device connected to it can get power. This usually isn’t a problem unless your keyboard is on the same bus, though. For your device, this should be sufficient: echo 0 > /sys/bus/usb/devices/1-1.5/authorized. This will deauthorize the one device from being used. – matigo Mar 29 '22 at 22:26
  • did you also deactivate a pen/stylus if there is one in your laptop? – Johan Sep 09 '23 at 11:35
  • I don’t have one. So i did not think or care about that. – ManuelW Sep 10 '23 at 16:28

0 Answers0