Touchpad/trackpad not working

Anders Bolt-Evensen andersbo87 at icloud.com
Mon Aug 10 07:29:29 UTC 2015



On Aug 09, 2015, at 03:07 AM, Anthony Jenkins <Scoobi_doo at yahoo.com> wrote:

>
>
> On 08/07/15 02:19, Anders Bolt-Evensen wrote:
>>
>>
>> On Aug 06, 2015, at 07:01 PM, Anthony Jenkins <Scoobi_doo at yahoo.com>
>> wrote:
>>
>>>
>>>
>>> On 08/06/2015 01:42 AM, Anders Bolt-Evensen wrote:
>>>>
>>>>
>>>> On Aug 05, 2015, at 07:48 PM, Anthony Jenkins <Scoobi_doo at yahoo.com>
>>>> wrote:
>>>>
>>>>> [Dropping current@]
>>>>>
>>>>>> ________________________________
>>>>>> From: Anders Bolt-Evensen <andersbo87 at me.com>
>>>>>> To: freebsd-current at freebsd.org; freebsd-mobile at freebsd.org Sent:
>>>>>> Wednesday, August 5, 2015 11:38 AM
>>>>>> Subject: Touchpad/trackpad not working
>>>>>>
>>>>>>
>>>>>> Hello, everyone!
>>>>>> On my Acer Aspire V17 Nitro I have a little problems with my
>>>>>> touchpad/trackpad:
>>>>>> When I boot the system, in this case, on FreeBSD Current (the
>>>>>> problem also exists on FreeBSD 10) without an external USB receiver
>>>>>> connected, my trackpad does not work at all, neither in console or
>>>>>> in X.
>>>>>> In other words I am not able to do a left or right click and moving
>>>>>> the pointer does not work either.
>>>>>> I cannot see any mention of it when I take a look at dmesg, other
>>>>>> than a message that says "psm0: unable to allocate IRQ"
>>>>>> Today I installed sysutils/usbutils to see if I could get any more
>>>>>> info about my problem and then took a look at output of the command
>>>>>> "lsusb".
>>>>>> I see the following output:
>>>>>> Bus /dev/usb Device /dev/ugen0.5: ID 046d:c52b Logitech, Inc.
>>>>>> Bus /dev/usb Device /dev/ugen0.4: ID 04f2:b474 Chicony Electronics
>>>>>> Co., Ltd
>>>>>> Bus /dev/usb Device /dev/ugen0.3: ID 06cb:2970 Synaptics, Inc.
>>>>>
>>>>> Weird...first time seeing a Synaptics device on USB. I know psm(4)
>>>>> generally handles Synaptics protocol in FreeBSD (if you enable
>>>>> synaptics
>>>>> support), but your device isn't hanging off the atkbd(4)/psm(4). I'd
>>>>> expect ums(4) to attach then... no idea why it isn't, or if it
>>>>> supports
>>>>> the Synaptics protocol.
>>>>>
>>>>> Can you tell me what the following command reports:
>>>>>
>>>>> usbconfig -d ugen0.3 dump_device_desc
>>>>>
>>>>> I think the device needs to report itself as a USB HID device for
>>>>> ums(4)
>>>>> to attach.
>>>>>
>>>>> Also, do you have moused(8) running?
>>>>>
>>>>> Thanks,
>>>>> Anthony Jenkins
>>>>
>>>> In /etc/rc.conf I do have moused_enable="YES", but sudo
>>>> /etc/rc.d/moused status reports
>>>> "moused is not running". I assume it is because of missing psm0.
>>>>
>>>> The command usbconfig -d ugen0.3 dump_device_desc reports:
>>>> ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST
>>>> spd=FULL (12Mbps) pwr=ON (100mA)
>>>>
>>>> bLength = 0x0012
>>>> bDescriptorType = 0x0001
>>>> bcdUSB = 0x0200
>>>> bDeviceClass = 0x0000 <Probed by interface class>
>>>> bDeviceSubClass = 0x0000
>>>> bDeviceProtocol = 0x0000
>>>> bMaxPacketSize0 = 0x0008
>>>> idVendor = 0x06cb
>>>> idProduct = 0x2970
>>>> bcdDevice = 0x0008
>>>> iManufacturer = 0x0001 < >
>>>> iProduct = 0x0002 < >
>>>> iSerialNumber = 0x0000 <no string>
>>>> bNumConfigurations = 0x0001
>>>>
>>>> - Anders
>>>
>>> Okay try the 'dump_curr_config_desc' command to usbconfig(8):
>>>
>>> usbconfig -d ugen0.3 dump_curr_config_desc
>>>
>>> For my Areson USB mouse, this reports:
>>>
>>> $ sudo usbconfig -d ugen0.2 dump_curr_config_desc
>>> ugen0.2: <USB Device Areson> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps)
>>> pwr=ON (100mA)
>>>
>>>
>>> Configuration index 0
>>>
>>> bLength = 0x0009
>>> bDescriptorType = 0x0002
>>> wTotalLength = 0x003b
>>> bNumInterfaces = 0x0002
>>> bConfigurationValue = 0x0001
>>> iConfiguration = 0x0000 <no string>
>>> bmAttributes = 0x00a0
>>> bMaxPower = 0x0032
>>>
>>> Interface 0
>>> bLength = 0x0009
>>> bDescriptorType = 0x0004
>>> bInterfaceNumber = 0x0000
>>> bAlternateSetting = 0x0000
>>> bNumEndpoints = 0x0001
>>> bInterfaceClass = 0x0003 <HID device>
>>> bInterfaceSubClass = 0x0001
>>> bInterfaceProtocol = 0x0002
>>> iInterface = 0x0000 <no string>
>>>
>>> Additional Descriptor
>>>
>>> bLength = 0x09
>>> bDescriptorType = 0x21
>>> bDescriptorSubType = 0x00
>>> RAW dump:
>>> 0x00 | 0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, 0x59,
>>> 0x08 | 0x00
>>>
>>> Endpoint 0
>>> bLength = 0x0007
>>> bDescriptorType = 0x0005
>>> bEndpointAddress = 0x0081 <IN>
>>> bmAttributes = 0x0003 <INTERRUPT>
>>> wMaxPacketSize = 0x0008
>>> bInterval = 0x000a
>>> bRefresh = 0x0000
>>> bSynchAddress = 0x0000
>>> ...
>>>
>>>
>>> I'm looking for an "Interface #" section with "bInterfaceClass = 0x0003
>>> <HID device>" and "bInterfaceProtocol = 0x0002" lines (class 0x3
>>> protocol 0x2 is a mouse, supported by our ums(4) driver). If you have
>>> that, then it should work "out of the box" with moused(8) configured
>>> with the "auto" protocol (required for USB pointing devices).
>>>
>>> You didn't say whether the touchpad works with another USB mouse
>>> attached or not. I wouldn't expect plugging a different mouse in to
>>> have any effect on the touchpad behaviour, but if so, please also run
>>> the above usbconfig(8) command:
>>>
>>> - with no external USB mouse plugged in, targetting the Synaptics
>>> touchpad device (ugen0.3)
>>> - with an external USB mouse plugged in, once for the Synaptics
>>> touchpad device (ugen0.3) and once for the external mouse (ugen?.?)
>>>
>>> Thanks,
>>> Anthony
>>
>> If I start FreeBSD without the external receiver and run udo usbconfig
>> -d ugen0.3 dump_curr_config_desc, I get the following output:
>> ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST
>> spd=FULL (12Mbps) pwr=ON (100mA)
>>
>>
>> Configuration index 0
>>
>> bLength = 0x0009
>> bDescriptorType = 0x0002
>> wTotalLength = 0x0029
>> bNumInterfaces = 0x0001
>> bConfigurationValue = 0x0001
>> iConfiguration = 0x0000 <no string>
>> bmAttributes = 0x00a0
>> bMaxPower = 0x0032
>>
>> Interface 0
>> bLength = 0x0009
>> bDescriptorType = 0x0004
>> bInterfaceNumber = 0x0000
>> bAlternateSetting = 0x0000
>> bNumEndpoints = 0x0002
>> bInterfaceClass = 0x0003 <HID device>
>> bInterfaceSubClass = 0x0000
>> bInterfaceProtocol = 0x0000
>> iInterface = 0x0000 <no string>
>>
>> Additional Descriptor
>>
>> bLength = 0x09
>> bDescriptorType = 0x21
>> bDescriptorSubType = 0x11
>> RAW dump:
>> 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0xa1,
>> 0x08 | 0x01
>>
>> Endpoint 0
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0081 <IN>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0040
>> bInterval = 0x0001
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>> Endpoint 1
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0002 <OUT>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0040
>> bInterval = 0x000a
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>> Now, if I plug in the receiver and reboot my computer (the touchpad
>> does not work in FreeBSD unless I start the computer with that device
>> plugged in -- the external mouse that came with the receiver works
>> just fine without a reboot) and then run the same command again (note
>> that when booting with the external device plugged in, according to
>> "lsusb", the Symantec touchpad changes from ugen0.3 to ugen0.4), I get
>> the following:
>> Output of lsusb:
>> [...]
>> Bus /dev/usb Device /dev/ugen0.4: ID 06cb:2970 Synaptics, Inc.
>> [...]
>> Bus /dev/usb Device /dev/ugen0.2: ID 046d:c52b Logitech, Inc.
>>
>> Output of "sudo usbconfig -d ugen0.4 dump_curr_config_desc" (ugen0.3
>> before the reboot)
>> ugen0.4: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST
>> spd=FULL (12Mbps) pwr=ON (100mA)
>>
>>
>> Configuration index 0
>>
>> bLength = 0x0009
>> bDescriptorType = 0x0002
>> wTotalLength = 0x0029
>> bNumInterfaces = 0x0001
>> bConfigurationValue = 0x0001
>> iConfiguration = 0x0000 <no string>
>> bmAttributes = 0x00a0
>> bMaxPower = 0x0032
>>
>> Interface 0
>> bLength = 0x0009
>> bDescriptorType = 0x0004
>> bInterfaceNumber = 0x0000
>> bAlternateSetting = 0x0000
>> bNumEndpoints = 0x0002
>> bInterfaceClass = 0x0003 <HID device>
>> bInterfaceSubClass = 0x0000
>> bInterfaceProtocol = 0x0000
>> iInterface = 0x0000 <no string>
>>
>> Additional Descriptor
>>
>> bLength = 0x09
>> bDescriptorType = 0x21
>> bDescriptorSubType = 0x11
>> RAW dump:
>> 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0xa1,
>> 0x08 | 0x01
>>
>> Endpoint 0
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0081 <IN>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0040
>> bInterval = 0x0001
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>> Endpoint 1
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0002 <OUT>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0040
>> bInterval = 0x000a
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>> Output of sudo usbconfig -d ugen0.2 dump_curr_config_desc (ugen0.5 if
>> plugged in before the reboot)
>> ugen0.2: <USB Receiver Logitech> at usbus0, cfg=0 md=HOST spd=FULL
>> (12Mbps) pwr=ON (98mA)
>>
>>
>> Configuration index 0
>>
>> bLength = 0x0009
>> bDescriptorType = 0x0002
>> wTotalLength = 0x0054
>> bNumInterfaces = 0x0003
>> bConfigurationValue = 0x0001
>> iConfiguration = 0x0004 <RQR12.01_B0019>
>> bmAttributes = 0x00a0
>> bMaxPower = 0x0031
>>
>> Interface 0
>> bLength = 0x0009
>> bDescriptorType = 0x0004
>> bInterfaceNumber = 0x0000
>> bAlternateSetting = 0x0000
>> bNumEndpoints = 0x0001
>> bInterfaceClass = 0x0003 <HID device>
>> bInterfaceSubClass = 0x0001
>> bInterfaceProtocol = 0x0001
>> iInterface = 0x0000 <no string>
>>
>> Additional Descriptor
>>
>> bLength = 0x09
>> bDescriptorType = 0x21
>> bDescriptorSubType = 0x11
>> RAW dump:
>> 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x3b,
>> 0x08 | 0x00
>>
>> Endpoint 0
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0081 <IN>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0008
>> bInterval = 0x0008
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>>
>> Interface 1
>> bLength = 0x0009
>> bDescriptorType = 0x0004
>> bInterfaceNumber = 0x0001
>> bAlternateSetting = 0x0000
>> bNumEndpoints = 0x0001
>> bInterfaceClass = 0x0003 <HID device>
>> bInterfaceSubClass = 0x0001
>> bInterfaceProtocol = 0x0002
>> iInterface = 0x0000 <no string>
>>
>> Additional Descriptor
>>
>> bLength = 0x09
>> bDescriptorType = 0x21
>> bDescriptorSubType = 0x11
>> RAW dump:
>> 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x94,
>> 0x08 | 0x00
>>
>> Endpoint 0
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0082 <IN>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0008
>> bInterval = 0x0002
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>>
>> Interface 2
>> bLength = 0x0009
>> bDescriptorType = 0x0004
>> bInterfaceNumber = 0x0002
>> bAlternateSetting = 0x0000
>> bNumEndpoints = 0x0001
>> bInterfaceClass = 0x0003 <HID device>
>> bInterfaceSubClass = 0x0000
>> bInterfaceProtocol = 0x0000
>> iInterface = 0x0000 <no string>
>>
>> Additional Descriptor
>>
>> bLength = 0x09
>> bDescriptorType = 0x21
>> bDescriptorSubType = 0x11
>> RAW dump:
>> 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x62,
>> 0x08 | 0x00
>>
>> Endpoint 0
>> bLength = 0x0007
>> bDescriptorType = 0x0005
>> bEndpointAddress = 0x0083 <IN>
>> bmAttributes = 0x0003 <INTERRUPT>
>> wMaxPacketSize = 0x0020
>> bInterval = 0x0002
>> bRefresh = 0x0000
>> bSynchAddress = 0x0000
>>
>> With that device plugged in during the booting process, I'm able to do
>> a left tap/click and a right click with the touchpad. Scrolling does
>> not work unless I use the external mouse instead of the touchpad.
>> If I now decide to unplug the external device, the touchpad works
>> until the next reboot.
>>
>> Anders
>>
> Are there any /dev/ums* device nodes when the external mouse is plugged in?
>
> $ ls /dev/ums*
> $ dmesg | grep ums
 
Yes, when I connect the external mouse, /dev/ums0 appears:
ls /dev/ums*
/dev/ums0

dmesg | grep ums
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 5> on usbus0
ums0: 16 buttons and [XYZT] coordinates ID=2

> Are there any instances of moused(8) running when the external mouse is
> plugged in?
>
> $ ps auxww | grep moused
>
> Thanks,
> Anthony
 
When the external mouse is connected, the following instance of moused is running (as returned from the command ps auxww | grep moused):
root       2426   0.0  0.0  16728   2284  -  Ss   08:06    0:00.00 /usr/sbin/moused -p /dev/ums0 -t auto -I /var/run/moused.ums0.pid

Anders



More information about the freebsd-mobile mailing list