Date: Fri, 2 Sep 2016 10:11:12 -0400 From: Anthony Jenkins <Scoobi_doo@yahoo.com> To: abi <abi@abinet.ru>, Arto Pekkanen <isoa@kapsi.fi> Cc: freebsd-x11@freebsd.org Subject: Re: Problem with touchpad Message-ID: <ace1550f-7d52-d697-1603-0dc5d754abb3@yahoo.com> In-Reply-To: <3f635241-a5ed-3d76-2451-0d2e246c1125@abinet.ru> References: <3ff36b68-bc63-b3f9-ffb7-ade8c6b3e690@abinet.ru> <255e5a1340573719da0c32f870523449@kapsi.fi> <63738d79-fa1e-7401-9f07-242ccbf2f40c@abinet.ru> <1d85bba2228e2a4b9c2ccd7721ccffe6@kapsi.fi> <670f7ff4-81cb-af50-be2a-5a97318dd5e8@abinet.ru> <3009df27-0b1a-a6c2-44e8-d8cfcb31307f@yahoo.com> <3f635241-a5ed-3d76-2451-0d2e246c1125@abinet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
The problem is the mouse(4) Xorg driver doesn't work (well) with the Synaptics-flavored psm(4) device. My xorg-server port should attach the synaptics(4) Xorg driver. If you can, try grabbing my version of the following ports: x11-servers/xorg-server - https://github.com/ScoobiFreeBSD/freebsd-ports/tree/xorg-synaptics/x11-se= rvers/xorg-server x11-drivers/xf86-input-synaptics - https://github.com/ScoobiFreeBSD/freebsd-ports/tree/xorg-synaptics/x11-dr= ivers/xf86-input-synaptics x11-drivers/xf86-input-mouse - https://github.com/ScoobiFreeBSD/freebsd-ports/tree/xorg-synaptics/x11-dr= ivers/xf86-input-mouse The 2 drivers just change the autodetection of FreeBSD's Synaptics-flavored psm(4). Patch version: https://github.com/ScoobiFreeBSD/freebsd-ports/commit/4e1b8522e770b54264f= 393b4fd8ce5b3acebcabe.patch (I'm not sure if any of the x11 ports changed since I did these patches, so they might not apply cleanly) Anthony On 09/02/2016 03:00 AM, abi wrote: > No need to sorry, I'm very thankful you're answering at all! :) > > I removed moused config from /etc/rc.conf and from xorg configuration, > so I have only hw.psm.synaptics_support=3D1 in /boot/loader/conf > > Here is how xorg initializing pointing devices > > [ 27.114] (II) LoadModule: "mouse" > [ 27.114] (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.s= o > [ 27.115] (II) Module mouse: vendor=3D"X.Org Foundation" > [ 27.115] compiled for 1.17.4, module version =3D 1.9.1 > [ 27.115] Module class: X.Org XInput Driver > [ 27.115] ABI class: X.Org XInput driver, version 21.0 > [ 27.115] (II) Using input driver 'mouse' for 'sysmouse' > [ 27.115] (**) sysmouse: always reports core events > [ 27.115] (**) Option "Device" "/dev/sysmouse" > [ 27.115] (=3D=3D) sysmouse: Protocol: "Auto" > [ 27.115] (**) sysmouse: always reports core events > [ 27.115] (=3D=3D) sysmouse: Emulate3Buttons, Emulate3Timeout: 50 > [ 27.115] (**) sysmouse: ZAxisMapping: buttons 4 and 5 > [ 27.115] (**) sysmouse: Buttons: 5 > [ 27.115] (**) Option "config_info" "devd:sysmouse" > [ 27.115] (II) XINPUT: Adding extended input device "sysmouse" > (type: MOUSE, id 7) > [ 27.115] (**) sysmouse: (accel) keeping acceleration scheme 1 > [ 27.115] (**) sysmouse: (accel) acceleration profile 0 > [ 27.115] (**) sysmouse: (accel) acceleration factor: 2.000 > [ 27.115] (**) sysmouse: (accel) acceleration threshold: 4 > [ 27.116] (II) sysmouse: SetupAuto: hw.iftype is 4, hw.model is 0 > [ 27.116] (II) sysmouse: SetupAuto: protocol is SysMouse > [ 27.116] (II) config/devd: device /dev/ums0 already opened > [ 27.205] (II) config/devd: adding input device Mouse (/dev/psm0) > [ 27.205] (II) Using input driver 'mouse' for 'Mouse' > [ 27.205] (**) Mouse: always reports core events > [ 27.205] (**) Option "Device" "/dev/psm0" > [ 27.205] (=3D=3D) Mouse: Protocol: "Auto" > [ 27.205] (**) Mouse: always reports core events > [ 27.288] (=3D=3D) Mouse: Emulate3Buttons, Emulate3Timeout: 50 > [ 27.288] (**) Mouse: ZAxisMapping: buttons 4 and 5 > [ 27.288] (**) Mouse: Buttons: 5 > [ 27.288] (**) Option "config_info" "devd:psm0" > [ 27.288] (II) XINPUT: Adding extended input device "Mouse" (type: > MOUSE, id 8) > [ 27.288] (**) Mouse: (accel) keeping acceleration scheme 1 > [ 27.288] (**) Mouse: (accel) acceleration profile 0 > [ 27.288] (**) Mouse: (accel) acceleration factor: 2.000 > [ 27.288] (**) Mouse: (accel) acceleration threshold: 4 > [ 27.361] (II) Mouse: SetupAuto: hw.iftype is 3, hw.model is 13 > [ 27.361] (II) Mouse: SetupAuto: protocol is PS/2 > [ 27.906] (II) Mouse: ps2EnableDataReporting: succeeded > > I also rebuild kernel with options PSM_DEBUG=3D1, so here is some > extended info from dmesg. Nothing criminal as well > > Sep 2 09:42:22 sphinx kernel: atkbdc0: <Keyboard controller (i8042)> > port 0x60,0x64 irq 1 on acpi0 > Sep 2 09:42:22 sphinx kernel: atkbd0: <AT Keyboard> irq 1 on atkbdc0 > Sep 2 09:42:22 sphinx kernel: kbd0 at atkbd0 > Sep 2 09:42:22 sphinx kernel: atkbd0: [GIANT-LOCKED] > Sep 2 09:42:22 sphinx kernel: psm0: current command byte:0065 > Sep 2 09:42:22 sphinx kernel: psm: status 00 02 64 > Sep 2 09:42:22 sphinx kernel: psm: status 00 00 64 > Sep 2 09:42:22 sphinx kernel: psm: status 00 03 64 > Sep 2 09:42:22 sphinx kernel: psm: status 00 03 64 > Sep 2 09:42:22 sphinx kernel: psm: data 08 00 00 > Sep 2 09:42:22 sphinx kernel: psm: status 02 47 18 > Sep 2 09:42:22 sphinx kernel: psm: status 01 e2 a1 > Sep 2 09:42:22 sphinx kernel: psm: status f0 02 23 > Sep 2 09:42:22 sphinx kernel: psm: status 00 80 3f > Sep 2 09:42:22 sphinx kernel: psm: status 84 03 00 > Sep 2 09:42:22 sphinx kernel: psm: status 12 e8 00 > Sep 2 09:42:22 sphinx kernel: psm: status b1 f1 93 > Sep 2 09:42:22 sphinx kernel: psm: status 27 fe 22 > Sep 2 09:42:22 sphinx kernel: psm: status 2c de 40 > Sep 2 09:42:22 sphinx kernel: psm: status 00 02 64 > Sep 2 09:42:22 sphinx kernel: psm0: <PS/2 Mouse> irq 12 on atkbdc0 > Sep 2 09:42:22 sphinx kernel: psm0: [GIANT-LOCKED] > Sep 2 09:42:22 sphinx kernel: psm0: model Synaptics Touchpad, device > ID 3-00, 4 buttons > Sep 2 09:42:22 sphinx kernel: psm0: config:00004000, flags:00000008, > packet size:6 > Sep 2 09:42:22 sphinx kernel: psm0: syncmask:c0, syncbits:00 > > abishai@sphinx:~ % xinput > =E2=8E=A1 Virtual core pointer id=3D2 [master= pointer=20 > (3)] > =E2=8E=9C =E2=86=B3 Virtual core XTEST pointer id=3D= 4 [slave > pointer (2)] > =E2=8E=9C =E2=86=B3 sysmouse id=3D= 7 [slave > pointer (2)] > =E2=8E=9C =E2=86=B3 Mouse id=3D= 8 [slave > pointer (2)] > =E2=8E=A3 Virtual core keyboard id=3D3 [master= keyboard > (2)] > =E2=86=B3 Virtual core XTEST keyboard id=3D5 [sl= ave > keyboard (3)] > =E2=86=B3 kbdmux id=3D6 [sl= ave > keyboard (3)] > > I still have the original issue: taps and button click are working 1 > time from 10, buttons can easily hang in pressed state. > Also, I noticed that when touchpad in this broken state, pointer moves > slower than normal. > > The only way to fix the problem is to run > xinput disable Mouse > xinput enable Mouse > > On the second command system hangs until it gets some input from > touchpad (clicking or touching). And nothing in the logs! > I see only this one when I disable/enable it > Sep 2 09:52:37 sphinx kernel: psm: status 00 03 64 > Sep 2 09:52:37 sphinx kernel: psm: status 2c de 40 > Sep 2 09:52:37 sphinx kernel: psm: status 20 01 14 > > This freeze worries me: system is completely disabled until it get > touchpad input and no component is unhappy enough to write something > in the logs. > > On 01/09/2016 21:14, Anthony Jenkins wrote: >> Sorry for late reply, and for top-posting (trying to stay consistent).= >> >> Pointing devices on FreeBSD are typically handled by a number of >> drivers, including: >> >> * ums(4) - A USB HID device which is a mouse class >> * psm(4) - A serial mouse/touchpad attached to PS/2 keyboard port >> >> moused(8) can detect these devices and create composite pseudodevice >> /dev/sysmouse which aggregates the events from the devices it manages.= >> The problem with psm(4) touchpad devices and moused(8) is that psm(4) >> can be in "Synaptics" mode which makes it incompatible with moused(8).= >> So if you boot with the hw.psm.synaptics_support=3D"1" tunable and >> moused(8) enabled, (unless this has changed recently) you get weird >> behavior from the touchpad and none of the gestures work. >> >> The devd(8) interface to x11-servers/xorg-server waits for devd(8) to >> notify the X server that a device has attached/detached. The >> notification includes a simple path under /dev (e.g. /dev/ums0, >> /dev/psm0 or /dev/sysmouse). The multi-mode behavior of psm(4) makes >> the current implementation of the devd interface awkward, because each= >> device path maps to a single driver (e.g. "/dev/ums*" -> "mouse", >> "/dev/psm*" -> "mouse", "/dev/sysmouse" -> "mouse", "/dev/vboxguest" -= > >> "vboxmouse", etc.) >> >> My implementation maps each new device notification to a function to >> determine which driver should be attached to each device node. For >> example, the function for "/dev/psm" checks for the presence of a sysc= tl >> that indicates what mode psm(4) is in. >> >> Even with the current implementation of xorg-server's devd stuff, all >> this should "just work" when using moused(8) and USB mice. It's >> multimode devices like psm(4) which confuse the current implementation= =2E >> >> Anthony >> >> On 08/30/2016 02:43 AM, abi wrote: >>> How can it be - all devices attached to one devd node? What if I want= >>> different drivers? synaptics for touchpad and generic mouse for USB ?= >>> Not in this particular case, but generally speaking. >>> >>> On 29/08/2016 19:19, Arto Pekkanen wrote: >>>> I never used the psm device directly with X.org, because >>>> /dev/sysmouse (which operated by moused) is the the standard, >>>> multiplexed interface for mice and touchpads. Every touchpand and >>>> mice attached will be handled by moused. >>>> >>>> Take out all moused -related stuff from your rc.conf, remove ALL you= r >>>> X.org input device configuration. Then try again. Ie. don't touch th= e >>>> vanilla settings. >>>> >>>> USB mice work out of the box without any configuration. Devd will >>>> notify X.org, which then configures the mice etc. >>>> >>>> abi kirjoitti 29.08.2016 16:34: >>>>> I'm not sure what is attached to /dev/sysmouse >>>>> >>>>> I suspect USB one, but I disabled sysmouse in xorg configuration fo= r >>>>> sure >>>>> >>>>> Section "InputClass" >>>>> Identifier "VanishBastardo" >>>>> MatchDevicePath "/dev/sysmouse" >>>>> Option "Ignore" "true" >>>>> EndSection >>>>> >>>>> and >>>>> >>>>> moused_enable=3D"NO" >>>>> moused_nondefault_enable=3D"NO" >>>>> >>>>> [ 17.061] (II) config/devd: adding input device (null) >>>>> (/dev/sysmouse) >>>>> [ 17.061] (**) sysmouse: Ignoring device from InputClass >>>>> "VanishBastardo" >>>>> >>>>> So, if both devices clashing for 1 node, no driver attached to it >>>>> anyway. Also, I tried CURRENT - it has the same problem. >>>>> >>>>> >>>>> >>>>> On 29/08/2016 15:16, Arto Pekkanen wrote: >>>>>> With a PS2 touchpad you could also try this: >>>>>> https://www.freebsd.org/doc/faq/x.html#idp64092272 >>>>>> >>>>>> abi kirjoitti 27.08.2016 03:51: >>>>>>> Hello, >>>>>>> >>>>>>> I have strange issue with Dell XPS 13 (Skylake) touchpad. It work= s >>>>>>> until xorg restart. After restart, buttons become unresponsive, t= he >>>>>>> most common is if button remains pressed somehow. >>>>>>> >>>>>>> I found simple workaround - toggle touchpad with xinput. >>>>>>> However, on >>>>>>> xinput enable system hangs - screen is not updated and it ignores= >>>>>>> keyboard input until I use touchpad. After that, system and >>>>>>> touchpad >>>>>>> becomes operational. Until restart. >>>>>>> >>>>>>> Synaptics driver has the same problem. >>>>>>> Touchpad in generic ps/2 mode (without hw.psm.synaptics_support=3D= 1) >>>>>>> works. >>>>>>> >>>>>>> I made a search and found this commit >>>>>>> http://svnweb.freebsd.org/base?view=3Drevision&revision=3D281440 = in >>>>>>> CURRENT release notes. However it's pretty old and should be >>>>>>> included >>>>>>> in 11. >>>>>>> >>>>>>> FreeBSD 11.0-RC1 >>>>>>> Xorg log >>>>>>> https://gist.github.com/abishai/844c3221d9388a5a6f8c65bd13ad2d88 >>>>>>> USB receiver is generic wireless mouse >>>>>>> Mouse is touchpad >>>>>>> No idea what is sysmouse. I have moused_enable=3D"NO" and >>>>>>> moused_nondefault_enable=3D"NO" in /etc/rc.conf >>>>>>> >>>>>>> I appreciate any help or suggestions :) >>>>>>> _______________________________________________ >>>>>>> freebsd-x11@freebsd.org mailing list >>>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-x11 >>>>>>> To unsubscribe, send any mail to >>>>>>> "freebsd-x11-unsubscribe@freebsd.org" >>> _______________________________________________ >>> freebsd-x11@freebsd.org mailing list >>> https://lists.freebsd.org/mailman/listinfo/freebsd-x11 >>> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org= " > --=20 Anthony Jenkins
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ace1550f-7d52-d697-1603-0dc5d754abb3>