Date: Tue, 11 Aug 2015 06:03:19 +0000 (GMT) From: Anders Bolt-Evensen <andersbo87@icloud.com> To: freebsd-mobile@freebsd.org Subject: Re: Touchpad/trackpad not working Message-ID: <e78d8c86-e167-4483-94aa-eae6763b037f@me.com> In-Reply-To: <55C8D249.7010505@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 10, 2015, at 06:33 PM, Anthony Jenkins via freebsd-mobile <freebsd-mobile@freebsd.org> wrote: > > > On 08/10/2015 02:29 AM, Anders Bolt-Evensen wrote: >> >> >> On Aug 09, 2015, at 03:07 AM, Anthony Jenkins <Scoobi_doo@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@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@yahoo.com> >>>>>> wrote: >>>>>> >>>>>>> [Dropping current@] >>>>>>> >>>>>>>> ________________________________ >>>>>>>> From: Anders Bolt-Evensen <andersbo87@me.com> >>>>>>>> To: freebsd-current@freebsd.org; freebsd-mobile@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 > > Whoa... does your mouse /actually/ have 16 buttons??? > > Ahh never mind, I just tried my Logitech universal receiver on my > FreeBSD laptop - same number of buttons. > >> >>> 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 >> > Well I'm at a loss... if your touchpad is in fact a USB device, I don't > see how it could report mouse events to FreeBSD when a different USB > mouse is installed (if that's indeed what's happening). Next thing I'd > do is try to track down how the device is reporting data to FreeBSD in > this case (and why it isn't in the other case). I'd look at the > /dev/ums0 device node to see what data it appears to be receiving when > using the touchpad, probably by running moused(8) in debug/verbose mode. > > Does the touchpad still work (e.g. move the cursor) if you boot with the > external USB mouse, but then unplug it? Is moused(8) still running > after unplugging? > > Have you poked around your BIOS for any possible touchpad or USB > configuration settings? For one, you might try setting "Legacy USB" to > "enabled" (if your BIOS has it). > > About the only thing I can think of asking for now is for you to boot > verbose twice (with and without the external USB mouse connected) and > send me the dmesg(1) or /var/log/messages with the boot messages. > > -- > Anthony Jenkins > > > _______________________________________________ > freebsd-mobile@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mobile > To unsubscribe, send any mail to "freebsd-mobile-unsubscribe@freebsd.org" I did take a long look in the BIOS, but i have not seen anything interesting as far as any kind of USB settings goes. When I boot with the external mouse plugged in and then disconnect the external mouse, the trackpad still works. That is because when I boot the system with the external USB mouse connected, the system creates both /dev/ums0 and /dev/ums1 (which you'll see from the output of dmesg from 2 verbose boots below). Moused then runs on both device nodes. When I disconnect the external device, /dev/ums0 is removed while /dev/ums1 remains. Normally, when I boot the system without the external mouse, /dev/ums* is not created at all. /dev/ums* only appears if I connect the external device. One thing that puzzles me is why the following message appears during boot (it might be unrelated): "psm0: unable to allocate IRQ" Originally I tried to post the output of dmesg from the 2 verbose boots here, but the message got rejected because of its size. Therefore, output from dmesg is available from the following 2 links. Output of the verbose boot messages without the external mouse: https://www.dropbox.com/s/ukpoyg6rsl3jjgd/dmesg_without_external_usb.txt?dl=0 Now, I gave the command "shutdown -p now" (power off the system) and then plugged in the external USB mouse. After that I ran a new verbose boot: https://www.dropbox.com/s/uga7p5zlxh7knsj/dmesg_with_external_usb.txt?dl=0 Anders
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e78d8c86-e167-4483-94aa-eae6763b037f>
