Problem with touchpad

Anthony Jenkins Scoobi_doo at yahoo.com
Thu Sep 1 18:14:59 UTC 2016


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="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 sysctl
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.

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 your
>> X.org input device configuration. Then try again. Ie. don't touch the
>> 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 for
>>> sure
>>>
>>> Section "InputClass"
>>>     Identifier "VanishBastardo"
>>>     MatchDevicePath "/dev/sysmouse"
>>>     Option "Ignore" "true"
>>> EndSection
>>>
>>> and
>>>
>>> moused_enable="NO"
>>> moused_nondefault_enable="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 works
>>>>> until xorg restart. After restart, buttons become unresponsive, the
>>>>> 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=1)
>>>>> works.
>>>>>
>>>>> I made a search and found this commit
>>>>> http://svnweb.freebsd.org/base?view=revision&revision=281440 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="NO" and
>>>>> moused_nondefault_enable="NO" in /etc/rc.conf
>>>>>
>>>>> I appreciate any help or suggestions :)
>>>>> _______________________________________________
>>>>> freebsd-x11 at freebsd.org mailing list
>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-x11
>>>>> To unsubscribe, send any mail to
>>>>> "freebsd-x11-unsubscribe at freebsd.org"
>>>>
>>
>
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org"

-- 
Anthony Jenkins




More information about the freebsd-x11 mailing list