Bug 189676

Summary: Synaptics driver not functioning when the h/w is a Synaptics-cPad
Product: [Fedora] Fedora Reporter: Stephanos Manos <stefmanos>
Component: synapticsAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 10CC: dmitry.torokhov, moneta.mace, triage, xgl-maint
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: bzcl34nup
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-12-18 05:52:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
lshal output
none
Full Xorg log
none
Current lshal
none
Updated fdi
none
Updated fdi file
none
The current lshal
none
The current xorg log
none
Xorg log file
none
xorg log
none
Evtest output none

Description Stephanos Manos 2006-04-22 18:46:37 UTC
FC5 Fresh Install on Toshiba Satellite 5100-603. (Has a Synaptics cPad)
During the installation the touchpad worked correctly
synaptics-0.14.4-4.2.1

1. xorg.conf missing the synaptics section. (added manualy as described in the
drivers page)

2. applications using the synaptics driver (gsynaptics, qsynaptics, ltpconf)
don't load (gsynaptics) or report errors and start with no actual functionality.
The required kernel module for cpad is not provided by fedora or the alternative
repos. After installing the module the programs operate correctly.

the url for the kernel module is
http://www.personal.uni-jena.de/~p1stja/linux/synaptics-usb.html

Comment 1 Bug Zapper 2008-04-04 02:44:09 UTC
Fedora apologizes that these issues have not been resolved yet. We're
sorry it's taken so long for your bug to be properly triaged and acted
on. We appreciate the time you took to report this issue and want to
make sure no important bugs slip through the cracks.

If you're currently running a version of Fedora Core between 1 and 6,
please note that Fedora no longer maintains these releases. We strongly
encourage you to upgrade to a current Fedora release. In order to
refocus our efforts as a project we are flagging all of the open bugs
for releases which are no longer maintained and closing them.
http://fedoraproject.org/wiki/LifeCycle/EOL

If this bug is still open against Fedora Core 1 through 6, thirty days
from now, it will be closed 'WONTFIX'. If you can reporduce this bug in
the latest Fedora version, please change to the respective version. If
you are unable to do this, please add a comment to this bug requesting
the change.

Thanks for your help, and we apologize again that we haven't handled
these issues to this point.

The process we are following is outlined here:
http://fedoraproject.org/wiki/BugZappers/F9CleanUp

We will be following the process here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this
doesn't happen again.

And if you'd like to join the bug triage team to help make things
better, check out http://fedoraproject.org/wiki/BugZappers

Comment 2 Stephanos Manos 2008-04-04 05:11:46 UTC
Still present in current rawhide (F9).

According to the authors page (http://web.telia.com/~u89404340/touchpad/) the
kernel module is a requirement for this hardware device to function correctly.

Currently the kernel module does not compile with the latest rawhide kernels.

Comment 3 Bug Zapper 2008-05-14 02:08:48 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 4 Peter Hutterer 2008-07-23 05:40:16 UTC
This should be fixed now through the evdev module. can you please confirm this?

Comment 5 Mace Moneta 2008-11-30 22:13:55 UTC
The Synaptics cPad is still not functioning in Fedora 10.  The version on the bug should be updated.

$ ls -l /dev/input/by-id/
total 0
lrwxrwxrwx 1 root root 9 2008-11-30 16:50 usb-Synaptics_Inc._Synaptics_cPad-event-mouse -> ../event4
lrwxrwxrwx 1 root root 9 2008-11-30 16:50 usb-Synaptics_Inc._Synaptics_cPad-mouse -> ../mouse1

$ lsusb -vvv -s 002:002

Bus 002 Device 002: ID 06cb:0003 Synaptics, Inc. HID Device
Device Descriptor:  
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x06cb Synaptics, Inc.
  idProduct          0x0003 HID Device
  bcdDevice            0.11
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          116
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered) 
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              3
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0003  1x 3 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              4
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     132
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           3
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              5
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      23
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
        ** UNRECOGNIZED:  09 21 00 01 00 01 22 17 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
        ** UNRECOGNIZED:  09 21 00 01 00 01 22 84 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
cannot read device status, Operation not permitted (1)

