How to install a Touch Screen

Asked by Kiko Barcelli

Hello,

I would like to install a LG FLATRON L1510BF touch screen on Ubuntu 8.10-beta.

The screen is working with no problems, what I want is to enable the touch screen functionality.

Does anyone have a step-by-step guide of how to get this going?

Warm regards,

Kiko

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu xf86-input-evtouch Edit question
Assignee:
No assignee Edit question
Solved by:
Kiko Barcelli
Solved:
Last query:
Last reply:
Revision history for this message
Andreas Troschka (signupbox) said :
#1
Revision history for this message
Kiko Barcelli (kikobar) said :
#2

Andreas,
That link seems to be for serial touch screens... mine is USB, manufactured by ITM (from what I can see in the forums and the fact that in Windows it uses an ITM driver)
Any further ideas?
Regards,
Kiko

Revision history for this message
Kiko Barcelli (kikobar) said :
#3

Thanks for all the help... I read the link above plus many others to finally conclude that it was no so complicated.
In fact, if you install Ubuntu 8.10, most of the trouble will go away because the latest drivers already DO work with this device. Most of the confusion I ran into was because I found lots of posts indicating that they didn't work (which was true on earlier versions).
So, if someone has to this after me, he/she may save a lot of time by replicating what I did:

1.- Install/upgrade to Ubuntu 8.10

2.- Your device should be recognised by the system, and some drivers will be loaded. To test this you can open a terminal and run the following comands:

            lsusb

This command will list all the USB devices in your PC, in my case the output is:

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0403:f9e9 Future Technology Devices International, Ltd
Bus 002 Device 002: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 0bda:0158 Realtek Semiconductor Corp. Mass Stroage Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

where ID 0403:f9e9 is the touchscreen that makes part of the LG Flatron L1510BF

Next you can check what drivers have been loaded for your touchscreen... as this is a USB touchscreen you can use the following command to list your drivers:

lsmod | grep usb

In the case of my PC this is the output:

usbtouchscreen 17540 0
usb_storage 81728 0
usbhid 35840 0
hid 50560 1 usbhid
libusual 27156 1 usb_storage
scsi_mod 155212 4 usb_storage,sd_mod,sg,libata
usbcore 148848 8 ndiswrapper,usbtouchscreen,usb_storage,usbhid,libusual,uhci_hcd,ehci_hcd

where you can see usbcore has 'usbtouchscren' loaded... here is where I got confused, literature in the web says that this driver does not work. Well, now it works, it has been lately fixed. So you can disregard any information about deleting this driver and compiling your own from sources.

The one step that is still missing is the handler for the events associated with the touchscreen (ie. clicks, double-clicks, button hold, etc). For this purpose install 'evtouch', which you don't have to compile yourself either, just open a terminal and type:

sudo apt-get install xserver-xorg-input-evtouch

The next time you restart X (the windows interface) your touch screen will be working... but not exactly as planned though. We still need to calibrate its parameters. This can be easily done by editing the xorg.conf file. In order to do that open a terminal and type:

sudo gedit /etc/X11/xorg.conf

This will open the file in edit mode, now you have to insert a section in this file that tells Xorg how to interpret your device. What did the trick for me was adding the following lines:

Section "InputDevice"
    Identifier "touchscreen"
    Driver "evtouch"
    Option "CorePointer"
    Option "Device" "/dev/input/event8"
    Option "DeviceName" "touchscreen"
    Option "MinX" "200"
    Option "MinY" "200"
    Option "MaxX" "3879"
    Option "MaxY" "3949"
    Option "ReportingMode" "Raw"
    Option "Emulate3Buttons"
    Option "Emulate3Timeout" "50"
    Option "SendCoreEvents" "On"
    Option "Rotate" "cw"
    Option "SwapY" "On"
    Option "SwapX" "On"
EndSection

The next time you start X, by re-booting or pressing Ctrl+Alt+Backspace your touchscreen functionality should be working.

You may need to play around with the values of "MinY", "MaxY, "MinX" and "MaxX" to calibrate your screen.

Thanks again for the clues that help to get so far.

Revision history for this message
Ben Andersen (ben72) said :
#4

Hello Kiko,

I'm trying to get a LG L1510SF touchscreen to work with Ubuntu 8.10. I installed the evtouch driver but x-values seems swapped. When I touch on left side, the pointer is placed on the right side and vice versa. I tried adding the above to xorg.conf but nothing happens, not even when I change "Device" so I guess it's not read properly. Could you please post your whole xorg.conf? And how did you come up with the min/max values? Did you use a calibrator program? Thanks for your help!

Revision history for this message
frankl (tonerpak) said :
#5

OK, I got my L1510BF working in Ubuntu 9.04 very easily.

Follow Kiko's instructions above, up until editing /etc/X11/xorg.conf (you don't need to edit that).

Create a new file on your desktop, name it lgtouch.fdi and copy the following into it:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
      <match key="info.product" contains="ITM Inc USB Touch Panel">
        <match key="info.capabilities" contains="input.touchpad">
          <merge key="input.x11_driver" type="string">evtouch</merge>
          <merge key="input.x11_options.reportingmode" type="string">raw</merge>
          <merge key="input.x11_options.emulate3buttons" type="string">true</merge>
          <merge key="input.x11_options.emulate3timeout" type="string">50</merge>
          <merge key="input.x11_options.sendcoreevents" type="string">on</merge>
   <merge key="input.x11_options.maxx" type="string">3815</merge>
   <merge key="input.x11_options.maxy" type="string">3948</merge>
   <merge key="input.x11_options.minx" type="string">295</merge>
   <merge key="input.x11_options.miny" type="string">200</merge>
   <merge key="input.x11_options.Rotate" type="string">CCW</merge>
   <merge key="input.x11_options.Swapx" type="string">false</merge>
   <merge key="input.x11_options.Swapy" type="string">false</merge>
        </match>
    </match>
  </device>
