Clevo TN120R Touchscreen TC4UM WORKED in Ubuntu Jaunty & Karmic

This how to probably will only work for ‘ET&T Technology TC4UM with device  ID 0664:0306 on Clevo TN120R running Ubuntu Hardy/Intrepid/Jaunty/Karmic.

Extract the driver from magictouch website (Linux_USB_V2.20_ub904_090430[i386].tar.gz) and you will find these objects:

drwxr-xr-x 4 dedieko dedieko 4096 2009-04-29 10:19 .
drwxr-xr-x 3 dedieko dedieko 4096 2009-11-26 10:35 ..
drwx—— 2 dedieko dedieko 4096 2009-11-26 07:16 driver
-rwxrwxrwx 1 dedieko dedieko 4116 2009-04-28 14:18 install_Ubuntu9.04
-rwxrwxrwx 1 dedieko dedieko 2085 2009-04-28 14:28 uninstall_Ubuntu9.04
drwx—— 2 dedieko dedieko 4096 2009-11-26 07:16 utility

Instead of running Install_Ubuntu9.04, I wanted to know how things work, so we go with the manual way.
Go to driver folder and you will find 1 file:

-rwxr-xr-x 1 dedieko dedieko 75285 2009-04-29 10:05

Copy this file to /usr/lib/xorg/modules/input
Go to utility folder and youwill find 3 files:

-rwxr-xr-x 1 dedieko dedieko 31706 2009-04-29 09:12 Calibration
-rwxr-xr-x 1 dedieko dedieko 14829 2008-12-10 14:33 Lift-off
-rwxr-xr-x 1 dedieko dedieko 29058 2009-04-28 15:57 Swap

Copy these files to /etc/etandt folder. Don’t forget to change the file ownership. Safest bet is to chmod 777

  • STEP 3: Configure xorg.conf

If you use freshly installed Karmic, there is no xorg.conf, you could run this command to generate default Xorg.conf:

sudo dpkg-reconfigure -phigh xserver-xorg

Then edit the newly generated xorg.conf. Add ServerLayout Section and InputDevice Section
The hardest thing is probably to pinpoint the device location. Type this:

lshal | grep hiddev

Mine is look like this:

dedieko@dedieko-laptop:~$ lshal | grep hiddev
udi = ‘/org/freedesktop/Hal/devices/usb_device_664_306_noserial_if0_hiddev’
  hiddev.application_pages = {‘Unknown page 0xd0004’} (string list)
  hiddev.device = ‘/dev/usb/hiddev0‘  (string)
  hiddev.product = ‘ET&T Technology TC4UM’  (string)
  info.capabilities = {‘hiddev’} (string list)
  info.category = ‘hiddev’  (string)
  info.udi = ‘/org/freedesktop/Hal/devices/usb_device_664_306_noserial_if0_hiddev’  (string)
  linux.device_file = ‘/dev/usb/hiddev0’  (string)
  linux.sysfs_path = ‘/sys/devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/usb/hiddev0’  (string)

Pay attention to the red line, now write that or memorize it, then put it in the Xorg.conf below.
Mine is look like this:

Section “Monitor”
    Identifier    “Configured Monitor”

Section “Screen”
    Identifier    “Default Screen”
    Monitor        “Configured Monitor”
    Device        “Configured Video Device”
    SubSection “Display”
        #Virtual    2560 1024
        Virtual    4096 4096

Section “Device”
    Identifier    “Configured Video Device”
    Option “AccelMethod” “UXA”
    #Option “MigrationHeuristic” “Greedy”

Section “ServerFlags”
    Option    “DontZap”    “False”

Section “InputDevice”
    Identifier “ETouch”
    Driver “ETouch”
    Option “Device” “/dev/usb/hiddev0”

Section “ServerLayout”
    Identifier “Layout01”
    InputDevice “ETouch” “SendCoreEvents”

Pay attention only to the part mark with red color. Save it and restart your system.
If you type it correctly, there should be no problem. If you do encounter problems, boot your system using Recovery Mode ( Select it from Boot Menu by pressing ESC), and check the Xorg log at /var/log/Xorg.0.log
Read the log carefully and then make changes to Xorg.conf, restart your system again by either type:

 sudo reboot -n

or simply by pressing


When you got things right, your GUI will load, you touch screen will function, BUT… still not calibrated

  • STEP 4: Calibration
Before you proceed, please make sure you unplug any external monitor and set the permission correctly.
Go to /etc/etandt folder and run this

sudo /etc/etandt/Calibration

If you dont use sudo, you will get Segmentation Fault
You’ll see white screen with small crossed circle. Press the center of it as precise as possible. You can cancel anytime by pressing Ctrl+C

You’re done.

References: (in French)


5 Responses

  1. Thnaks, it really works. Only thing missing is support for xrandr (display rotation). Any ideas regarding this?

    • I think we have to create script to do this synchronizing between xrandr and calibration
      I’ve notice that , the calibration script is creating 3 config files ( s_ts.ini, ts.ini, ts1.ini). Now, calibrate the screen for all the position ( Normal, Left, Right, UpsideDown). Save each config files in different names or folder, then we create script to automate the config switching. Don’t know yet whether the config change is applied realtime
      And, optionally, thanks to this link:
      Maybe somehow we could mod the gdm init script to read the last rotation status from the above script & used the touchscreen config made for that rotation.
      That’s all I can think of 🙂

      • Thank you for idea. Just rewriting the calibration files in /etc/etandt will change the calibration. Writing the script to alter this files is quite straightforward.

  2. Hello, I’ve created a script that change the config file “ts.ini” and rotating the screen at the same time, but the calibration doesn’t change…
    I’ve checked the source of the calibration tool, but I don’t understand how the calibration datas are taken into account by the driver…
    Do you know how to “refresh” the calibration data ?

    See my post on Fedora-fr (in french) for seeing my script

  3. Thanks for your information

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: