Discussion:
Touchpad/trackpad not working
Anders Bolt-Evensen
2015-08-05 15:38:14 UTC
Permalink
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.
Bus /dev/usb Device /dev/ugen2.2: ID 8087:8000
Bus /dev/usb Device /dev/ugen1.2: ID 8087:8008
Bus /dev/usb Device /dev/ugen0.2: ID 0bda:0129 Realtek Semiconductor Corp.
Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000
Bus /dev/usb Device /dev/ugen1.1: ID 0000:0000
Bus /dev/usb Device /dev/ugen0.1: ID 0000:0000
I do believe that the line with Synaotics (line 3) is the one with the touchpad/trackpad, but I may of course be wrong.
Here's the output of usbconfig:
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.1: <EHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <USB2.0-CRW Generic> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.2: <product 0x8008 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.2: <product 0x8000 vendor 0x8087> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4: <HD WebCam Chicony Electronics Co.,Ltd.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

Do you have any tips on how I can get the trackpad to work without having to have an external USB receiver plugged in when the computer starts? In /dev/ I cannot see any entries named psm0 or ums0.
This problem also exists on FreeBSD 10.

Here is the output of uname -a:
FreeBSD acer-Aspire-V17-Nitro.local 11.0-CURRENT FreeBSD 11.0-CURRENT #1 r286291M: Wed Aug 5 15:45:03 CEST 2015 ***@acer-Aspire-V17-Nitro.local:/usr/obj/usr/src/sys/GENERIC amd64

dmesg from a verbose boot is available here: https://www.dropbox.com/s/h0klbtwbvs7aa5j/dmesg.txt?dl=0

Any help would be appreciated.

Have a great day, everyone! :)

Anders
Anthony Jenkins via freebsd-mobile
2015-08-05 17:48:24 UTC
Permalink
________________________________
Subject: Touchpad/trackpad not working
Hello, everyone!
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".
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
Bus /dev/usb Device /dev/ugen2.2: ID 8087:8000 Bus /dev/usb Device /dev/ugen1.2: ID 8087:8008 Bus /dev/usb Device /dev/ugen0.2: ID 0bda:0129 Realtek Semiconductor Corp.
Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000 Bus /dev/usb Device /dev/ugen1.1: ID 0000:0000 Bus /dev/usb Device /dev/ugen0.1: ID 0000:0000
I do believe that the line with Synaotics (line 3) is the one with the touchpad/trackpad, but I may of course be wrong.
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.1: <EHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <USB2.0-CRW Generic> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.2: <product 0x8008 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.2: <product 0x8000 vendor 0x8087> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4: <HD WebCam Chicony Electronics Co.,Ltd.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
Do you have any tips on how I can get the trackpad to work without having to have an external USB receiver plugged in when the computer starts? In /dev/ I cannot see any entries named psm0 or ums0.
This problem also exists on FreeBSD 10.
dmesg from a verbose boot is available here: https://www.dropbox.com/s/h0klbtwbvs7aa5j/dmesg.txt?dl=0
Any help would be appreciated.
Have a great day, everyone! :)
Anders
Anders Bolt-Evensen
2015-08-06 05:42:07 UTC
Permalink
________________________________
Subject: Touchpad/trackpad not working
Hello, everyone!
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".
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.
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
Bus /dev/usb Device /dev/ugen2.2: ID 8087:8000 Bus /dev/usb Device /dev/ugen1.2: ID 8087:8008 Bus /dev/usb Device /dev/ugen0.2: ID 0bda:0129 Realtek Semiconductor Corp.
Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000 Bus /dev/usb Device /dev/ugen1.1: ID 0000:0000 Bus /dev/usb Device /dev/ugen0.1: ID 0000:0000
I do believe that the line with Synaotics (line 3) is the one with the touchpad/trackpad, but I may of course be wrong.
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.1: <EHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <USB2.0-CRW Generic> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.2: <product 0x8008 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.2: <product 0x8000 vendor 0x8087> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4: <HD WebCam Chicony Electronics Co.,Ltd.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
Do you have any tips on how I can get the trackpad to work without having to have an external USB receiver plugged in when the computer starts? In /dev/ I cannot see any entries named psm0 or ums0.
This problem also exists on FreeBSD 10.
dmesg from a verbose boot is available here: https://www.dropbox.com/s/h0klbtwbvs7aa5j/dmesg.txt?dl=0
Any help would be appreciated.
Have a great day, everyone! :)
Anders
Anthony Jenkins via freebsd-mobile
2015-08-06 17:01:04 UTC
Permalink
Post by Anders Bolt-Evensen
________________________________
Wednesday, August 5, 2015 11:38 AM
Subject: Touchpad/trackpad not working
Hello, everyone!
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".
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.
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.
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
Post by Anders Bolt-Evensen
Bus /dev/usb Device /dev/ugen2.2: ID 8087:8000 Bus /dev/usb Device
/dev/ugen1.2: ID 8087:8008 Bus /dev/usb Device /dev/ugen0.2: ID
0bda:0129 Realtek Semiconductor Corp.
Bus /dev/usb Device /dev/ugen2.1: ID 0000:0000 Bus /dev/usb Device
/dev/ugen1.1: ID 0000:0000 Bus /dev/usb Device /dev/ugen0.1: ID
0000:0000
I do believe that the line with Synaotics (line 3) is the one with
the touchpad/trackpad, but I may of course be wrong.
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen2.1: <EHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen0.2: <USB2.0-CRW Generic> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=ON (500mA)
ugen1.2: <product 0x8008 vendor 0x8087> at usbus1, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.2: <product 0x8000 vendor 0x8087> at usbus2, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.3: <product 0x2970 vendor 0x06cb> at usbus0, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4: <HD WebCam Chicony Electronics Co.,Ltd.> at usbus0, cfg=0
md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
Do you have any tips on how I can get the trackpad to work without
having to have an external USB receiver plugged in when the computer
starts? In /dev/ I cannot see any entries named psm0 or ums0.
This problem also exists on FreeBSD 10.
FreeBSD acer-Aspire-V17-Nitro.local 11.0-CURRENT FreeBSD
11.0-CURRENT #1 r286291M: Wed Aug 5 15:45:03 CEST 2015
https://www.dropbox.com/s/h0klbtwbvs7aa5j/dmesg.txt?dl=0
Any help would be appreciated.
Have a great day, everyone! :)
Anders
_______________________________________________
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
--
Anthony Jenkins
Anders Bolt-Evensen
2015-08-07 06:19:23 UTC
Permalink
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
Anthony Jenkins via freebsd-mobile
2015-08-09 01:06:57 UTC
Permalink
Post by Anders Bolt-Evensen
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
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
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
[...]
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
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
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
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
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

Are there any instances of moused(8) running when the external mouse is
plugged in?

$ ps auxww | grep moused

Thanks,
Anthony
Post by Anders Bolt-Evensen
_______________________________________________
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
--
Anthony Jenkins
Software Engineer
VTilt Digital, LLC
Anders Bolt-Evensen
2015-08-10 06:29:19 UTC
Permalink
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
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
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
[...]
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
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
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
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
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
Post by Anthony Jenkins via freebsd-mobile
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
Anthony Jenkins via freebsd-mobile
2015-08-10 16:33:13 UTC
Permalink
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
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
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
[...]
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
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
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
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
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
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.
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
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
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
Anders Bolt-Evensen
2015-08-11 06:03:19 UTC
Permalink
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
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
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
[...]
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
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
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
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
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
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.
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
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
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
_______________________________________________
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
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
Anthony Jenkins via freebsd-mobile
2015-08-11 14:40:01 UTC
Permalink
On Aug 10, 2015, at 06:33 PM, Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
Post by Anders Bolt-Evensen
Post by Anthony Jenkins via freebsd-mobile
On Aug 05, 2015, at 07:48 PM, Anthony Jenkins
________________________________
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
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".
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.
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.
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
usbconfig -d ugen0.3 dump_curr_config_desc
$ 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
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
- 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
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
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
[...]
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
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
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
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
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
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.
Post by Anthony Jenkins via freebsd-mobile
Post by Anthony Jenkins via freebsd-mobile
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
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
_______________________________________________
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to
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.
Ahhh that explains that bit. In your previous emails, I don't think you
mentioned there were /two/ ums(4) devices when the external mouse was
attached.
One thing that puzzles me is why the following message appears during
"psm0: unable to allocate IRQ"
Unrelated... it's probably because there is nothing physically attached
to the PS/2 port of the laptop.
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.
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
https://www.dropbox.com/s/uga7p5zlxh7knsj/dmesg_with_external_usb.txt?dl=0
Anders
hid_is_mouse() is failing to tell that your Synaptics USB HID device is
a mouse, but /only/ when there's no other USB (HID) device on that USB
bus (usbus0). I suspect it has to do with the hid_get_item() warnings
about chopping stuff off. I can't tell from the source code for
hid_get_item() (a 313-line function) why it's behaving that way, or why
a totally different HID device (Logitech mouse) causes it to behave
differently for this HID device (Synaptics touchpad). I've added
freebsd-usb@ to see if they know what's going on.

