DSL Tips and Tricks :: MagicTouch Touchscreens w/DSL
----------------------------------------------------------------------
MagicTouch Touchscreen for DSL Linux F.A.Q.
----------------------------------------------------------------------
NOTICE: This is not official documentation from KeyTec these are
        just notes I as an individual have come up with and taken from
        the official driver help that comes with the MagicTouch CD.
        Basically I thought the readme docs sucked and this should be
        more helpful. Particularly if you're using D.S.L (Damn Small
        Linux)
 This FAQ is for users of D.S.L. (Damn Small Linux) although,
this could technically be applied to just about any Debian distro
easily and others somewhat.
 I believe D.S.L. works well with getting MagicTouch. It uses kernel
2.4 to support legacy devices for one thing, a 2.6 kernel might not
load the MagicTouch drivers (I could be wrong about that)
 Also the hid and usb-uhci which are used by usbcore make the USB-X
easy to get working right off the bat.
 You should know I haven't really tried this with the ProE-X. Also I
have successfully done this in RAMDISK/toram mode, however, its easier
if you only modify the user "dsl" as opposed to trying to get it
working with root, if only because default setting files (such as BASHRC)
havent been created.
-------------------
STEP ONE - XFree86:
-------------------
 The drivers included by KeyTec are made for Xfree86 and not for
Xvesa or other derivitives unfortunately without what I believe to
be massive tweaking, altho I have seen a X.org experimental deb
package available for magictouch screens.
 Anyways...
 Basically download the XFree86.dsl package from the System DSL
packages and follow those directions.  You will change your .xserverrc
file and you will also use the XF86Config-4 file below.
--------------------------------
STEP TWO - Directories and Files
--------------------------------
 mkdir /etc/etandt
 mkdir /touchscreen
 touch /etc/etandt/ts.ini
 touch /etc/etandt/s_ts.ini
 FOR USB-X:
 ==========
     mkdir /dev/usb/hid
     mknod /dev/usb/hiddev0 c 180 96
     mknod /dev/usb/hiddev1 c 180 97
     mknod /dev/usb/hiddev2 c 180 98
     mknod /dev/usb/hiddev3 c 180 99
     cp /cdrom/Linux/USB/* /touchscreen
     NOTE: In TORAM/ramdisk mode, create the nodes in /touchscreen and
           modify the entry in XF86Config-4 accordingly.
 FOR PROE-X:
 ==========
     cp /cdrom/Linux/PROE/* /touchscreen
-------------------------------------------
STEP THREE: The XF86Config-4 File
-------------------------------------------
<BEGIN>
Section "ServerLayout"
        Identifier      "VESA device"
        Screen          0               "Screen0" 0 0
        InputDevice     "Mouse[1]"      "CorePointer"
        InputDevice     "Keyboard0"     "CoreKeyboard"
        InputDevice     "etouch"        "SendCoreEvents"
EndSection
Section "ServerFlags"
  DontZap
  AllowMouseOpenFail
EndSection
Section "Files"
        FontPath        "unix/:7100"                    # local font server
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection
Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "dri"
        Load  "glx"
        Load  "record"
        Load  "freetype"
        Load  "type1"
EndSection
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbRules" "xfree86"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"    #Option "XkbVariant"    ""
EndSection
Section "InputDevice"
        Identifier    "etouch"
        Driver        "etouch_usb"
        Option        "Device"                "/dev/usb/hid/hiddev0"
EndSection
Section "InputDevice"
        Identifier    "Mouse[1]"
        Driver        "mouse"
        Option        "CorePointer"
        Option        "Device"                "/dev/psaux"
        Option        "Protocol"              "imPS/2"
        Option        "Emulate3Buttons"       "true"
        Option        "ZAxisMapping"          "4 5"
EndSection
Section "Device"
        Identifier      "vesa"
        driver          "vesa"
        VendorName      "x"
        BoardName       "y"
EndSection
Section "Monitor"
        Identifier      "Monitor0"
        VendorName      "x"
        ModelName       "y"
EndSection
Section "Screen"
        Identifier      "Screen0"
        Device          "vesa"
        Monitor         "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
                Modes    "1024x768" "800x600" "640x480"
        EndSubSection
EndSection
Section "DRI"
        Mode         0666
EndSection
<END>
-------------------------------------
STEP FOUR: Module Installation
-------------------------------------
  cd /touchscreen
  FOR USB-X:
  ===========
  cp etouch_usb_drv.o /usr/X11R6/lib/modules/input/
  FOR PROE-X:
  ===========
  cp magictouch_drv.o /usr/X11R6/lib/modules/input/
----------------------
STEP FIVE: Calibration
----------------------
  Restart X-Windows
  In X-Windows Run tscpl_usb or tscpl for usb and proe devices
respectively to calibrate the screen.
--------------------------
STEP FIVE: Troubleshooting
--------------------------
 - DO NOT use Virtual Desktop  (calibration will not be accurate)
 - DO make notice of upper/lower cases
 - Check the /var/log/XFree86.0.log
 - Also run "dmesg" and check the last couple lines when un/plugging
   in the MagicTouch Device to see if the USB driver is being loaded
   correctly.
FOR USB-X:
----------
 - If you think that the device is not sending data, just make sure
   everythings connected and run 'cat /dev/usb/hiddev0' and then
   run your fingers over the screen to see if data shows on the
   screen.
 - In dmesg check to see if its hiddev0 being used and not hiddev1 or
   2, in which case you'll have to change the device location in
   /etc/X11/XF86Config-4
 You can contact tech@magictouch.com for troubleshooting.
 You can also contact me at falthonas@comcast.net although I'm not too sure how much I'll be able to help out.
Very nice. Worth putting in the documentation.
original here.