XServer 1.8: Problems with Input Device Configuration

Hi,

I’m using openSUSE 11.2 with the OBS X11 repository which contains XServer 1.8 but somehow I struggle to configure my input devices.

My main problem is, that I have a Synaptics Touchpad on my lenovo T60 laptop and I would really like to have the features provided by the synaptics driver (at least vertical scrolling) enabled.

Since XServer 1.8 this seems to be a little bit tricky to get working. I don’t have a main xorg.conf file as the complete configuration is now stored in conf files in the xorg.conf.d directory.

What I tried was to modify the file 20-synaptics.conf so that it contains a new InputClass like this:


Section "InputClass"
   Identifier  "SynapticsTouchpad"
   MatchProduct "SynPS/2 Synaptics TouchPad"
   MatchDevicePath     "/dev/input/event*"
   Driver      "synaptics"
   Option      "AutoServerLayout"   "true"
   Option      "VertEdgeScroll"    "true"  # enable vertical scroll zone
   Option      "VertTwoFingerScroll"   "true"  # vertical scroll anywhere with two fingers
EndSection

Now the problem is, that my InputClasses seem to be completely ignored by X.
Here is some output of the Xorg.0.log


X.Org X Server 1.8.0
Release Date: 2010-04-02
    24.609] X Protocol Version 11, Revision 0
    24.609] Build Operating System: openSUSE SUSE LINUX
    24.609] Current Operating System: Linux linux-e2ai 2.6.34-rc6-29-desktop #1 SMP PREEMPT 2010-05-04 23:21:35 +0200 i686
    24.609] Kernel command line: root=/dev/disk/by-id/ata-SAMSUNG_HM320JI_S16LJD0Q416321-part2 resume=/dev/disk/by-id/ata-SAMSUNG_HM320JI_S16LJD0Q416321-part1 splash=silent quiet vga=normal
    24.609] Build Date: 06 May 2010  01:47:19PM
    24.609]
    24.609] Current version of pixman: 0.18.0
    24.609]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
    24.609] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    24.609] (==) Log file: "/var/log/Xorg.0.log", Time: Fri May  7 01:55:12 2010
    24.610] (==) Using config directory: "/etc/X11/xorg.conf.d"
    24.642] (==) No Layout section.  Using the first Screen section.
    24.642] (==) No screen section available. Using defaults.
    24.642] (**) |-->Screen "Default Screen Section" (0)
    24.642] (**) |   |-->Monitor "<default monitor>"
    24.642] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
    24.642] (**) |   |-->Device "Default Device"
    24.642] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
    24.642] (==) Not automatically adding devices
    24.642] (==) Not automatically enabling devices
    24.643] (WW) The directory "/usr/share/fonts/TTF/" does not exist.
    24.643]    Entry deleted from font path.
    24.643] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
    24.643]    Entry deleted from font path.
    24.643] (==) FontPath set to:
        /usr/share/fonts/misc:unscaled,
        /usr/share/fonts/Type1/,
        /usr/share/fonts/100dpi/,
        /usr/share/fonts/75dpi/,
        /usr/share/fonts/URW/,
        /usr/share/fonts/cyrillic/
    24.643] (==) ModulePath set to "/usr/lib/xorg/modules/updates,/usr/lib/xorg/modules"
    24.643] (==) |-->Input Device "<default pointer>"
    24.643] (==) |-->Input Device "<default keyboard>"
    24.643] (==) No Layout section. Using the default mouse configuration.
    24.643] (==) No Layout section. Using the default keyboard configuration.
    24.643] (II) Loader magic: 0x8220b40
    24.643] (II) Module ABI versions:
    24.643]    X.Org ANSI C Emulation: 0.4
    24.643]    X.Org Video Driver: 7.0
    24.643]    X.Org XInput driver : 9.0
    24.644]    X.Org Server Extension : 3.0
    24.650] (--) PCI:*(0:1:0:0) 1002:7145:17aa:2006 ATI Technologies Inc Radeon Mobility X1400 rev 0, Mem @ 0xd8000000/134217728, 0xee100000/65536, I/O @ 0x00002000/256, BIOS @ 0x????????/131072
    24.651] (II) Open ACPI successful (/var/run/acpid.socket)
    24.651] (II) LoadModule: "extmod"
    24.665] (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
    24.665] (II) Module extmod: vendor="X.Org Foundation"
    24.665]    compiled for 1.8.0, module version = 1.0.0
    24.665]    Module class: X.Org Server Extension
    24.665]    ABI class: X.Org Server Extension, version 3.0
    24.665] (II) Loading extension MIT-SCREEN-SAVER
    24.665] (II) Loading extension XFree86-VidModeExtension
    24.665] (II) Loading extension XFree86-DGA
    24.665] (II) Loading extension DPMS
    24.665] (II) Loading extension XVideo
    24.665] (II) Loading extension XVideo-MotionCompensation
    24.665] (II) Loading extension X-Resource
    24.665] (II) LoadModule: "dbe"
    24.666] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
    24.666] (II) Module dbe: vendor="X.Org Foundation"
    24.666]    compiled for 1.8.0, module version = 1.0.0
    24.666]    Module class: X.Org Server Extension
    24.666]    ABI class: X.Org Server Extension, version 3.0
    24.666] (II) Loading extension DOUBLE-BUFFER
    24.666] (II) LoadModule: "glx"
    24.666] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    24.667] (II) Module glx: vendor="X.Org Foundation"
    24.667]    compiled for 1.8.0, module version = 1.0.0
    24.667]    ABI class: X.Org Server Extension, version 3.0
    24.667] (==) AIGLX enabled
    24.667] (II) Loading extension GLX
    24.667] (II) LoadModule: "record"
    24.667] (II) Loading /usr/lib/xorg/modules/extensions/librecord.so
    24.667] (II) Module record: vendor="X.Org Foundation"
    24.667]    compiled for 1.8.0, module version = 1.13.0
    24.667]    Module class: X.Org Server Extension
    24.667]    ABI class: X.Org Server Extension, version 3.0
    24.667] (II) Loading extension RECORD
    24.667] (II) LoadModule: "dri"
    24.668] (II) Loading /usr/lib/xorg/modules/extensions/libdri.so
    24.676] (II) Module dri: vendor="X.Org Foundation"
    24.676]    compiled for 1.8.0, module version = 1.0.0
    24.676]    ABI class: X.Org Server Extension, version 3.0
    24.676] (II) Loading extension XFree86-DRI
    24.676] (II) LoadModule: "dri2"
    24.677] (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so
    24.677] (II) Module dri2: vendor="X.Org Foundation"
    24.677]    compiled for 1.8.0, module version = 1.2.0
    24.677]    ABI class: X.Org Server Extension, version 3.0
    24.677] (II) Loading extension DRI2
    24.677] (II) LoadModule: "radeon"
    24.677] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
    24.678] (II) Module radeon: vendor="X.Org Foundation"
    24.678]    compiled for 1.8.0, module version = 6.13.0
    24.678]    Module class: X.Org Video Driver
    24.678]    ABI class: X.Org Video Driver, version 7.0
    24.678] (II) LoadModule: "mouse"
    24.678] (II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
    24.683] (II) Module mouse: vendor="X.Org Foundation"
    24.683]    compiled for 1.8.0, module version = 1.5.0
    24.683]    Module class: X.Org XInput Driver
    24.684]    ABI class: X.Org XInput driver, version 9.0
    24.684] (II) LoadModule: "kbd"
    24.684] (II) Loading /usr/lib/xorg/modules/input/kbd_drv.so
    24.684] (II) Module kbd: vendor="X.Org Foundation"
    24.684]    compiled for 1.8.0, module version = 1.4.0
    24.684]    Module class: X.Org XInput Driver
    24.684]    ABI class: X.Org XInput driver, version 9.0
    24.684] (II) RADEON: Driver for ATI Radeon chipsets:

