Results 1 to 10 of 46

Thread: Asus EeePC T91MT multitouch touchscreen [Lucid 10.04]

Threaded View

  1. #1
    Join Date
    Jul 2005
    Beans
    123
    Distro
    Ubuntu Development Release

    Asus EeePC T91MT multitouch touchscreen [Lucid 10.04/Maverick 10.10]

    MAVERICK UPDATE: I have attached a multitouch-kernel-source package modified for maverick (it also includes the hid-core.c and hid-quirks.c changes. Maverick users should just install the attached package and ignore most of the following instructions except for the rotate button fix.

    MAVERICK UPDATE2: jtjs posted that there is now a utouch PPA with working DKMS multitouch hid-mosart drivers for Maverick.
    sudo add-apt-repository ppa:utouch-team/utouch
    sudo apt-get update
    sudo apt-get install hid-mosart-dkms
    If you have already installed the maverick deb below, you should probably uninstall it first. After install and reboot, check your using hid-mosart with lsmod.

    MAVERICK UPDATE3: Probably not much use but while playing around I also made a multitouch-kernel-source 1.556 with the hid-mosart multitouch patches (multitouch is already in the utouch-team PPA).

    --------------------------
    Lucid:

    Add the multitouch PPA:
    Code:
    sudo add-apt-repository ppa:chasedouglas/multitouch
    sudo apt-get update 
    sudo apt-get install multitouch-kernel-source
    Edit /usr/src/multitouch-1.5/drivers/hid/hid-core.c
    Comment out line 1554 so it looks like:
    Code:
    //{ HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT)},

    Edit /usr/src/multitouch-1.5/drivers/hid/usbhid/hid-quirks.c
    Add the following line after "} hid_blacklist[] = {"
    Code:
    { USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT, HID_QUIRK_MULTI_INPUT },
    Recompile the multitouch drivers (this takes a while)
    Code:
    sudo dpkg-reconfigure multitouch-kernel-source
    Now when you reboot you should have a working touchscreen. There is also a fix for ensuring the input is correct when rotated.

    Calibration can be done using the T101's eGalax calibrator:
    Code:
    cd /tmp && wget "http://www.philmerk.de/dwl/deb/eeepc-t101mt-calibrator-0.0.2-1-i386.deb" && dpkg -i eeepc-t101mt-calibrator-0.0.2-1-i386.deb
    Then run with:
    Code:
    sudo egalax_calibrator_x11
    Or the the “System>Administration>Calibrate touch screen” menu entry

    To get the input rotation working (you also need to fix to get the silver button working in the T91MT howto), add the following to the end of /etc/acpi/rotatescreen.sh:
    Code:
    INPUTDEV="9"
    ROTATION=`cat /var/lib/acpi-support/screen-rotation`
    case $ROTATION in
        normal) xinput set-int-prop $INPUTDEV "Evdev Axes Swap" 8 0
           xinput set-int-prop $INPUTDEV "Evdev Axis Inversion" 8 0 0;;
        left) xinput set-int-prop $INPUTDEV "Evdev Axes Swap" 8 1
           xinput set-int-prop $INPUTDEV "Evdev Axis Inversion" 8 1 0;;
        right) xinput set-int-prop $INPUTDEV "Evdev Axes Swap" 8 1
           xinput set-int-prop $INPUTDEV "Evdev Axis Inversion" 8 0 1;;
        inverted) xinput set-int-prop $INPUTDEV "Evdev Axes Swap" 8 0
           xinput set-int-prop $INPUTDEV "Evdev Axis Inversion" 8 1 1;;
    esac
    If you want a program for manual xrandr rotation:
    Code:
    cd /tmp && wget "http://philmerk.de/dwl/deb/egalax-multitouch-driver-common.deb" && dpkg -i philmerk.de/dwl/deb/egalax-multitouch-driver-common.deb
    sudo sed -i  's/eGalax/AsusTek | tail -n 1/g' /usr/bin/touchrotate
    Then use "touchrotate left" and such.

    In one big copy'n'paste command (except for the /etc/acpi/rotatescreen.sh).
    Code:
    sudo add-apt-repository ppa:chasedouglas/multitouch
    sudo apt-get update 
    sudo apt-get install -y multitouch-kernel-source
    sudo sed -i 's/^.*ASUS_T91MT/\/\/&/g' /usr/src/multitouch-1.5/drivers/hid/hid-core.c
    sudo sed -i 's/^.*ALPS.*$/&\n\t{ USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT, HID_QUIRK_MULTI_INPUT },/g' /usr/src/multitouch-1.5/drivers/hid/usbhid/hid-quirks.c
    sudo dpkg-reconfigure multitouch-kernel-source
    cd /tmp && wget "http://www.philmerk.de/dwl/deb/eeepc-t101mt-calibrator-0.0.2-1-i386.deb" "http://philmerk.de/dwl/deb/egalax-multitouch-driver-common.deb" && sudo dpkg -i egalax-multitouch-driver-common.deb && sudo dpkg -i eeepc-t101mt-calibrator-0.0.2-1-i386.deb
    sudo sed -i  's/eGalax/AsusTek | tail -n 1/g' /usr/bin/touchrotate
    echo "event=hotkey (ATKD|HOTK) 0000007b\naction=/etc/acpi/rotatescreen.sh" | sudo tee /etc/acpi/events/asus-rotate-t91
    -----------old--------------
    I have been having a go at getting the touchscreen running under Lucid now that we have a (mostly) working video driver.

    I know that it should work as there is a video of it.

    Right now I can't even get the basic dev entries to show up. /dev/input/eventX (there are 1-7 but none the touchscreen according to lsinput), /dev/usb/* (usb directory doesn't exist) or /dev/hidinput devices to show up. Nothing appears in /proc/bus/input/devices, xinput list, lshw. It works fine under 9.10 using the modified evtouch drivers. The problem might be that Lucid no longer ships with HAL but I haven't yet worked out how to go about generating /dev/ nodes.

    From what I see posted, the T91MT uses the Mosart driver (although someone on the T101MT post claimed the egalax driver would also work with it but I haven't found anyone actually claiming to have the T91MT working at all on Lucid).

    The mosart driver was backported to the Lucid 10.04 kernel and ships with it as hid-mosart, although there is a bit on the ENAC kernel howto specific for Ubuntu 10.04 claiming that it still requires a hid.h patch.

    There is a Ubuntu multitouch-dev mailing list (unfortunately readonly) and ppa with the ENAC drivers that where missing from 10.04 as a DKMS (mainly the egalax one). This seems to include the hid.h changes too. This seems like it would be the simplest solution since it doesn't require a kernel recompile.

    But on boot neither mosart or egalax modules are autoloaded. Loading mosart manually doesn't seem to register in /var/log/messages or dmesg although it could just be silent. 'xinput list' doesn't show anything. It's loaded according to lsmod though. After loading the module nothing new shows up in dev, proc, lshw and so on.

    I have also tried the 2.6.34 kernel, looking at the hid.h file in source it appears to have the id's changed the way the ENAC site says so it should work without a recompile. 2.6.34 doesn't seem to be shipping with the hid-egalax module, but the mosart one is in there. I get the same problem as with the PPA packages.

    There is a usbtouchscreen module, I tried modprobing that without any success. (I saw another thread saying you had to do it before usbhid but that didn't help).

    There is also the official eGalax drivers. I had a bit of a go but ran into problems (installed but didn't seem to make a kernel module, but I didn't look to closely). There are also the pre-compiled ones the t101mt people are using. Still not sure if egalax is actually compatible with the T91MT though.

    I would be happy even with single touch, I had a go at using the modified evtouch source that was used for 9.10 but it no longer compiles on 10.04 (even though the shipped evtouch package still the same version number as it was in 9.10, the Ubuntu build version number is a bit different though). I might have another go later at moving the T91MT code into the Ubuntu package. Although the bug list seems to indicate that there are problems with some bits of evtouch on 10.04. Also if I did get it compiling there is still no HAL, so that would have to be worked around (unless whatever bit is supposed to be creating input device nodes kicks in).

    The device does seem to be listed in lsusb, its the 2nd one (the first is the bluetooth module I believe):
    Code:
    Bus 004 Device 003: ID 0b05:b703 ASUSTek Computer, Inc. 
    Bus 004 Device 002: ID 0486:0185 ASUS Computers, Inc. 
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 006: ID 058f:6335 Alcor Micro Corp. SD/MMC Card Reader
    Bus 001 Device 005: ID 13d3:509b IMC Networks 
    Bus 001 Device 002: ID 058f:6335 Alcor Micro Corp. SD/MMC Card Reader
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    EDIT1: I dumped a bunch of printk messages into all the functions in hid-mosart.c, dpkg-reconfigured multitouch-kernel-source functions, verified they where in hid-mosart.ko via strings, insmod'd the module and none of them fired. So obviously the driver isn't loading for whatever reason. Maybe the hid.h hack is needed outside of hid.ko and the other multitouch-kernel-source bits. Will look at recompiling the kernel later, or dumping printk's into other hid areas to see why it's not loading. Also enabled hid_dbg, nothing in /sys/kernel/debug/hid and no new dmesg information, other than a confirm that the debug mode was on.

    /sys/bus/usb/devices/4-1/ seems to be the touchscreen entry (cat /sys/bus/usb/devices/4-1/product outputs MultiTouch and the idVendor/idProduct match). There is a /sys/bus/hid/drivers/mosart directory but doesn't have anything of interest. There is also /dev/bus/usb/004 but it doesn't out put anything useful with cat (without a driver I guess it wouldn't).

    Also /sys/kernel/debug/usb shows a rawish list of all the usb devices including the drivers (which is "(none)" for the MultiTouch entry reconfirming the lack of driver loading.
    Attached Files Attached Files
    Last edited by H3g3m0n; December 8th, 2010 at 04:38 PM. Reason: newer information

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •