Touchpad not recognized; "Generic PS/2 Mouse" instead

Hello!
I've got a problem with my installation on a laptop.
Laptop model is Asus u32vj.
It has a Synaptics (or I think so) touchpad, that works flawlessly in other OSes, but not in FreeBSD.
I've installed driver for Synaptics from ports, but:

Code:
Couldn't find Synaptics properties. No Synaptics driver loaded?
dmesg & xorg.log suggest that something is wrong:
Code:
neko@smallap : ~
[1] % grep EE /var/log/Xorg.0.log
   (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1229.096] Initializing built-in extension MIT-SCREEN-SAVER
[  1229.390] (EE) synaptics: Mouse0: Mouse0 Found no Synaptics, found Mouse model 0 instead
[  1229.390] (EE) synaptics: Mouse0: Unable to query/initialize Synaptics hardware.
[  1229.429] (EE) PreInit returned 11 for "Mouse0"

neko@smallap : ~
[0] % dmesg|grep psm0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
What useful could be done with this?
Thanks,
Mike.
 
Almost identical problem to OP on an ASUS R501VZ / N56VZ which I believe has an ElanTech touchpad.

The touchpad works with multi-touch gestures on Arch Linux using ALPS Glidepoint driver and the Xorg Synaptics driver.

This is making Freebsd FreeBSD problematic to use on my laptop, almost impossible to type without brushing the touchpad, and of course no scroll support.

Enabled debug logging in /boot/loader.conf:
Code:
debug.psm.loglevel="2"

Code:
$ dmesg |grep psm0
psm0: current command byte:0065
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
psm0: config:00000000, flags:00000008, packet size:3
psm0: syncmask:c0, syncbits:00

Obviously the psm(4) driver is not recognizing the touchpad as anything but a basic PS/2 mouse. Is there any way to force 'synaptics' model in the driver?
 
The touchpad works with multi-touch gestures on Arch Linux using ALPS Glidepoint driver and the Xorg Synaptics driver.

This is making Freebsd FreeBSD problematic to use on my laptop, almost impossible to type without brushing the touchpad, and of course no scroll support.

Obviously the psm(4) driver is not recognizing the touchpad as anything but a basic PS/2 mouse. Is there any way to force 'synaptics' model in the driver?

I had a similar problem with an ACER 4730z. I never did get it to use the synaptics driver under FreeBSD. However, I did find that while using it as a PS/2 mouse, I could eliminate the "tap to click" response that occurs when brushing the touchpad, by adding the following line to /etc/rc.conf.
Code:
moused_flags="-m 11=4"
I have no answer for scroll support.
 
I recalled this wiki which is very dated.
How to use it
You must add the following line in /boot/loader.conf to enable the psm(4) Synaptics support.
hw.psm.synaptics_support="1"
And in Thread 19707:
Hello community

I've fixed the problem now, to install PCBSD wasn't necessary. The problem was, that synaptics wasn't identified correct and it was recognized as something different, so it disabled psm0. The config files were correct, with adding this lines in the /boot/device.hints file it works:

Code:
hint.psm.0.flags="0x1000"

Lastly, some may consider it hubris, but Touchpad support is pretty good in OpenBSD. They tend to work out of the box and are easy to configure with synclient (does not appear to be a manual page entry in FreeBSD but here is OpenBSD's synclient manual).
 
which I believe has an ElanTech touchpad.
I believe that mine is Elantech as well, cause similiar model reports having this, too.
I could eliminate the "tap to click" response that occurs when brushing the touchpad, by adding the following line to /etc/rc.conf.
Thank you very much! Checking this right now.

Update:
Oh man, thank you so much.
How do I find out the -m options? The moused(8) man page says that
Assign the physical button M to the logical button N.
Are there some standard numerical codes that resemble the "physical/logical" buttons or what?

almost impossible to type without brushing the touchpad
Yes, same thing is a main problem for me. I've resolved it temporarily by using a hotkey w/ xinput disable 8/ xinput enable 8 script. Obviously, get your touchpad ID from xinput output.
This is a pain, but still better than nothing.
Lastly, some may consider it hubris, but Touchpad support is pretty good in OpenBSD.
Actually, I think that both NetBSD and OpenBSD have support for Elantech touchpads right now, according to the google.
 
Last edited by a moderator:
For future travellers adding the following to device.hints did not help with ASUS/Elantech synaptics detection:

Code:
hint.psm.0.flags="0x1000"

So it looks like digging into the OpenBSD/NetBSD driver to see how they support Elantech touchpads is required.
 
After looking at the code, its clear OpenBSD/NetBSD have a much nicer console infrastructure with wscons.

UPDATE: I've started porting the OpenBSD Elantech support in its pms driver to the FreeBSD psm driver, (hence my comment above). My time is limited but I'm making steady progress. I have also identified the additions required to xf86-input-synaptics for the psmcomm.c backend so that the Elantech support can work in X on FreeBSD. Again this is handled much more cleanly in OpenBSD and Linux so mapping different mouse protocols into synaptics for FreeBSD is nowhere near as straight forward. The whole keyboard/mouse infrastructure needs a rethink IMO.

I'll report back here when I have something working.
 
UPDATE: I've started porting the OpenBSD Elantech support in its pms driver to the FreeBSD psm driver, (hence my comment above). My time is limited but I'm making steady progress. I have also identified the additions required to xf86-input-synaptics for the psmcomm.c backend so that the Elantech support can work in X on FreeBSD. Again this is handled much more cleanly in OpenBSD and Linux so mapping different mouse protocols into synaptics for FreeBSD is nowhere near as straight forward. The whole keyboard/mouse infrastructure needs a rethink IMO.

I'll report back here when I have something working.
Hi Andrew,
Just wondering how you have progressed with porting the OpenBSD Elantech drivers to FreeBSD. Still progressing?
Thanks,
Ben
 
Sorry to respawn the old thread, but I'm former stick (sic!) user of IBM T-series. I bought a new laptop with touchpad, so can you describe a little what wrong with touchpad with generic mouse driver? Actually, I don't investigate what driver it is using, but I when I move finger, cursor moves, when I click button, it clicks. Isn't it what one can expect from generic mouse? Or touchpads have some other functions as well ?

PS. I'm thinking to disable it, it so stupid - when I type I can touch it and move cursor, however I'm just curious. I should buy laptop with the stick :(
 
Sorry to respawn the old thread, but I'm former stick (sic!) user of IBM T-series. I bought a new laptop with touchpad, so can you describe a little what wrong with touchpad with generic mouse driver? Actually, I don't investigate what driver it is using, but I when I move finger, cursor moves, when I click button, it clicks. Isn't it what one can expect from generic mouse? Or touchpads have some other functions as well ?

PS. I'm thinking to disable it, it so stupid - when I type I can touch it and move cursor, however I'm just curious. I should buy laptop with the stick :(

A fully featured touchpad provides additional options such as vertical and horizontal scrolling. As far as cursor jumping when using the keyboard, there are two options:
1) In OpenBSD syndaemon monitors keyboard activity and disables the touchpad during keyboard use.
2) Most laptops have a Fn key to disable the touchpad. Via keymapping, this feature can be implemented.
 
I see, worth a try then. I installed OpenBSD first, however it doesn't support Skylake yet, maybe the same can be implemented with FreeBSD.
 
In this thread srobert disabled tap-to-click with

had a similar problem with an ACER 4730z. I never did get it to use the synaptics driver under FreeBSD. However, I did find that while using it as a PS/2 mouse, I could eliminate the "tap to click" response that occurs when brushing the touchpad, by adding the following line to /etc/rc.conf.
Code:
moused_flags="-m 11=4"

There were some inteldrm updates in OpenBSD 6.0 - due to be released in just over two weeks. There is also this.
 
Ok, now I'm fighting with touchpad. How you use synaptic driver at all ? xorg's autodetection is not loading synaptic driver.
74.002] (II) Using input driver 'mouse' for 'sysmouse'
[ 74.002] (**) sysmouse: always reports core events
[ 74.002] (**) Option "Device" "/dev/sysmouse"
[ 74.002] (==) sysmouse: Protocol: "Auto"
[ 74.002] (**) sysmouse: always reports core events
[ 74.003] (==) sysmouse: Emulate3Buttons, Emulate3Timeout: 50
[ 74.003] (**) sysmouse: ZAxisMapping: buttons 4 and 5
[ 74.003] (**) sysmouse: Buttons: 5
[ 74.003] (**) Option "config_info" "devd:sysmouse"
[ 74.003] (II) XINPUT: Adding extended input device "sysmouse" (type: MOUSE, id 7)
[ 74.003] (**) sysmouse: (accel) keeping acceleration scheme 1
[ 74.003] (**) sysmouse: (accel) acceleration profile 0
[ 74.003] (**) sysmouse: (accel) acceleration factor: 2.000
[ 74.003] (**) sysmouse: (accel) acceleration threshold: 4
[ 74.003] (II) sysmouse: SetupAuto: hw.iftype is 4, hw.model is 0
[ 74.003] (II) sysmouse: SetupAuto: protocol is SysMouse
[ 74.003] (II) config/devd: device /dev/ums0 already opened
[ 74.088] (II) config/devd: adding input device Mouse (/dev/psm0)
[ 74.088] (II) Using input driver 'mouse' for 'Mouse'
[ 74.088] (**) Mouse: always reports core events
[ 74.088] (**) Option "Device" "/dev/psm0"
[ 74.088] (==) Mouse: Protocol: "Auto"
[ 74.088] (**) Mouse: always reports core events
[ 74.170] (==) Mouse: Emulate3Buttons, Emulate3Timeout: 50
[ 74.170] (**) Mouse: ZAxisMapping: buttons 4 and 5
[ 74.170] (**) Mouse: Buttons: 5
[ 74.170] (**) Option "config_info" "devd:psm0"
[ 74.170] (II) XINPUT: Adding extended input device "Mouse" (type: MOUSE, id 8)
[ 74.170] (**) Mouse: (accel) keeping acceleration scheme 1
[ 74.171] (**) Mouse: (accel) acceleration profile 0
[ 74.171] (**) Mouse: (accel) acceleration factor: 2.000
[ 74.171] (**) Mouse: (accel) acceleration threshold: 4
[ 74.243] (II) Mouse: SetupAuto: hw.iftype is 3, hw.model is 13
[ 74.243] (II) Mouse: SetupAuto: protocol is PS/2
[ 74.786] (II) Mouse: ps2EnableDataReporting: succeeded

