Just another blogging geek
RSS icon Home icon
  • LG L1730SF touch screen display in Ubuntu Linux 8.04 Hardy Heron, Part 1

    Posted on April 29th, 2009 trk 23 comments

    LG L1730SF touch screen in Ubuntu LinuxA few years ago I bought a 17″ touch screen display device LG L1730SF. The product itself was nice, and very affordable at the time. However, it wasn’t easy at all to get it working with Ubuntu Linux 6.06 Dapper Drake. I wrote a somewhat detailed instructions about my setup and published them on these web pages. To my surprise, the article got many positive comments and questions even several years after. Apparently touch screens in Linux was a hot issue (at least to geeks like me) and there was not enough information available for troubleshooting.

    In August 2008 I went through it all again after updating to Ubuntu Linux 8.04 Hardy Heron. However, this time I was better prepared, having a few years of experience on Ubuntu. This article brings the instructions more up-to-date and answers some questions I didn’t have a clue about at the first time. Although Hardy is already a year old and major computer manufacturers are publishing computers with built-in multi-touch capabilities almost daily, I still think these instructions should be valid for all DIY guys for a few years, since it is a long term support (LTS) version of Ubuntu.

    Note: I have written this article 8 months later from my memos. It was not straightforward to get the touch feature working, thus some unnecessary adventures had to be made. However, I decided to include them all here so that others can learn from my mistakes. Moreover, with a complex issue like this I think it is better to elaborate too much than too little – you can easily skip the chapters you don’t care about. I have also tried to explain what I am trying to do and why at each step, as many Linux/Ubuntu newbies need these things to be explained so that they can learn (I went through that myself a few years ago). As a result, the article is quite long and you don’t actually need to perform all the steps that I describe. These steps are marked in the text.

    Introduction

    In this article I assume that you have already setup Ubuntu Linux 8.04 Hardy Heron to your computer using keyboard, mouse and another display device. I will focus on explaining how to configure the system to operate with LG L1730SF display and its touch feature. Note that a keyboard and a mouse should be connected to the computer when you are going through the setup according to this guide. After you’re finished you can use the computer without them via the touch feature and virtual keyboard.

    First boot

    Make sure that the computer is shut down and remove the power cables from both the computer and the display device. LG L1730SF touch screen display has three cables: a power cable, an analog VGA cable for graphics, and a serial/USB cable for the touch feature. Connect the VGA cable to the computer, but do not connect the USB cable yet. Attach the power cables again, and start the computer.

    You should see some textual messages on the screen while the computer is loading the Ubuntu Linux operating system. In case the display contains mainly garbage, you need to adjust the screen resolution and refresh rate for the Linux console to values that are suitable for your display. Usually the default settings work fine, but I have found that with LG L1730SF some tuning is needed. If this is the case, read on – otherwise you can skip the rest of this chapter.

    Adjusting console screen resolution

    Before the computer begins to load Ubuntu Linux operating system, a boot loader is run (usually Grub). In order to change console settings so that they become effective before the operating system is booted, you need to edit the boot loader’s configuration file, and then reboot the computer. Here’s how to do it.

    First, you need console access to the computer having problems with its display. In case the computer eventually loads normal Linux desktop, you can access console from there. If not, you have a couple of options. For example, in case you have already setup an SSH server, you can SSH it from another computer. If you don’t have remote access, the easiest way is to simply use another display temporarily, i.e. reboot the computer with the other display connected to it.

    When you have gained access to the console, type this to open the Grub configuration file in a text editor:

    sudo nano /boot/grub/menu.lst

    Look for a line that begins like this:

    # defoptions=

    Add the following to the end of the line:

    vga=791

    This number is a code given for a specific console screen resolution (1024×768). For other alternatives, see http://en.wikipedia.org/wiki/VESA_BIOS_Extensions. You may also delete the word splash if you wish to get textual messages during boot procedure instead of a progress bar.

    Note: Do not uncomment the line! Whenever a new kernel is released and you update your computer with Update Manager, a script called update-grub will be run. It modifies this file to include a new boot option for the new kernel (and in fact makes that the default in the list, if not prevented by settings). Despite of the comment character, the settings listed here will become effective for the new kernel configuration.

    In case you want to apply the settings to only some boot alternatives in the boot menu, you can instead do this:

    Look for a line that describes that boot configuration. It might be something like this:

     kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda1 ro quiet splash

    Add another parameter to set the screen resolution. I have successfully used vga=0×317 or vga=791 (they are the same thing) with LG L1730SF to setup console to 1024×768 resolution. Here’s an example of what you need to do. This is what I used to have there:

    title Ubuntu 8.04.1, kernel 2.6.24-19-generic
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda1 ro quiet splash
    initrd /boot/initrd.img-2.6.24-19-generic quiet

    I changed the line that begins with the word kernel to look like this:

     kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda1 ro quiet splash vga=0x317

    Note that if you configure this only for a specific item in the boot list, whenever the kernel gets updated you may need to apply the setting again! To avoid that, use the option described above (defoptions).

    When you’re done editing the file, save it by pressing CTRL+O, and exit by pressing CTRL+X. Reboot the computer with LG L1730SF connected to it. The console screens should appear nicely now.

    USB connection

    Now we will begin to configure the system for the touch feature. Note that the tricks explained here may be helpful with troubleshooting other hardware problems too. First, we need to find out if and how the computer recognizes the display device via the USB interface.

    Begin by logging in to Ubuntu. Then open console, and write this command:

    lsusb

    You should see a list of USB devices currently attached to the computer, for example your USB mouse and keyboard should be there.

    Connect the USB cable of the touch screen display to the computer, wait 10 seconds, and write the command lsusb again. Now you should see an additional line in the list. In the case of LG L1730SF, it is something that includes text Future Technology Devices International, Ltd. This device is the touch screen part of your display, now connected to your computer via the USB bus.

    Try touching the display now. You’ll probably notice that whenever you tap the screen, the mouse pointer moves – but not quite as you expect it to: X and Y axles are swapped! For example, if you drag your finger on the screen from left side to right side, the mouse cursor will move from down to up. And if you drag from down to up, cursor will move from left to right.

    Nevertheless, now we know that the touch hardware is found by Ubuntu Linux and the touch panel itself works. Of course, the software side still needs some work before the system becomes usable.

    Driver name

    In console, type this command to get a list of all input devices in the system:

     cat /proc/bus/input/devices

    The list contains various information about each input device. One of them should have this name: ITM Inc USB Touch Panel. When you have found that from the list, check the line below it that begins with Sysfs=… In the end of that line, you should see something like /input/input14 (the number may vary). Write down that number, it tells to which input channel/file the touch screen is currently mapped to.

    Now we can find out the name of the driver with these commands:

    udevinfo -a -p /class/input/input14 | grep DRIVER

    NOTE: replace the number “14″ with the number you wrote down in the previous step. You’ll see a chain of drivers attached to that input device (your touch screen). In the old days, the driver was called itmtouch. Now it is usbtouchscreen, a combined driver that includes support for many brands and models. You should see that driver listed here.

    Another method to find out the driver is to look for a kernel module (driver) by its name. Still in console, you could type

    lsmod | grep touch

    As a result, you should see something like this:

    usbtouchscreen        11652 0
    usbcore            146028 5 usbtouchscreen,usbhid,ehci_hcd,ohci_hcd

    Basically all computer hardware needs a driver. A driver communicates with the hardware equipment, and provides applications access to the device via the operating system’s kernel. In Linux, most of the device drivers are implemented as dynamically loadable kernel modules. Above, the command lsmod lists currently loaded modules, and the rest of the line | grep touch filters this list by passing through only lines that contain the word touch. We can filter the list like this because we are looking for touch screen drivers only and guessed that the word touch is likely included in the name of the driver module.

    Now we know that the driver associated with the touch screen is called usbtouchscreen and it is currently loaded.

    Swapping X and Y

    NOTE: This is a dead end – read this chapter through without doing anything!

    Our first problem is to somehow swap X and Y axels, as they seem to be reversed. First place to look for is the driver, usbtouchscreen. Maybe it can be configured?

    Many kernel modules have parameters that can be set when the module is loaded. In order to find out if usbtouchscreen module has some, we can for example check it from the source code! A very helpful site for tasks like this is http://lxr.linux.no/, which hosts The Linux Cross Reference. By clicking through to the correct category, you’ll find the source code for usbtouchscreen module in an easily readable format. Here’s a direct link for usbtouchscreen.c source code file used in kernel version 2.6.27.4: http://lxr.linux.no/linux+v2.6.27.4/drivers/input/touchscreen/usbtouchscreen.c.

    From the source code file you can find this line (line 60):

    module_param(swap_xy, bool, 0644);

    It means that usbtouchscreen module has a parameter called swap_xy, of boolean type (on/off). Clearly it can be used for swapping X and Y axles – isn’t this exactly what we need?

    We can try to use the parameter. In console, type this to unload the driver module:

    sudo rmmod usbtouchscreen

    After executing this command, the driver module gets unloaded and the touch feature does not work anymore. You can check that by tapping the screen (the mouse cursor won’t move), and also with command lsmod | grep touch, which yields nothing.

    In order to reload the module with some new parameters, we first need to know where the module is located in the file system. Begin with this command:

    sudo updatedb

    It updates the database that is used in searching for files. After it has finished, look for the driver from the file system:

    locate usbtouchscreen

    In response, you should get something like this:

    /lib/modules/2.6.24-19-generic/kernel/drivers/input/touchscreen/usbtouchscreen.ko

    This is the location of the driver module. Now that we know where it is, we can reload it with swap_xy parameter by typing this command (modify the path to reflect yours):

    sudo insmod /lib/modules/2.6.24-19-generic/kernel/drivers/input/touchscreen/usbtouchscreen.ko swap_xy=1

    Now, when you tap the screen, you should notice a couple of things. First, the mouse cursor moves again. Second, it moves differently than it used to: when you drag your finger from left side to right side, the cursor moves along the horizontal direction, not vertical as it used to. The swap parameter worked!

    Unfortunately, it doesn’t seem to help enough. Now we’ll notice that the axles are mirrored, i.e. when you tap the left side of the display, the cursor appears to the right side, and when you tap up, cursor goes down. Moreover, if you try to tap in the center of the screen, you’ll notice that there’s quite a lot of offset in the cursor’s location. As this does not seem to work well enough, you can now simply reboot the computer to get rid of the swap_xy parameter.

    What next?

    Since the usbtouchscreen module does not have enough parameters to allow proper configuration, we need something more. Basically there are two options:

    Option 1: we could modify the driver to accept more parameters, i.e. not only swapping the axles but also mirroring them, as well as support for some kind of basic calibration. This alternative involves programming. Moreover, it does not seem to be a very good solution to begin configuring a driver like this. For example, consider what happens if you have multiple touch screen devices connected to the same computer – you should be able to calibrate them separately, but this is not possible with kernel module parameters if the displays happen to use the same driver package (note that usbtouchscreen module contains support for multiple models and brands). The benefits of this option are that the system would be simple (just one driver module) and the configuration would be rather easy to do (i.e. find working parameters with some simple calibration tool or trial and error, then put the parameters to a configuration file that is used for setting parameters to kernel module that will be automatically loaded).

    Option 2: use some middleware component in between the driver and X windowing system. I.e. do not map the output of the touch screen driver directly to mouse movements, but use another layer in between, which can be configured properly and easily. Since we are in the open source world, of course that has been already done: Evtouch, the Linux touchscreen driver for X, does exactly that. Here’s a link to its homepage: http://www.conan.de/touchscreen/evtouch.html

    Evtouch – touchscreen driver for X

    Installation

    Unlike the driver usbtouchscreen, Evtouch is not automatically installed when you first plug in the USB cable of the touch screen. That must be done before we can continue. The easiest way to install it would be from Ubuntu’s software repositories, in case it is there. We can check that easily by going to http://packages.ubuntu.com, and entering evtouch to the search field. Remember to change “Distribution” to “Hardy” before you click the search button, as we want to search for a package intended to Ubuntu 8.04 Hardy Heron. The result of the search:

    hardy (x11): Touchscreen-Driver for X.Org/XFree86 server [universe] 0.8.7-3ubuntu1: amd64 i386

    This means that version 0.8.7 exists in the universe repository for i386 and amd64 systems. From the search results you can also see that it is called there xserver-xorg-input-evtouch. But is this the newest version? We can check that from evtouch home page: http://www.conan.de/touchscreen/evtouch.html.  (At the time I did my setup, it was the newest version.)

    Not all Ubuntu’s software repositories are enabled by default. You must enable universe repository, if you haven’t already done that. In console, type

    sudo nano /etc/apt/sources.list

    Then uncomment all lines that end with the word “universe”. Save (CTRL+O) and exit (CTRL+X).

    To sync your local cache with the repositories, type

    sudo apt-get update

    Now you should be able to install software from universe repository.

    To finally install evtouch, give this command in the console:

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

    If everything goes fine, evtouch is now installed.

    Configuring X

    Next we need to configure X to use evtouch for the touch feature, instead of the default mouse driver. This requires editing X windowing system’s configuration file. As it is possible to make mistakes that prevent X from working, before continuing make a backup copy of the current X configuration file:

    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

    Basic instructions on how to configure X to use evtouch can be found from evtouch module’s home page (recall http://www.conan.de/touchscreen/evtouch.html). To begin editing X configuration file, in console type

    sudo nano /etc/X11/xorg.conf

    Search the file for Section “InputDevice”, which contains a line Identifier “Configured Mouse”. After this section, add these new lines:

    Section "InputDevice"
       Identifier "touchscreen"
       Driver "evtouch"
       Option "Device" "/dev/input/event1"
       Option "DeviceName" "touchscreen"
       Option "MinX" "98"
       Option "MinY" "43"
       Option "MaxX" "940"
       Option "MaxY" "925"
       Option "ReportingMode" "Raw"
       Option "Emulate3Buttons"
       Option "Emulate3Timeout" "50"
       Option "SendCoreEvents" "On"
    EndSection

    Then, look for Section “ServerLayout”. Add this line inside that section:

    InputDevice "touchscreen" "CorePointer"

    Then save (CTRL+O) and exit (CTRL+X).

    Now we have added a new input device, which controls the mouse pointer in X. The device is called touchscreen and it uses evtouch driver. In addition, multiple options are used to configure it.

    In order to test the new settings, you need to restart X. The easiest way to do that is to first save all open files and then press these buttons together: CTRL+ALT+BACKSPACE. X will restart, and then you can log in again. After logging in, you’ll probably notice two things: you’re mouse doesn’t work  anymore, and when you tap the touch screen, the pointer seems to disappear and the Trash folder opens! If you look carefully, you might see part of the pointer on top of the trash can icon in the lower right corner of the screen – that explains why the Trash folder opens after tapping the screen! If you move your finger near the lower right corner of the screen, you should see the mouse cursor moving on the desktop. However, X and Y axles are swapped. In addition, when you begin moving your finger on the screen,  the cursor first doesn’t move at all, and then jumps several hundred pixels forward.

    Clearly we need to adjust the settings from the given defaults. Now that the pointer is out of control with touch (and mouse doesn’t work either), the easiest way to do the editing is with one of the text based consoles. Press together CTRL+ALT+F2 to open one of them, then log in and begin editing X configuration file by typing

    sudo nano /etc/X11/xorg.conf

    Go to the touch screen section you added earlier, and add a new option after other touch options:

    Option "Rotate" "ccw"

    This will swap X and Y axels by making evtouch think that the display is pivoted 90 degrees counter-clockwise. Write changes with CTRL+O, but do not exit from the editor. Instead, press CTRL+ALT+F7 to return to X, and then press CTRL+ALT+BACKSPACE to restart it. When the login screen appears, you do not necessarily need to log in – you can test the touch feature right away by tapping the login screen. When you tap near the lower right corner, you can see that X and Y axles are now correct, but Y axle is mirrored.

    Go back to xorg.conf file by pressing CTRL+ALT+F2. In case you use value cw instead of ccw, evtouch assumes that the screen is pivoted 90 degrees clockwise, and then X axle will be mirrored… We need to use another option to purposely mirror one of the axles. You can leave rotation to ccw and try to fix the Y axle by adding another option in the end of our options list:

    Option "SwapY" "On"

    However, now you’ll see that in fact it swapped the X axle! This is due to the order in which Rotate and SwapY commands are applied. To make it really work, you can use for example cw in Rotate option and SwapY, but ccw in Rotate and SwapX should be fine too.

    Calibrating touch

    Now we’ve got X and Y configured as they should be, but the calibration is still way off target. You probably already noticed the calibration settings within the list of options we added to the X configuration file. In order to have some idea what the values to be used for calibration might be, we can go back to look at the source code of usbtouchscreen.c driver (http://lxr.linux.no/linux+v2.6.27.4/drivers/input/touchscreen/usbtouchscreen.c). Search for text [DEVTYPE_ITM], and you’ll find that for X axel the minimum configuration values are set to 0 and the maximum values to 0xFFF. The latter means that 12 bits are used per axel, which yields 4096 different values. However, as 0 is also included to the range, you can actually set the calibration value somewhere between 0 and 4095. Compared to this, the setting values  found from evtouch modules home page seem rather small.

    Try to set the calibration values in xorg.conf as follows: use 0 for MinX and MinY, and 4095 for MaxX and MaxY. These are the bounds for the calibration values. With these values, you should see that the touch feature becomes almost usable! The pointer appears pretty close to the spot you tap everywhere on the screen. However, calibration is not yet precise, and there seems to be one major hurdle left: when you drag your finger on the screen, the cursor first doesn’t move, and then jumps forward. This problem has not disappeared, although the jumps are now much shorter as in our previous attempts. It seems like there’s some kind of a grid, and the cursor gets attached to the nearest invisible grid line.

    In case you are planning to build somekind of a simple user interface with only a few buttons, you could basically work around the problem by hiding the mouse cursor and using some very big buttons. However, I want to be able to control the cursor precisely, so that it can be used for example for drawing. Before going through more precise calibration, this “jumpiness” issue needs to be resolved.

    Read the 2nd part to solve the jumpiness issue from here.

     

    21 responses to “LG L1730SF touch screen display in Ubuntu Linux 8.04 Hardy Heron, Part 1” RSS icon

    • Hi, great stuff. I’m currently trying to install LG L1730SF touch feature myself. Looking forward to read the next part of this post… :)

    • Very usefull, Thanks

    • Any idea what to do with the touch feature? :-)

      What is the best touch-friendly software on Ubuntu that would cover pictures, music, movies?

    • @Mikael:

      Good questions!

      I have seen the touch feature being used frequently in business (e.g. in restaurants), as well as in public services (info kiosks, voting machines). However, I use it a lot at home. The idea has been to create a smart home / info kiosk style terminal that is always on and thus can be used for quickly checking the home status, news, weather, bus timetables as well as wasting a few extra minutes of waiting time by playing simple games. It has been very popular and everyone at the house uses it, including guests. More about that will come in other posts later, when I get these instructions finished first…

      Regarding touch-friendly software, I think the situation is not very good at the moment. It becomes very quickly obvious that high resolution desktop user interfaces intended for mouse and keyboard usage do not work well at all with touch and big fingers. I have created some simple applications myself, for example a cover flow style music player software, which I might write a post about and even publish the not-so-polished source code. On the other hand, many board games like Reversi, Mahjongg etc. can be very easily played with touch feature and at my home they have been very big hits! More serious usage is mostly related to Internet, which brings us to the web browser. I use Firefox, which can be customized fairly well and easily. In addition, one can customize Ubuntu’s theme, e.g. to use much larger scroll bars. Good virtual keyboard is also important part of the user experience, as web usage, game high scores etc. need it the ability to write something.

      I’m guessing that the new user interfaces created for netbook usage might be good candidates for touch based usage as well. However, I haven’t tested them yet so cannot really say anything more about that.

    • Thank you for sharing this very usefull guide!

      The LG L1730SF works with Ubuntu 8.04, but we have some issues with the calibration and how precise it is. It seems like it is only possible to tap on the screen about every second centimeter or so, the cursor jumps if I drag it cross the screen. It is e.g. only possible to tap on every second option in the top menu because of this.

      Have you managed to solve this yet?

      Kind regards,
      Kevin

    • @Kevin:

      Yes, I did find out what causes the jumpiness and how to solve it. Unfortunately I haven’t got time to finish this article yet, there’s a lot more in my memos, including calibration, timing settings, virtual keyboard tuning, firefox tuning, etc.

      However, to get you going right now, I’ll just summarize this issue here:
      - the jumpiness problem is caused by Evtouch
      - it does not occur with original source code from Evtouch homepage
      - Debian project (which Ubuntu is based on) has added many patches to the driver
      - one of them is a limitation to movement, i.e. minimum amount of movement in the touch panel before cursor gets moved (very useful, actually!)
      - this can be configured in xorg.conf as follows: Option “MoveLimit” “180″
      - the developer for the patch used value 18, but somehow in the way the default value has changed to 180, which is more than a centimetre…
      - there’s even a bug filed for Debian: http://lists.debian.org/debian-x/2008/06/msg01287.html

      So, to fix it, in xorg.conf touch panel configuration section, add this option with small enough value (you can tune it to match your preferences):

      Option “MoveLimit” “18″

    • Thank you so much! :)
      A very simple solution which obviously required a lot of effort to figure out. I am looking forward to part 3.

      We have a company blog with quite a few Linux interested readers – is it OK that we post a direct link to your guide there? I think many would appreciate this info as well as I did.

      Kind Regards,
      Kevin Hansen
      Linuxshoppen, Denmark

    • @Kevin:

      Yes, linking is totally ok. I’m glad that the article has been helpful.

      BTW, I have a question for you too:

      Your company seems to be selling the Fit-PC. I’m actually using that as a platform for the touch screen setup, and a very happy user. However, I have the original Fit-PC with 500 MHz AMD Geode and 256 MB memory, which has unfortunately too little horse power for modern desktop and it is holding me back with the touch screen experiments.

      I noticed from your web site that a new version, Fit-PC 2, is now available and has much faster CPU and more memory. According to specs, there seems to be a DVI/HDMI connector only, while the LG 1730SF has analog VGA only. At least some display cards provide an additional adapter for connecting analog VGA display to a DVI connector. Do you happen to know if this would work with the new Fit-PC 2, ie. is it possible to use that with LG 1730SF display?

    • I’m sorry for the late answer.

      Actually I am using the exact same fit-PC Slim with 500 MHz AMD Geode CPU :-) The primary reason for this choice is as you mention that the LG 1730SF only has analog VGA. We would have chosen fit-PC2 if it had support for analog signal.

      It is possible to find a converter from VGA to DVI/HDMI, but the price is easily more than 100$ for this. The cheaper adapters you mention, which often is included when you buy a graphic card, is not converting the signal, so these don’t work.

      It is possible to buy a USB to VGA/HDMI adaptor and this should work quite well and should be cheaper than the DVI to VGA converter. We haven’t tested this yet, but we will asap. I will post an update here when we have tested this.

      In the meantime I will continue with part 3 :-)

      Kind Regards,
      Kevin Hansen
      Linuxshoppen, Denmark

    • Hello there!

      my new L1730SF has just arrived and i was very pleased, when plugged it into my jaunty and recognized that basic touch-fetures worked….

      After few minutes of googeling i found your (impressive! cause i am kind a linux newbie and luv some explanations ;) ) How-To for Hardy

      But now i have a little problem:

      okay, i think i really messed something up here:

      but…

      1.) my /etc/X11/xorg.conf has no entries regarding the input devices. (i tried to insert them manually; no Xorg crash but no function either…)

      2.) doing some googleing again; i found out that jaunty uses HAL instead of Hardy ( http://wiki.blazingangles.com/index.php/L1510SF )

      I tried those steps too but —- no effect at all..

      Now my two little questions:

      1.) Does your How-To is portable to jaunty or have i take the other way with HAL?
      2.) What do i have to do to get it working?

      regards,

      maniac

    • @maniac:

      As I am still using Hardy, I am not very familiar with the changes made for Jaunty. Apparently the xorg.conf is being phased out to allow more flexible display configuration from graphical tools, without the need to restart X every time. I guess this affects to the method of making touch screen settings, but the actual values could be the same?

      Based on the link you provided, at least one method to apply the settings is via editing /etc/init.d/xserver-org-input-evtouch file, where hal_set command can be used for feeding in setting values. L1510SF and L1730SF are pretty much the same device with different size, so if the instructions work with one device I would assume they work with the other as well.

      However, you were not very precise on what exactly works at the moment and what does not. Could you explain what problem are you currently working on?

    • Hey,

      Great site, I am just starting to embark on such a project, in fact what I really aim to do is to create a smart/home info kiosk as you mentioned above. In fact I have been looking for ideas for to what to use as a front end etc… I would really appreciate if you let me know what you used to finally drive the user interface that you use etc…..

      Thanks !!

      Adam

    • @Adam:

      Here are some thoughts/experiences on touch screen smart home info kiosk usage:

      - Instantly available Internet access has been the most important thing for my family. Modern web services are heavily based on javascript and flash, so you need to have a computer that is powerful enough. On the other hand, there is not much that you can do to the Internet based content itself, except that you can set the text size large enough so that links can be more easily selected with touch. Luckily, web based services usually do not utilize right mouse click or mouse dragging a lot, as these are difficult with touch control.

      - Based on heavy reliance to Internet services anyway, I consider the web browser the primary front end. You can always build your custom smart home application to utilize web interface. That’s probably what you should do anyway, to enable smarthome control with windows/mac/linux boxes and phones. From various browsers, at least Firefox can be pretty well customized. You’ll appreciate that, as you can adjust it for increased usability with touch.

      - Currently all desktops are primarily targeted for mouse and keyboard use, and thus are not very well suited for touch based use (my opinion). However, I consider it too laborious for a personal project to do anything more than minor theme etc. adjustments, as the touch control concept should be taken into account already in the application level when creating the user interface. This work is happening right now in smartphone OSes like Symbian, Maemo and Android, but not yet on desktop OSes. The latter may support touch, but they do not really embrace it yet in the application level.

    • In 9.10 there is no ‘udevinfo’, but you can use ‘udevadm info’:
      udevadm info -a -p /class/input/input14 | grep DRIVER

    • Hi there

      This is a great help.

      But I’ve hit a brick wall, I can’t seem to fix the whole SWAP XY and Rotate C/CW issue.
      I have inputted the options into my xorg.conf file but upon restarting the Xserver it remains all mixed up.

      Here is a copy of my xorg.conf file:
      Section “Device”
      Identifier “Configured Video Device”
      EndSection

      Section “Monitor”
      Identifier “Configured Monitor”
      EndSection

      Section “InputDevice”
      Identifier “touchscreen”
      Driver “evtouch”
      Option “Device” “/dev/input/event5″
      Option “DeviceName” “touchscreen”
      Option “MinX” “0″
      Option “MinY” “0″
      Option “MaxX” “4095″
      Option “MaxY” “4095″
      Option “ReportingMode” “Raw”
      Option “Emulate3Buttons”
      Option “Emulate3Timeout” “50″
      Option “SendCoreEvents” “On”
      Option “Rotate” “CW”
      Option “SwapX” “true”
      EndSection

      Section “Screen”
      Identifier “Default Screen”
      Monitor “Configured Monitor”
      Device “Configured Video Device”
      EndSection

      Section “ServerLayout”
      Identifier “Default Layout”
      Screen “Default Screen”
      InputDevice “touchscreen” “CorePointer”
      EndSection

      PLEASE HELP!!!!

      Really need to get this working ASAP for work.

      Thank you again and I look forward to your reply.

    • @Damien:

      For some reason I found your post from the inbox just now, almost 2 months later. Is the problem still topical or did you managed to solve it?

    • Extremely useful stuff! I managed to setup my LG in debian using your guide in almost minutes.

      Great work!

      About Damien Baraka, problem; I had the same issue, because the /dev/input/event# keeps changing after reboot, so the configuration was applied on the usb mouse! Changing event number with the correct one and restarting X resolved the issue.

      The problem I have is that the event number keeps changing randomly after every reboot (even if I removed USB Mouse).

      Any Idea how to force the usb panel driver get the same event number every time?

    • I had a problema with this monitor on ubuntu 10.04. tried to solve by reading this tutorial. but coulndt do it. But i solved it in minutes!

      SOLUTION IN 2 MINUTES!!!

      Ubuntu 9.04
      sudo aptitude install xserver-xorg-input-evtouch
      sudo gedit /usr/share/hal/fdi/policy/20thirdparty/50-itm.fdi

      change this line:
      1

      to

      0

      and below put this line:

      1

      save and restart… it should work 99%.
      just need a adjustment in the maxx and maxy

    • I found something on this from our wiki which was probably long published and thought it might help some of you guys…I tried it on ubuntu 9.10(karmic koala) with my touch screen being LG FLATRON L1730SF and it worked perfectly without doing any extra calibration or having to deal with jumpiness. I did it on a fresh install.

      just follow the steps:

      install evtouch

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

      see if the device is loaded

      cat /proc/bus/input/devices

      should see something like this

      I: Bus=0003 Vendor=0403 Product=f9e9 Version=0100
      N: Name=”ITM Inc USB Touch Panel”
      P: Phys=usb-0000:00:1d.2-1/input0
      S: Sysfs=/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/input/input5
      U: Uniq=
      H: Handlers=mouse2 event5
      B: EV=b
      B: KEY=400 0 0 0 0 0 0 0 0 0 0
      B: ABS=1000003
      . . .

      create fdi policy file

      This fdi file work ok for my LG L1730SF touch screen. I saved it as: /etc/hal/fdi/policy/lgtouch.fdi. Copy and paste the lines below in your file

      evtouch
      raw
      true
      50
      on
      3815
      3948
      295
      200
      CCW
      true
      false

      see https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/261873

    • those values indicated above are the ones that should be used for xorg.conf file,,am having problems including the xml lines for the corresponding fdi file. Those values should apply as follows on the xorg.conf file.

      Section “InputDevice”
      Identifier “touchscreen”
      Driver “evtouch”
      Option “reportingmode” “raw”
      Option “Emulate3Buttons” “true”
      Option “Emulate3Timeout” “50″
      Option “sendcoreevents” “On”
      Option “maxx” “3815″
      Option “maxy” “3948″
      Option “minx” “295″
      Option “miny” “200″
      Option “Rotate” “CCW”
      Option “Swapx” “true”
      Option “Swapy” “false”
      EndSection

    • The easy way to get the touchscreen to work in Ubuntu 10.04 Lucid Lynx is to install evtouch and just fix the broken evtouch xorg.conf.d snippet. No HAL or udev methods required (and they wont work anyway).

      Wrote more about this in my blog here http://www.viitalat.net/index.php/htpc/2010/07/16/lg-1730sf-on-ubuntu-10-04


    2 Trackbacks / Pingbacks

    Leave a reply