***@kubuntu-ajenkins:~/Downloads$ grep usbus0
dmesg_with_external_usb.txt
usbus0: waiting for BIOS to give up control
usbus0 on xhci0
random: harvesting attach, 8 bytes (4 bits) from usbus0
usbus0: 5.0Gbps Super Speed USB v3.0
ugen0.1: <0x8086> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on
usbus0
Root mount waiting for: usbus2 usbus1 usbus0
ugen0.2: <Logitech> at usbus0
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
Root mount waiting for: usbus0
ugen0.3: <Generic> at usbus0
Root mount waiting for: usbus0
ugen0.4: <vendor 0x06cb> at usbus0
ugen0.5: <Chicony Electronics Co.,Ltd.> at usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
[snip]
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.6: <Unknown> at usbus0 (disconnected)
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
ums1: <vendor 0x06cb product 0x2970, class 0/0, rev 2.00/0.08, addr
3> on usbus0
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0

What possessed the laptop manufacturer to hang the Synaptics touchpad
device off a USB 3.0 controller is beyond me... I have problems booting
FreeBSD off USB 3.0 mass storage devices.
--
Anthony Jenkins
Hans Petter Selasky
2015-08-11 15:05:00 UTC
Permalink
Post by Anthony Jenkins via freebsd-mobile
hid_is_mouse() is failing to tell that your Synaptics USB HID device is
a mouse, but /only/ when there's no other USB (HID) device on that USB
bus (usbus0). I suspect it has to do with the hid_get_item() warnings
about chopping stuff off. I can't tell from the source code for
hid_get_item() (a 313-line function) why it's behaving that way, or why
a totally different HID device (Logitech mouse) causes it to behave
differently for this HID device (Synaptics touchpad). I've added
dmesg_with_external_usb.txt
usbus0: waiting for BIOS to give up control
usbus0 on xhci0
random: harvesting attach, 8 bytes (4 bits) from usbus0
usbus0: 5.0Gbps Super Speed USB v3.0
ugen0.1: <0x8086> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on
usbus0
Root mount waiting for: usbus2 usbus1 usbus0
ugen0.2: <Logitech> at usbus0
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
Root mount waiting for: usbus0
ugen0.3: <Generic> at usbus0
Root mount waiting for: usbus0
ugen0.4: <vendor 0x06cb> at usbus0
ugen0.5: <Chicony Electronics Co.,Ltd.> at usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
[snip]
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.6: <Unknown> at usbus0 (disconnected)
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
ums1: <vendor 0x06cb product 0x2970, class 0/0, rev 2.00/0.08, addr
3> on usbus0
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
What possessed the laptop manufacturer to hang the Synaptics touchpad
device off a USB 3.0 controller is beyond me... I have problems booting
FreeBSD off USB 3.0 mass storage devices.
Hi,

Does your mouse only fail to work in X-org, or also the console?

Run "usbdump -i usbusX -f Y -s 65536 -vvv" to catch USB events for
ugenX.Y. That might give some further clues.

If using X.org, do you use hald or devd backend?

--HPS
Zoran Kolic
2015-08-11 15:39:24 UTC
Permalink
What do you have in device.hints?

Zoran
Anders Bolt-Evensen
2015-08-12 07:20:35 UTC
Permalink
Post by Hans Petter Selasky
Post by Anthony Jenkins via freebsd-mobile
hid_is_mouse() is failing to tell that your Synaptics USB HID device is
a mouse, but /only/ when there's no other USB (HID) device on that USB
bus (usbus0). I suspect it has to do with the hid_get_item() warnings
about chopping stuff off. I can't tell from the source code for
hid_get_item() (a 313-line function) why it's behaving that way, or why
a totally different HID device (Logitech mouse) causes it to behave
differently for this HID device (Synaptics touchpad). I've added
dmesg_with_external_usb.txt
usbus0: waiting for BIOS to give up control
usbus0 on xhci0
random: harvesting attach, 8 bytes (4 bits) from usbus0
usbus0: 5.0Gbps Super Speed USB v3.0
ugen0.1: <0x8086> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on
usbus0
Root mount waiting for: usbus2 usbus1 usbus0
ugen0.2: <Logitech> at usbus0
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
Root mount waiting for: usbus0
ugen0.3: <Generic> at usbus0
Root mount waiting for: usbus0
ugen0.4: <vendor 0x06cb> at usbus0
ugen0.5: <Chicony Electronics Co.,Ltd.> at usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
[snip]
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.6: <Unknown> at usbus0 (disconnected)
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
ums1: <vendor 0x06cb product 0x2970, class 0/0, rev 2.00/0.08, addr
3> on usbus0
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on
usbus0
What possessed the laptop manufacturer to hang the Synaptics touchpad
device off a USB 3.0 controller is beyond me... I have problems booting
FreeBSD off USB 3.0 mass storage devices.
Hi,
Does your mouse only fail to work in X-org, or also the console?
Run "usbdump -i usbusX -f Y -s 65536 -vvv" to catch USB events for
ugenX.Y. That might give some further clues.
If using X.org, do you use hald or devd backend?
--HPS
It fails in both X-org and console.
In X, recently I've only been using devd.
When trying to use the command usbdump -i usbus0 -f 3 -s 65536 -vvv on my touchpad (without any external usb receiver connected), nothing happens at all. No left-click, no right-click, nothing.