============================== SNIP ============================

    24.688] (++) using VT number 7

    24.800] (II) Primary Device is: PCI 01@00:00:0
    24.802] (II) [KMS] Kernel modesetting enabled.
    24.802] (II) RADEON(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
    24.802] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
    24.802] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
    24.802] (==) RADEON(0): Default visual is TrueColor
    24.802] (**) RADEON(0): Option "AccelDFS" "on"
    24.802] (**) RADEON(0): Option "AccelMethod" "EXA"
    24.802] (==) RADEON(0): RGB weight 888
    24.802] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
    24.802] (--) RADEON(0): Chipset: "ATI Mobility Radeon X1400" (ChipID = 0x7145)
    24.802] (II) RADEON(0): PCIE card detected
    24.802] (II) RADEON(0): KMS Color Tiling: disabled
    24.802] drmOpenDevice: node name is /dev/dri/card0
    24.802] drmOpenDevice: open result is 10, (OK)
    24.802] drmOpenByBusid: Searching for BusID pci:0000:01:00.0
    24.802] drmOpenDevice: node name is /dev/dri/card0
    24.802] drmOpenDevice: open result is 10, (OK)
    24.802] drmOpenByBusid: drmOpenMinor returns 10
    24.802] drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
    24.829] (II) RADEON(0): Output VGA-0 has no monitor section
    24.829] (II) RADEON(0): Output LVDS has no monitor section
    24.834] (II) RADEON(0): Output DVI-0 has no monitor section