</deviceinfo>

then open a terminal and type

sudo mv '/home/[username]/Desktop/lgtouch.fdi' '/etc/hal/fdi/policy/lgtouch.fdi'

then

sudo /etc/init.d/hal restart

Touchscreen should work fine!

Revision history for this message
Ben Andersen (ben72) said :
#6

Thanks Frankl!

Now it works vertically but horizontally it's still swapped.. I tried to change Swapx to true but nothing I change seems to have any affect.. How did you find the above info btw?

BR,
Ben

Revision history for this message
Ben Andersen (ben72) said :
#7

I tested again without the file in place and it was the same result. It was a while ago I tested it last time so I forgot the Y-movements were ok.. So it didn't make any difference for me.. I found some info here, https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/261873 but nothing that helped me so far.

Revision history for this message
frankl (tonerpak) said :
#8

Hi Ben, I would try playing around with these 3 values:

  <merge key="input.x11_options.Rotate" type="string">CCW</merge>
   <merge key="input.x11_options.Swapx" type="string">false</merge>
   <merge key="input.x11_options.Swapy" type="string">false</merge>

Cheers

Revision history for this message
Ben Andersen (ben72) said :
#9

It seems the file is not used for me as it doesn't matter what I change for example rotate or swapx to.. Anything more I need to do?

BR,
Ben

Revision history for this message
frankl (tonerpak) said :
#10

Are you using Ubuntu 9.04? Is HAL running?

Revision history for this message
frankl (tonerpak) said :
#11

Did you install evtouch?

Revision history for this message
Ben Andersen (ben72) said :
#12

Yes, I'm on 9.04 with HAL running and evtouch installed.. I've tried to run calibrate_touchscreen but it only makes it worse.

How can I see if the lgtouch.fdi is in use?

Revision history for this message
frankl (tonerpak) said :
#13

Don't use calibrate_touchscreen! It's useless!

To see if HAL is using the supplied lgtouch.fdi, use the following command in terminal

lshal | grep ITM

You do have this file in this location? '/etc/hal/fdi/policy/lgtouch.fdi'

Revision history for this message
Ben Andersen (ben72) said :
#14

Yes I have the file in place and it seems it's used. See my lshal output attached here: https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/360770

Should I reset something now that I have run calibrate_touchscreen?

BR,
Ben

Revision history for this message
2GooD (david+launchpad) said :
#15

Yes you need to undo the mess caused by calibrate_touchscreen.

As I wrote to you in https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/360770/comments/8 you should remove everything but these lines from /etc/evtouch/config (of course your values will most likely be different)

MINX="246"
MINY="181"
MAXX="3827"
MAXY="3952"

...and reboot.

Revision history for this message
spooky electric (iarylif) said :
#16

Hi folks, I have ubuntu 10.04 lts installed. Letting you know I am newbie with linux, only 15 days working on it. I have tried all the steps above without any joy. when I press the screen it goes down and opens the trash bin. Please help me. Thanks!

Revision history for this message
2GooD (david+launchpad) said :
#17

@spooky electric:

See the linkat https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/360770/comments/17 for a solution that works for me.

Revision history for this message
spooky electric (iarylif) said :
#18

Hi 2GooD, thanks for your quick help. I tried the steps on that link, but as soon as I try to install the : apt-get install xserver-xorg-input-evtouch i have the following error:

E: No se pudo abrir el fichero de bloqueo '/var/lib/dpkg/lock' - open (13: Permiso denegado)
E: Imposible bloquear el directorio de administración (/var/lib/dpkg/), ¿es superusuario?

translation: cant open the file, permission deny.
are you super user?

letting you know I am newbie, just 15 days linuxing.
Can you help me I dont know what to do. Thanks!

Revision history for this message
2GooD (david+launchpad) said :
#19

@spooky electric: It sounds like you are already running Synaptic, apt-get, dpkg, or similar. You can only run one package management application at a time.

Revision history for this message
spooky electric (iarylif) said :
#20

no Im not, i wasnt typing "sudo" before the command: apt-get install xserver-xorg-input-evtouch
so now this step is going ok, but not the following:

"Fix xorg.conf.d snippet at /usr/lib/X11/xorg.conf.d/10-evtouch.conf"

What I did was gedit /usr/lib/X11/xorg.conf.d/10-evtouch.conf but says this file is read-only and cant do anything inside to save it.

As I said in the beguining I am newbie. Any help?? Many Thanks. marcoS

Revision history for this message
2GooD (david+launchpad) said :
#21

You need to use sudo there as well.

Revision history for this message
spooky electric (iarylif) said :
#22

Ok, I think the command line is:
"sudo apt-get install /usr/lib/X11/xorg.conf.d/10-evtouch.conf"

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
E: No se pudo encontrar el paquete

the error is cant find the package. my question is: is the sintax right or may I type something different?
Many Thanks.

Revision history for this message
2GooD (david+launchpad) said :
#23

I meant:

sudo gedit /usr/lib/X11/xorg.conf.d/10-evtouch.conf

Revision history for this message
spooky electric (iarylif) said :
#24

Thanks mate, its nearly working, just playing with the X and Y to be 100% in place. Many thanks for your help. marcoS.