However, if I insert an external USB receiver and then reboot the computer, the touchpad works just fine in both console and in X-org.
If I now do the command above, since I've connected the receiver and done the reboot, I get the following output (just note that during the reboot, the address of the touchpad was changed from ugen0.3 to ugen0.4):
https://www.dropbox.com/s/ktj757okcq61ljc/usbdump_i_usbusX_f_Y_s_65536_vvv.txt?dl=0
Post by Hans Petter Selasky
What do you have in device.hints?
Zoran
/boot/device.hints has the following contents:
hint.fdc.0.at="isa"
hint.fdc.0.port="0x3F0"
hint.fdc.0.irq="6"
hint.fdc.0.drq="2"
hint.fd.0.at="fdc0"
hint.fd.0.drive="0"
hint.fd.1.at="fdc0"
hint.fd.1.drive="1"
hint.atkbdc.0.at="isa"
hint.atkbdc.0.port="0x060"
hint.atkbd.0.at="atkbdc"
hint.atkbd.0.irq="1"
hint.psm.0.at="atkbdc"
hint.psm.0.irq="12"
hint.sc.0.at="isa"
hint.sc.0.flags="0x100"
hint.uart.0.at="isa"
hint.uart.0.port="0x3F8"
hint.uart.0.flags="0x10"
hint.uart.0.irq="4"
hint.uart.1.at="isa"
hint.uart.1.port="0x2F8"
hint.uart.1.irq="3"
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
hint.atrtc.0.at="isa"
hint.atrtc.0.port="0x70"
hint.atrtc.0.irq="8"
hint.attimer.0.at="isa"
hint.attimer.0.port="0x40"
hint.attimer.0.irq="0"
hint.wbwd.0.at="isa"
hint.acpi_throttle.0.disabled="1"
hint.p4tcc.0.disabled="1"
Anders Bolt-Evensen
2015-08-14 13:58:32 UTC
Permalink
It seems that my solution was to add ums_load="YES" to /boot/loader.conf.
After adding that the touchpad works fine for now:
Mouse pointer moves when moving fingers across the touchpad
Tapping works (annoyingly)
Left-clicking works
Right-clicking works
Scrolling does not work, but I can live with that.

Thanks to everyone who helped me solve my problem.

Anders
Hans Petter Selasky
2015-08-14 14:16:14 UTC
Permalink
Post by Anders Bolt-Evensen
It seems that my solution was to add ums_load="YES" to /boot/loader.conf.
Mouse pointer moves when moving fingers across the touchpad
Tapping works (annoyingly)
Left-clicking works
Right-clicking works
Scrolling does not work, but I can live with that.
Thanks to everyone who helped me solve my problem.
Anders
Hi,

This probably means uhid is picking the device up before ums.

Your solution is valid :-)

--HPS
Anthony Jenkins via freebsd-mobile
2015-08-14 14:38:21 UTC
Permalink
Post by Hans Petter Selasky
Post by Anders Bolt-Evensen
It seems that my solution was to add ums_load="YES" to
/boot/loader.conf.
Mouse pointer moves when moving fingers across the touchpad
Tapping works (annoyingly)
Left-clicking works
Right-clicking works
Scrolling does not work, but I can live with that.
Thanks to everyone who helped me solve my problem.
Anders
Hi,
This probably means uhid is picking the device up before ums.
Your solution is valid :-)
--HPS
Awesome! Now just gotta get the Synaptics touchpad protocol out of
psm(4)... :-/
--
Anthony Jenkins
Loading...