============================== SNIP ============================

    24.869] (II) Initializing built-in extension Generic Event Extension
    24.869] (II) Initializing built-in extension SHAPE
    24.869] (II) Initializing built-in extension MIT-SHM
    24.869] (II) Initializing built-in extension XInputExtension
    24.869] (II) Initializing built-in extension XTEST
    24.869] (II) Initializing built-in extension BIG-REQUESTS
    24.869] (II) Initializing built-in extension SYNC
    24.869] (II) Initializing built-in extension XKEYBOARD
    24.869] (II) Initializing built-in extension XC-MISC
    24.869] (II) Initializing built-in extension SECURITY
    24.869] (II) Initializing built-in extension XINERAMA
    24.869] (II) Initializing built-in extension XFIXES
    24.869] (II) Initializing built-in extension RENDER
    24.869] (II) Initializing built-in extension RANDR
    24.869] (II) Initializing built-in extension COMPOSITE
    24.869] (II) Initializing built-in extension DAMAGE
    24.882] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
    24.882] (II) AIGLX: enabled GLX_INTEL_swap_event
    24.882] (II) AIGLX: enabled GLX_SGI_make_current_read
    24.882] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
    24.882] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
    24.882] (II) AIGLX: Loaded and initialized /usr/lib/dri/r300_dri.so
    24.882] (II) GLX: Initialized DRI2 GL provider for screen 0
    24.883] (II) RADEON(0): Setting screen physical size to 444 x 277
    25.019] (II) XKB: reuse xkmfile /var/lib/xkb/compiled/server-02D8252E59564A234380F1E5417646A9DB3B7452.xkm
    25.021] (WW) <default pointer>: No Device specified, looking for one...
    25.035] (II) <default pointer>: Setting Device option to "/dev/input/mice"
    25.035] (--) <default pointer>: Device: "/dev/input/mice"
    25.035] (==) <default pointer>: Protocol: "Auto"
    25.035] (**) Option "CorePointer"
    25.035] (**) <default pointer>: always reports core events
    25.048] (==) <default pointer>: Emulate3Buttons, Emulate3Timeout: 50
    25.048] (**) <default pointer>: ZAxisMapping: buttons 4 and 5
    25.048] (**) <default pointer>: Buttons: 9
    25.048] (**) <default pointer>: Sensitivity: 1
    25.048] (II) XINPUT: Adding extended input device "<default pointer>" (type: MOUSE)
    25.048] (**) <default pointer>: (accel) keeping acceleration scheme 1
    25.048] (**) <default pointer>: (accel) acceleration profile 0
    25.048] (**) <default pointer>: (accel) acceleration factor: 2.000
    25.048] (**) <default pointer>: (accel) acceleration threshold: 4
    25.051] (II) <default pointer>: Setting mouse protocol to "ExplorerPS/2"
    25.343] (II) <default pointer>: ps2EnableDataReporting: succeeded
    25.343] (**) Option "CoreKeyboard"
    25.343] (**) <default keyboard>: always reports core events
    25.343] (**) Option "Protocol" "standard"
    25.343] (**) <default keyboard>: Protocol: standard
    25.343] (**) Option "XkbRules" "base"
    25.343] (**) <default keyboard>: XkbRules: "base"
    25.343] (**) Option "XkbModel" "pc105"
    25.343] (**) <default keyboard>: XkbModel: "pc105"
    25.343] (**) Option "XkbLayout" "us"
    25.343] (**) <default keyboard>: XkbLayout: "us"
    25.343] (**) Option "CustomKeycodes" "off"
    25.343] (**) <default keyboard>: CustomKeycodes disabled
    25.343] (II) XINPUT: Adding extended input device "<default keyboard>" (type: KEYBOARD)