Comment 6 Peter Hutterer 2008-12-01 00:18:45 UTC
(In reply to comment #5)
> The Synaptics cPad is still not functioning in Fedora 10.  The version on the
> bug should be updated.

Done. 

Please install xorg-x11-drv-synaptics (if you haven't done so already anyway), restart HAL and post the output of lshal.

Comment 7 Mace Moneta 2008-12-01 00:36:35 UTC
Created attachment 325163 [details]
lshal output

xorg-x11-drv-synaptics was already installed.

Comment 8 Mace Moneta 2008-12-01 00:48:00 UTC
Xorg log reports no touchpad found, then adds the HAL device.  No synaptics functions work (e.g., can't disable tap, no scroll, etc.).  The middle button doesn't work.  It looks like the X driver isn't recognizing the device.  These functions work with the driver in the initial report (on F8, which is what I upgraded from).

$ grep -i synaptic /var/log/Xorg.0.log
(**) |-->Input Device "Synaptics"
(II) LoadModule: "synaptics"
(II) Loading /usr/lib/xorg/modules/input//synaptics_drv.so
(II) Module synaptics: vendor="X.Org Foundation"
(II) Synaptics touchpad driver version 0.15.2
Synaptics no synaptics event device found
Query no Synaptics: 6003C8
(EE) Synaptics no synaptics touchpad detected and no repeater device
(EE) Synaptics Unable to query/initialize Synaptics hardware.
(EE) PreInit failed for input device "Synaptics"
(II) UnloadModule: "synaptics"
(II) config/hal: Adding input device Synaptics Inc. Synaptics cPad
(**) Synaptics Inc. Synaptics cPad: always reports core events
(**) Synaptics Inc. Synaptics cPad: Device: "/dev/input/event4"
(II) Synaptics Inc. Synaptics cPad: Found x and y relative axes
(II) Synaptics Inc. Synaptics cPad: Found mouse buttons
(II) Synaptics Inc. Synaptics cPad: Configuring as mouse
(II) XINPUT: Adding extended input device "Synaptics Inc. Synaptics cPad" (type: MOUSE)

Comment 9 Peter Hutterer 2008-12-01 00:59:21 UTC
Ok, let's try the HAL thing first: edit /usr/share/hal/fdi/policy/20thirdparty/10-synaptics.fdi and change the 

<match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>
</match>

to just ... contains="Synaptics"... This way hal should provide the correct device and we might just pick it up through the kernel evdev interface.

Restart HAL, restart X, and it may work.

Comment 10 Mace Moneta 2008-12-01 02:06:30 UTC
No change; Xorg log says the same.  I rebooted just to be sure.

Comment 11 Peter Hutterer 2008-12-01 05:29:22 UTC
Half of the error message above was related to the section in your xorg.conf. The change in the HAL xml wouldn't affect that. Please post your full Xorg.log so I can have a look at the error by the driver.

Comment 12 Mace Moneta 2008-12-01 16:22:12 UTC
Created attachment 325249 [details]
Full Xorg log

Comment 13 Peter Hutterer 2008-12-02 06:50:27 UTC
looks like it's still trying to add the touchpad with the evdev driver.

  input.product = 'Synaptics Inc. Synaptics cPad'  (string)
  input.x11_driver = 'evdev'  (string)
  linux.device_file = '/dev/input/event4'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)

this one should say input.x11_driver = "synaptics", looking at the Xorg.log it probably doesn't. Can you please attach the updated fdi file and the output of lshal?

Comment 14 Mace Moneta 2008-12-02 16:26:25 UTC
Created attachment 325389 [details]
Current lshal

Comment 15 Mace Moneta 2008-12-02 16:26:56 UTC
Created attachment 325390 [details]
Updated fdi

Comment 16 Peter Hutterer 2008-12-02 23:05:23 UTC
Oh, how very interesting. The c-pad doesn't claim touchpad capabilities, so your change never gets applied.

Just move the synaptics match outside of the input.touchpad match, so the order is

<match key="info.product" contains="Synaptics">
    <merge key="input.x11_options.SHMConfig" type="string">true</merge>
    <merge key="input.x11_driver" type="string">synaptics</merge>
</match>

<match key="info.capabilities" contains="input.touchpad">
   blah blah


Then again, restart HAL, grep the output of lshal for "synaptics", it should now show a "input.x11_driver = 'synaptics'". Then restart X.

Comment 17 Mace Moneta 2008-12-02 23:41:32 UTC
Created attachment 325452 [details]
Updated fdi file

The changes made to the fdi file, per the above comment.

Comment 18 Mace Moneta 2008-12-02 23:42:07 UTC
Created attachment 325453 [details]
The current lshal

Comment 19 Mace Moneta 2008-12-02 23:42:38 UTC
Created attachment 325454 [details]
The current xorg log

Comment 20 Mace Moneta 2008-12-02 23:43:28 UTC
The change completely disabled the touchpad and buttons.  Current files attached.

Comment 21 Peter Hutterer 2008-12-03 00:07:53 UTC
Good, now we're getting somewhere. It's definitly picked up properly now (before it was refused by the synaptics driver, then added by the evdev driver). Looks like synaptics doesn't support it yet, and we need to figure out why. Could be that it's just not advertising capabilities we would expect from it.
 
So: Please try the 1.0 RC1 driver from http://koji.fedoraproject.org/koji/buildinfo?buildID=69697. It includes a change for touchpads that don't report pressure.

If that doesn't work either, please get http://people.freedesktop.org/~whot/evtest.c, compile it with gcc -o evtest evtest.c and run it against the synaptics device. Post the output here and we should know what it's claiming to support.

Comment 22 Mace Moneta 2008-12-03 01:43:47 UTC
Created attachment 325462 [details]
Xorg log file

OK, with the updated driver, the touchpad works again.  It's limited to what it could do before any changes were made.  The gsynaptics utility now runs and I can configure it, but the changes have no impact.

The xorg log (attached) indicates that the device is not fully recognized:

(II) XINPUT: Adding extended input device "Synaptics Inc. Synaptics cPad" (type: MOUSE)
Query no Synaptics: 6003C8
Query no Synaptics: 6003C8
...

That last message keeps repeating as I use the touchpad.

Comment 23 Peter Hutterer 2008-12-03 01:53:30 UTC
Remove the Synaptics line from your ServerLayout, it's trying to pick it up twice.

Comment 24 Mace Moneta 2008-12-03 13:50:44 UTC
Created attachment 325536 [details]
xorg log

With the change above the touchpad still works, but gsynaptics no longer starts and the touchpad can't be configured.

Comment 25 Mace Moneta 2008-12-03 21:02:52 UTC
Created attachment 325597 [details]
Evtest output

I ran evtest, and the output is attached.  While it reports a middle button, the middle button did not create any events when used.  It does work with the cPad driver in the initial report.

Comment 26 Peter Hutterer 2008-12-04 05:28:32 UTC
did you change the HAL fdi again? the latest log shows a different run again, adding the touchpad with evdev. anyway, doesn't matter for now.

Now that I see the evtest output I understand why it doesn't work. The kernel driver doesn't expose what's required to be a touchpad, i.e. abs_x/y and btn_touch. Right now, it just looks like a mouse. We need to get the kernel driver fixed first, then the synaptics X driver should just hook onto it.

sorry about that, I thought the kernel driver was already fixed and it's a synaptics driver issue.

Comment 27 Mace Moneta 2008-12-04 15:03:38 UTC
As information, I didn't make any change to the fdi since I last posted it (comment #17).

Comment 28 Dmitry Torokhov 2009-04-13 01:02:50 UTC
cPad is a USB version of Synaptics touchpad. At the moment only PS/2 version is supported by 'synaptics' driver in the kernel. There is an out of tree version of the driver for USB hardware but it is still yet to be merged.

Comment 29 Mace Moneta 2009-04-13 01:33:36 UTC
That's the mystery.  The GPL driver has been available for 5 years now, and I've been using it since it first came into existence without issue.

Greg KH has had the driver on his "out-of-tree drivers that need to be looked at" list for 2 years, and indicates he has hundreds of volunteers with nothing to do.

The author of the driver wants to get it into the kernel tree.

And yet, here we sit with end-users having to compile a driver to get their touchpad to work.  It all seems odd.

Comment 30 Dmitry Torokhov 2009-04-13 02:14:03 UTC
Mystery indeed. For some reason I have never received any communication form the driver's author indicating his desire to have the driver merged and since I don't own this particular hardware and USB touchpads are pretty rare as opposed to PS/2 ones I am just waiting. I might be unresponsive at times but other people do get their drivers merged.

Comment 31 Bug Zapper 2009-11-18 08:06:28 UTC
This message is a reminder that Fedora 10 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 10.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '10'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 10's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 10 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 32 Bug Zapper 2009-12-18 05:52:07 UTC
Fedora 10 changed to end-of-life (EOL) status on 2009-12-17. Fedora 10 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.