Disable touchscreen in Linux

Disable touchscreen in LinuxI have a Dell Inspiron 5547, massive laptop with 16GB RAM and Intel i7. It also got a touchscreen. I don’t like touchscreens on laptops and I can’t remember ever using it. I usually plugin my laptop, Desktop and RaspberryPi 2 to an IOGear 4port KVM switch and use a single keyboard and mouse with Dual-screen display. So my point is, I just wanted to disable the touchscreen cause the few times I tried to clean my screen of some dust, (forgetting I have a touchscreen), it messed up my terminal session. I did some tests and found the best way to disable touchscreen in Linux. So here goes:

List loaded modules

Hardware drivers these days uses loadable Kernel module (LKM). So I simply listed all kernel modules and searched for anything that was described as touchscreen.

root@kali:~# lsmod | grep touch
hid_multitouch         20480  0
hid                   118784  5 i2c_hid,hid_multitouch,hid_generic,hid_rmi,usbhid

Disable touchscreen in Linux - blackMORE Ops -1

Note that hid_multitouch module … that is possibly what we are looking for.

Find more info about module

We need to ensure that we got the right module by looking into using modinfo

root@kali:~# modinfo hid_multitouch | head
filename:       /lib/modules/4.7.0-kali1-amd64/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>

Seems legit, as the description clearly says it’s for HID multitouch panels.

Disable touchscreen module

We could try to remove this hid_multitouch to see if that disables touchscreen.

root@kali:~# modprobe -r hid_multitouch 

It worked.

I was also looking in /var/log/messages

root@kali:~# tail -f /var/log/messages

Oct 19 10:58:35 kali /usr/lib/gdm3/gdm-x-session[2299]: (II) config/udev: removing device ELAN Touchscreen
Oct 19 10:58:35 kali /usr/lib/gdm3/gdm-x-session[2299]: (**) Option "fd" "46"
Oct 19 10:58:35 kali gnome-settings-[2505]: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

gnome/gdm3 wasn’t too happy … but that’s normal. Double-checking using lsmod again

root@kali:~# lsmod | grep touch

returns nothing, which is exactly what we wanted.

Making it permanent

Now this is still temporary. Next time I restart my laptop, it will load this hid_multitouch module again. To stop this Linux kernel module from auto loading, we need blacklist it.

In Kali / Debian / Ubuntu, it’s as simple as creating a new blacklist file in modprobe.d folder with correct module name:

root@kali:~# vi /etc/modprobe.d/hid_multitouch.conf
# Use following syntax 
# blacklist driver-name
blacklist hid_multitouch

Save the file and reboot, hid_multitouch module will not be loaded next time. You can follow the same process to disable / unload Linux Kernel modules or blacklist Linux Kernel modules.

Conclusion

This guide explained and concentrated on how to disable touchscreen in Linux. But as you can see, you can disable almost any modules similarly. Just do it temporarily first and you’ll be pretty safe on a single user machine.

Check Also

How to disable touchscreen on Ubuntu

How to disable touchscreen on Ubuntu?

I needed to disable the touchscreen on Ubuntu permanently. Found out that there were few different ways I could do it. Also if you have a device with a broken touchscreen it can cause a whole lot of problems, in many cases it's the sole reason Surface Tablet keeps freezing up.

Unable to connect to WiFi in Linux

Can’t connect to WiFi in Linux

So I installed the latest version of Kali Linux from USB into my RAZER Blade …

6 comments

  1. So maybe have other fixes for this vuln ?

  2. Great, it worked!

    In my case, hid_multitouch disabled all interfaces (including mouse). So I have to disable “usbhid” and everything still and touchscreen is in fact disabled!

    • @raphael – I just had to do the same thing , mine was registering “false touches” Your instructions helped with my Dell Inspiron 5559 (in case someone else googles).

      Thanks!

  3. for a chromebook (2015) to deal w/ the phantom touches i ended up unloading ‘atmel_mxt_ts’

  4. Just a note for those future folks coming across this post – you can disable just the touchscreen. Try using “modprobe -r usbtouchscreen” instead of disabling the HID. Same rules apply for blacklisting on reboot.

    Mine is disabled due to the i2c spam generated when coming out of suspend. Such frustration with those drivers…

Leave your solution or comment to help others.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from blackMORE Ops

Subscribe now to keep reading and get access to the full archive.

Continue reading