============================== SNIP ============================


I can get the touchpad working by creating an InputDevice Section similar to the InputClass section above, but then I have to configure the Trackpoint and the USB mouse, too or otherwise they won’t be recognized at all.

If I create an InputDevice section for a pointer, input hotplugging gets completely disabled for pointers. So If the USB mouse is not plugged in, when X is starting up, it will not be recognized if I plug it in later.

The input devices are all correctly recognized by udev as it seems. Here is the output from ‘cat /proc/bus/input/devices’ for the touchpad and the trackpoint:


I: Bus=0011 Vendor=0002 Product=0007 Version=81b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input1
U: Uniq=
H: Handlers=mouse0 event1 
B: EV=b
B: KEY=6420 0 30000 0 0 0 0 0 0 0 0
B: ABS=11000003

I: Bus=0011 Vendor=0002 Product=000a Version=0000
N: Name="TPPS/2 IBM TrackPoint"
P: Phys=synaptics-pt/serio0/input0
S: Sysfs=/devices/platform/i8042/serio1/serio2/input/input2
U: Uniq=
H: Handlers=mouse1 event2 
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

Does anyone know how to solve this?

I’m not up to speed with the new X-server, but wondering if you may have hotplugging disabled unintentionally with

Option “AutoAddDevices” “false”

in one of the included .conf files.

I’m also wondering if your synaptics touchpad could be configured with synclient (via a startup script) or similar. See examples of that here. (Real-Time Tweaking).

I have the same problem. Disabling hotplugging doesn’t help.

Hi deano_ferrari,

no I didn’t have such a line in my configuration.
But just to make sure, I added a ServerLayout section like this:


Section "ServerLayout"
   Identifier  "Default"
   Option      "AutoAddDevices"        "true"
EndSection

Which got recognized at startup but didn’t lead to any changes.
I also tried to add a


   Option      "AutoEnableDevices"     "true"

to this section but this just lead to the X server just crashing hard on startup.

Synclient does not work at all, as to use it, the synaptics driver has to be loaded. I’m also wondering why the X server is not using the evdev driver to load the pointers but is falling back to the mouse driver.

@tr0j4nq Good to know that I’m not the only one suffering from this problem.

Maybe this is a bug. Does anyone know where to report it? Novell openSUSE bugzilla?

Best regards,
Steffen

In othhers distribution people add configuration to xorg.conf.d/10-synaptics.conf and everything works better then ever. So I think it’s some bug from Novell. Look to 11-mouse.conf

Section "InputClass"
        # Novell Bug #597214
        Identifier      "IBM TPPS/2 TrackPoint"
        MatchProduct    "TPPS/2 IBM TrackPoint"
        MatchIsPointer  "on"
        Driver  "evdev"
        Option  "EmulateWheel"  "on"
        Option  "EmulateWheelButton"    "2"
        Option  "YAxisMapping"    "4 5"
        Option  "XAxisMapping"    "6 7"
        Option  "Emulate3Buttons"    "on"
        Option  "EmulateWheelTimeout"    "200"
EndSection

So novell have problem with other devices too.