Code:
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Synaptics Touchpad, device ID 3
psm0 is touchpad, ums0 is usb mouse
Code:
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus0
ums0: 16 buttons and [XYZT] coordinates ID=2
Not sure what is /dev/sysmouse - moused is not enabled.
 
Disabling AutoAddDevices is not an option. After I read xorg man, I found InputClass section. So, it is possible to keep AutoAddDevices and just hint xorg what driver to use:
Code:
Section "InputClass"
   Identifier   "Touchpad0"
   MatchDevicePath   "/dev/psm0"
   Driver   "synaptics"
   Option   "Protocol"   "psm"
   Option   "SendCoreEvent"   "on"
   Option   "VertTwoFingerScroll"   "1"
   Option   "EmulateTwoFingerMinZ"   "7"
   Option   "EmulateTwoFingerMinW"   "7"
   Option   "VertScrollDelta"   "-111"
   Option   "TapButton2"   "0"
EndSection

Looks like it works:
Code:
[  2050.092] (**) Mouse: Applying InputClass "Touchpad0"
[  2050.092] (II) LoadModule: "synaptics"
[  2050.092] (II) Loading /usr/local/lib/xorg/modules/input/synaptics_drv.so
[  2050.092] (II) Module synaptics: vendor="X.Org Foundation"
[  2050.092]  compiled for 1.17.4, module version = 1.8.2
[  2050.092]  Module class: X.Org XInput Driver
[  2050.092]  ABI class: X.Org XInput driver, version 21.0
[  2050.092] (II) Using input driver 'synaptics' for 'Mouse'
[  2050.092] (**) Mouse: always reports core events
[  2050.092] (**) Option "Protocol" "psm"
[  2050.092] (**) Option "Device" "/dev/psm0"
[  2050.142] (--) synaptics: Mouse: invalid x-axis range.  defaulting to 1615 - 5685
[  2050.142] (--) synaptics: Mouse: invalid y-axis range.  defaulting to 1729 - 4171
[  2050.142] (--) synaptics: Mouse: invalid pressure range.  defaulting to 0 - 255
[  2050.142] (--) synaptics: Mouse: invalid finger width range.  defaulting to 0 - 15
[  2050.142] (**) Option "EmulateTwoFingerMinZ" "7"
[  2050.142] (**) Option "EmulateTwoFingerMinW" "7"
[  2050.142] (**) Option "VertScrollDelta" "-111"
[  2050.142] (**) Option "VertTwoFingerScroll" "1"
[  2050.142] (**) Option "TapButton2" "0"
[  2050.169] (--) synaptics: Mouse: synaptics touchpad found
[  2050.169] (--) synaptics: Mouse:  Synaptics Touchpad, model: 0
[  2050.169] (--) synaptics: Mouse:  Firmware: 8.2
[  2050.169] (--) synaptics: Mouse:  Sensor: 1
[  2050.169] (--) synaptics: Mouse:  new absolute packet format
[  2050.169] (--) synaptics: Mouse:  Touchpad has extended capability bits
[  2050.169] (--) synaptics: Mouse:  -> multifinger detection
[  2050.169] (--) synaptics: Mouse:  -> palm detection
[  2050.169] (**) Mouse: always reports core events
[  2050.204] (**) Option "config_info" "devd:psm0"
[  2050.204] (II) XINPUT: Adding extended input device "Mouse" (type: TOUCHPAD, id 8)
[  2050.204] (**) synaptics: Mouse: (accel) MinSpeed is now constant deceleration 2.5
[  2050.204] (**) synaptics: Mouse: (accel) MaxSpeed is now 1.75
[  2050.204] (**) synaptics: Mouse: (accel) AccelFactor is now 0.042
[  2050.204] (**) Mouse: (accel) keeping acceleration scheme 1
[  2050.204] (**) Mouse: (accel) acceleration profile 1
[  2050.204] (**) Mouse: (accel) acceleration factor: 2.000
[  2050.204] (**) Mouse: (accel) acceleration threshold: 4
[  2050.278] (--) synaptics: Mouse: synaptics touchpad found
[  2050.278] (--) synaptics: Mouse:  Synaptics Touchpad, model: 0
[  2050.278] (--) synaptics: Mouse:  Firmware: 8.2
[  2050.278] (--) synaptics: Mouse:  Sensor: 1
[  2050.278] (--) synaptics: Mouse:  new absolute packet format
[  2050.278] (--) synaptics: Mouse:  Touchpad has extended capability bits
[  2050.278] (--) synaptics: Mouse:  -> multifinger detection
[  2050.278] (--) synaptics: Mouse:  -> palm detection
Not sure why driver listed twice.
 
