Re: Touchpad/trackpad not working
Anders Bolt-Evensen <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.mobile |
|---|---|
| Message-ID | <[email protected]> |
On Aug 06, 2015, at 07:01 PM, Anthony Jenkins <[email protected]> wrote: > > > On 08/06/2015 01:42 AM, Anders Bolt-Evensen wrote: >> >> >> On Aug 05, 2015, at 07:48 PM, Anthony Jenkins <[email protected]> >> wrote: >> >>> [Dropping current@] >>> >>>> ________________________________ >>>> From: Anders Bolt-Evensen <[email protected]> >>>> To: [email protected]; [email protected] 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 _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-mobile To unsubscribe, send any mail to "[email protected]"