Hmm this bug was just about not matching the Vendor.
I have the same TrackPoint as mentioned in it but it seems that it isn’t found.
In my case it seems as the InputClasses are completely ignored at all.

So perhaps the problem is anywhere else?

I followed the instructions on https://fedoraproject.org/wiki/Input_device_configuration

and even added an 00-evdev.conf with this content


Section "InputClass"
   Identifier "evdev pointer catchall"
   MatchIsPointer "on"
   MatchDevicePath "/dev/input/event*"
   Driver "evdev"
EndSection

Section "InputClass"
   Identifier "evdev keyboard catchall"
   MatchIsKeyboard "on"
   MatchDevicePath "/dev/input/event*"
   Driver "evdev"
EndSection

Section "InputClass"
   Identifier "evdev touchpad catchall"
   MatchIsTouchpad "on"
   MatchDevicePath "/dev/input/event*"
   Driver "evdev"
EndSection

Section "InputClass"
   Identifier "evdev tablet catchall"
   MatchIsTablet "on"
   MatchDevicePath "/dev/input/event*"
   Driver "evdev"
EndSection

Section "InputClass"
   Identifier "evdev touchscreen catchall"
   MatchIsTouchscreen "on"
   MatchDevicePath "/dev/input/event*"
   Driver "evdev"
EndSection

but still there are no changes.
The evdev driver doesn’t seem to be used at all…

Best regards,
Steffen

Hi,

yesterday I created a ticket (https://bugzilla.novell.com/show_bug.cgi?id=614196) in Novells Bugzilla which got rejected as WONTFIX.
The problem in short is, that some system packages (including udev packages) are too old on openSUSE 11.2 for this setup to work. Therefore the udev backend is disabled for openSUSE 11.2 packages in the X11 repo.

The workarround is to use a classic style xorg.conf.
I moved the xorg.conf.d directory away and created a xorg.conf with following contents:


Section "ServerLayout"
   Identifier     "Layout"
   InputDevice    "USB Mouse" "CorePointer"
   InputDevice    "SynapticsTouchpad"  "SendCoreEvents"
EndSection

Section "Module"
   Load "synaptics"
EndSection

Section "InputDevice"
    Identifier  "USB Mouse"
    Driver      "mouse"
    Option      "Device" "/dev/input/mice"
    Option      "Buttons" "4"
    Option      "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
   Identifier  "SynapticsTouchpad"
   Driver      "synaptics"
   Option      "Device"            "/dev/input/mice"
   Option      "Protocol"          "auto-dev"
   Option      "SHMConfig"         "false" # configurable at runtime? security ris
   Option      "VertEdgeScroll"    "true"  # enable vertical scroll zone
   Option      "HorizEdgeScroll"   "true"  # enable horizontal scroll zone
   Option      "VertTwoFingerScroll"   "true"
   Option      "HorizTwoFingerScroll"  "true"
EndSection

Section "ServerFlags"
  Option       "AutoAddDevices" "off"
  Option       "ZapWarning" "on"
EndSection

Section "Device"
  Identifier   "Card0"
  Driver       "radeon"
  VendorName   "ATI"
  BoardName    "Mobility Radeon X1400" 
  Option       "DRI2" "on"
  Option       "AccelMethod" "EXA"
  Option       "AccelDFS" "on"  
EndSection


This config is working now satisfying to me:

  • All input devices are working
  • I can use the extended features of the Synaptic Touchpad
  • When connection a USB mouse, it is recognized

So I’ll go with this for now. openSUSE 11.3 is released in a month, anyways.

Best regards,
Steffen

Danke für diesen super Tipp! :good::good::good:
Endlich geht mein Touchpad wieder vernünftig.

opensuse 11.3 LXDE users may wish to look at this:
LXDE/Troubleshooting - openSUSE
ie
Edit /etc/X11/xorg.conf.d/20-synaptics.conf

and add one or both lines:

Option "TapButton1" "1"
Option "RBCornerButton" "3"

*(Line 1: left mouse tap / Line 2: right mouse tap in lower right corner) *