Looks like I opened Pandora's box with that touchpad.
This code works,
Code:
Section "InputClass"
  Identifier  "Touchpad0"
  Driver  "synaptics"
  MatchDevicePath "/dev/psm0"
  Option  "Protocol"  "psm"
  Option  "SendCoreEvent" "on"
  Option  "VertTwoFingerScroll"  "1"
  Option  "EmulateTwoFingerMinZ"  "7"
  Option  "EmulateTwoFingerMinW"  "7"
  Option  "VertScrollDelta"  "-111"
  Option  "TapButton2"  "0"
EndSection
but until reboot. (Reboot, not xOrg restart). After reboot, touchpad completely broken. Every touch spawns
Code:
[  147.812] (--) synaptics: Mouse: synaptics touchpad found
[  147.812] (--) synaptics: Mouse:  Synaptics Touchpad, model: 0
[  147.812] (--) synaptics: Mouse:  Firmware: 8.2
[  147.812] (--) synaptics: Mouse:  Sensor: 1
[  147.812] (--) synaptics: Mouse:  new absolute packet format
[  147.812] (--) synaptics: Mouse:  Touchpad has extended capability bits
[  147.812] (--) synaptics: Mouse:  -> multifinger detection
[  147.812] (--) synaptics: Mouse:  -> palm detection
block and pointer moves at random and clicks random buttons. I see no special errors in the logs.
To fix the issue I must turn off synaptic driver in xorg conf, restart xorg to allow generic driver attach to it. After than I can put synaptic driver back and enjoy touchpad until reboot.

Power off is not fixing the issue. touchpad works until reboot only if generic driver was attached on previous run.

So, to get touchpad working:
1. Disable synaptic
2. Restart xorg
3. Enable synaptic
4. Restart xorg

5. Restart xorg
6. touchpad still here
7. Reboot/Power off
8. Touchpad broken, proceed to 1.
9. Power off
10. Still broken, proceed to 1.
 
Back
Top