Acer T230H (Quanta) Touchscreen in OpenSUSE 11.2

Had a heck of a time getting the Acer T230H touchscreen monitor to work on OpenSuse 11.2. I am documenting this for anyone else looking to get this working.

There are plenty of sites out there with information on getting this working on Ubuntu but none specific to OpenSUSE.

PREREQUISITES:

Make sure xorg-x11-driver-input is installed as need the evdev driver in /usr/lib/xorg/modules/input/.

zypper install xorg-x11-driver-input
  1. Download and compile the 2.6.34.1 or higher kernel from The Linux Kernel Archives. See instructions here for compiling kernel.
    When you run make menuconfig be sure to module"Quanta Optical Touch". Navigate to Device Drivers:HID Devices:Special HID Drivers:Quanta Optical Touch. Put a “M” for module. Save config file and build kernel as per instructions in link above. hid-quanta.ko driver should be located in /lib/modules/2.6.34.1/kernel/drivers/hid/ if module was installed correctly.
  2. Once you build the kernel and boot up with the new kernel follow the instructions below:

Edit /etc/udev/rules.d/69-touchscreen.rules
Add the following rules at the top:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="usb/quanta_touch"
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="input/quanta_touch"

See here if you need help with the rules file.

Create or modify /etc/X11/xorg.conf with the following info:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"    
    InputDevice    "Acer T230H" "SendCoreEvents"
    InputDevice    "dummy"                      
    Option         "Xinerama" "0"               
EndSection                                      

Section "Files"
EndSection     

Section "InputDevice"
    Identifier "Acer T230H"
    Driver "**evdev**"         
    Option "SendCoreEvents" "true"
    Option "ReportingMode" "Raw"  
    Option "Device" "**/dev/input/quanta_touch**"
    Option "PacketCount" "13"                
    Option "OpcodePressure" "852034"         
    Option "OpcodeX" "65584"                 
    Option "OpcodeY" "65585"                 
    Option "CalibrationModel" "1"            
    Option "CornerTopLeftX" "0"              
    Option "CornerTopLeftY" "0"              
    Option "CornerTopRightX" "1920" # 1920 for 23"
    Option "CornerTopRightY" "0"                  
    Option "CornerBottomLeftX" "0"                
    Option "CornerBottomLeftY" "1080" # 1080 for 23"
    Option "CornerBottomRightX" "1920" # 1920 for 23"
    Option "CornerBottomRightY" "1080" # 1080 for 23"
    Option "CornerScreenWidth" "1920" # 1920 for 23" 
    Option "CornerScreenHeight" "1080" # 1080 for 23"
EndSection                                           

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0" 
    Driver         "mouse"  
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mouse0"
    Option         "Emulate3Buttons" "no"      
    Option         "ZAxisMapping" "4 5"        
EndSection                                     

Section "InputDevice"
    Identifier "dummy"
    Driver "void"     
    Option "Device" "/dev/input/mice"
EndSection                           

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"      
EndSection                    

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown" 
    ModelName      "Acer T230H"
    HorizSync       30.0 - 80.0
    VertRefresh     55.0 - 75.0
    Option         "DPMS"      
EndSection                     

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia" 
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"       
EndSection                             

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24       
    Option         "TwinView" "0"
    Option         "metamodes" "1920x1080 +0+0; nvidia-auto-select +0+0"
    SubSection     "Display"                                            
        Depth       24                                                  
    EndSubSection                                                       
EndSection

Save the /etc/X11/xorg.conf file and restart your system. Of course make sure the USB cable is connected to your system and monitor.

TESTING:

This confirms the device is being detected

lsusb | grep Quanta

Confirm udev rules were activated

ls /dev/input/quanta_touch

If this is good you can test your touchscreen which should now be working. Be sure evdev driver is specified in xorg.conf and not hidtouch.

Hope this helps someone.

Thanks for sharing this. Its unfortunate this is not done automatic. There likely could be a bug report written somewhere, although I don’t know exactly where given this may be an upstream automatic configuration problem.

If you have the additional time, you could look at the openSUSE Hardware Compatibility List (HCL) and see if there is a section/table there where you could link this installation information to: Portal:Hardware - openSUSE

Thanks for sharing your solution.