Solved Synaptics driver not loading (Elantech touchpad)

sakhmatd

New Member


Messages: 6

Hello!

I have been desperately trying to get two-finger scrolling working on my fresh FreeBSD installation.

Synaptics did the job for me back on GNU/Linux, so I went straight for synaptics on FreeBSD, except it does not seem to load no matter what I do and all the documentation I find on it appears to be outdated.

I have hw.psm.synaptics_support="1" in my /boot/loader.conf, but when I try to list all the options for synaptics with sysctl -a | grep psm all I get is this:

Code:
device    psm
debug.psm.pkterrthresh: 2
debug.psm.usecs: 500000
debug.psm.secs: 0
debug.psm.errusecs: 0
debug.psm.errsecs: 2
debug.psm.hz: 20
debug.psm.loglevel: 0
hw.psm.tap_timeout: 125000
hw.psm.tap_threshold: 25
hw.psm.tap_enabled: -1
dev.psm.0.%parent: atkbdc0
dev.psm.0.%pnpinfo: 
dev.psm.0.%location: 
dev.psm.0.%driver: psm
dev.psm.0.%desc: PS/2 Mouse
dev.psm.%parent: 
dev.psmcpnp.0.%parent: acpi0
dev.psmcpnp.0.%pnpinfo: _HID=ETD0500 _UID=0
dev.psmcpnp.0.%location: handle=\_SB_.PCI0.LPCB.MSE0
dev.psmcpnp.0.%driver: psmcpnp
dev.psmcpnp.0.%desc: PS/2 mouse port
dev.psmcpnp.%parent:
I have MouseD enabled in /etc/rc.conf. I tried disabling it, but that resulted in my pointer going haywire.

Here is my pciconf -lv:
Code:
─➤  pciconf -lv
hostb0@pci0:0:0:0:    class=0x060000 card=0x06471025 chip=0x01548086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '3rd Gen Core processor DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:    class=0x030000 card=0x06471025 chip=0x01668086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '3rd Gen Core processor Graphics Controller'
    class      = display
    subclass   = VGA
xhci0@pci0:0:20:0:    class=0x0c0330 card=0x06471025 chip=0x1e318086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C210 Series Chipset Family USB xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none0@pci0:0:22:0:    class=0x078000 card=0x06471025 chip=0x1e3a8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family MEI Controller'
    class      = simple comms
ehci0@pci0:0:26:0:    class=0x0c0320 card=0x06471025 chip=0x1e2d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
hdac0@pci0:0:27:0:    class=0x040300 card=0x06471025 chip=0x1e208086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family High Definition Audio Controller'
    class      = multimedia
    subclass   = HDA
pcib1@pci0:0:28:0:    class=0x060400 card=0x06471025 chip=0x1e108086 rev=0xc4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family PCI Express Root Port 1'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:1:    class=0x060400 card=0x06471025 chip=0x1e128086 rev=0xc4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '7 Series/C210 Series Chipset Family PCI Express Root Port 2'
    class      = bridge
    subclass   = PCI-PCI
ehci1@pci0:0:29:0:    class=0x0c0320 card=0x06471025 chip=0x1e268086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
isab0@pci0:0:31:0:    class=0x060100 card=0x06471025 chip=0x1e578086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'HM77 Express Chipset LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
ahci0@pci0:0:31:2:    class=0x010601 card=0x06471025 chip=0x1e038086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series Chipset Family 6-port SATA Controller [AHCI mode]'
    class      = mass storage
    subclass   = SATA
none1@pci0:0:31:3:    class=0x0c0500 card=0x06471025 chip=0x1e228086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C216 Chipset Family SMBus Controller'
    class      = serial bus
    subclass   = SMBus
bge0@pci0:2:0:0:    class=0x020000 card=0x06471025 chip=0x16b514e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Limited'
    device     = 'NetLink BCM57785 Gigabit Ethernet PCIe'
    class      = network
    subclass   = ethernet
sdhci_pci0@pci0:2:0:1:    class=0x080501 card=0x06471025 chip=0x16bc14e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Limited'
    device     = 'BCM57765/57785 SDXC/MMC Card Reader'
    class      = base peripheral
    subclass   = SD host controller
none2@pci0:2:0:2:    class=0x088000 card=0x06471025 chip=0x16be14e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Limited'
    device     = 'BCM57765/57785 MS Card Reader'
    class      = base peripheral
none3@pci0:2:0:3:    class=0x088000 card=0x06471025 chip=0x16bf14e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Limited'
    device     = 'BCM57765/57785 xD-Picture Card Reader'
    class      = base peripheral
ath0@pci0:3:0:0:    class=0x028000 card=0x303f103c chip=0x002b168c rev=0x01 hdr=0x00
    vendor     = 'Qualcomm Atheros'
    device     = 'AR9285 Wireless Network Adapter (PCI-Express)'
    class      = network
Uname is:
Code:
FreeBSD 11.0-RELEASE-p2 FreeBSD 11.0-RELEASE-p2 #0: Mon Oct 24 06:55:27 UTC 2016     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
Not sure what else to provide.

Cheers.
 

aragats

Daemon

Reaction score: 603
Messages: 1,501

In this thread I posted my settings which work fine.
I wasn't able to make both right edge and two-scrolling working simultaneously though.
 
OP
sakhmatd

sakhmatd

New Member


Messages: 6

aragats,

Thank you for replying!

However, your configuration lists synaptic tunables in /etc/sysctl.conf and I get unknown oid errors trying to set those.
It's like there synaptics doesn't exist on the machine even though it's installed.

I tried both the port and the binary package. Oh, and here is a snipped I used to use on my GNU/Linux machine. Didn't make a change.

70-synaptics.conf:
Code:
Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertTwoFingerScroll" "on"
        Option "CoastingSpeed" "0"
EndSection
 

aragats

Daemon

Reaction score: 603
Messages: 1,501

I get unknown oid errors trying to set those
What oid errors do you see?
Do you have in /boot/loader.conf:
Code:
hw.psm.synaptics_support="1"
In FreeBSD you should not use synaptics in xorg, at least it never worked for me.
 
OP
sakhmatd

sakhmatd

New Member


Messages: 6

I have
hw.psm.synaptics_support="1"
enabled, as mentioned in my original post.

I get oid errors on absolutely anything in regards to synaptics.
 

aragats

Daemon

Reaction score: 603
Messages: 1,501

That is really strange, I'm using that configuration for 1.5 year.
Maybe your hardware is completely different? I'm on ThinkPad T430.
In this thread there is a reasonable question: "...if you have a Synaptics or Elantech or ALPS touchpad" and the corresponding discussion.
 
OP
sakhmatd

sakhmatd

New Member


Messages: 6

The hardware might be totally different, I am on an Acer Aspire V3-571.
I used Synaptics without a problem on my previous GNU/Linux installation, so I don't think it's ALPS.

But the thread you linked did give me some insight, looks like my touchpad gets recognized as a generic PS/2 mouse and uses the X11 "mouse" driver even though it used synaptics in GNU/Linux. OpenBSD recognized it as synaptics also.

/dev/psm0 does get created, but Xorg uses /dev/sysmouse instead.

I tried tricking X into using /dev/psm0 with a xorg.conf.d file, but without results, X just completely ignores my added InputClass and proceeds to loading the generic "mouse" driver.

EDIT:
I got it to attempt loading synaptics, but it gave me
Code:
Mouse0 Found no Synaptics, found Mouse model 0 instead
Looks like people from https://forums.freebsd.org/threads/50318/ are having the same exact issue.
Going to see if there isn't a way I can do scrolling with moused.
 
OP
sakhmatd

sakhmatd

New Member


Messages: 6

I solved the issue. Turns out I have an Elantech touchpad.

Support for it was added fully in -STABLE, so I switched over and added
Code:
hw.psm.synaptics_support="1"
to my /boot/loader.conf

Manually patching -RELEASE didn't go quite as well, sometimes psm wouldn't pick up Elantech, so -STABLE is recommended, unless support for Elantech reaches -RELEASE.

Two-finger scrolling support is somewhat poor and very noisy, so I switched to edge scrolling. The following works very well, leave the defaults for everything else:
Code:
hw.psm.elantech.min_pressure=22
hw.psm.elantech.two_finger_scroll=0
hw.psm.elantech.vscroll_ver_area=-600
If somebody can figure out good settings for two-finger scrolling, please tell me.

Cheers!
 
Last edited:

flod

New Member

Reaction score: 2
Messages: 1

I realize this thread is six months old, but if the OP still hasn't figured it out, and for anyone who may get here looking for a solution, /boot/loader.conf should contain the following for elantech touchpads:
Code:
hw.psm.elantech_support="1"
This will enable two-finger scroll, tap to click, etc.
Also be sure that x11/libsynaptics and x11-drivers/xf86-input-synaptics are both installed
 
Last edited:

diego

Member

Reaction score: 16
Messages: 53

Hi all,
This is an update three years later ... :)
I have had problems trying to configure the touchpad, because I thought it was a Synaptic Touchpad, until I found this post ;)

laptop specs
Code:
root@freebsd:~ # inxi -Fx
System:    Host: freebsd Kernel: FreeBSD 12.1-RELEASE-p6 amd64 bits: 64 compiler: clang v: 8.0.1 Console: tty 1
           OS: FreeBSD 12.1-RELEASE-p6
Machine:   Type: Notebook System: TOSHIBA product: SATELLITE L50-C v: PSKXEE-01200NEN serial: 9F157840C
           Mobo: FF50 model: 06F5 serial: QC030RBF3700988 BIOS: INSYDE v: 5.10 rev: 5.10 date: 07/30/2015
Battery:   ID-1: BAT0 charge: N/A condition: N/A/0.0 Wh model: Intel SR 1 SR Real Battery status: N/A
CPU:       Topology: Quad Core model: Intel Pentium N3700 bits: 64 type: MCP arch: N/A L2 cache: N/A
           features: lm nx pae sse sse2 sse3 ssse3 vmx
           Speed: 1600 MHz min/max: 480/1601 MHz Core speeds (MHz): No speed data found for 4 cores.
Graphics:  Device-1: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics driver: vgapci
           bus ID: 0:0:2.0
           Display: server: X.Org 1.20.8 driver: intel resolution: 1366x768~60Hz
           Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:     Device-1: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series High Definition Audio driver: hdac
           bus ID: 0:0:27.0
Network:   Device-1: Intel Wireless 3160 driver: iwm bus ID: 0:1:0.0
           Device-2: Realtek RTL810xE PCI Express Fast Ethernet driver: re port: N/A bus ID: 0:2:0.0
           IF: re0 state: active speed: 100baseTX duplex: full-duplex mac: 2c:60:0c:de:d4:40
Drives:    Local Storage: total: 454.85 GiB used: 37.50 GiB (8.2%)
           ID-1: /dev/ada0 vendor: Samsung model: SSD 860 EVO 500GB RVT04B6Q size: 454.85 GiB
Partition: ID-1: / size: 447.49 GiB used: 37.50 GiB (8.4%) fs: ufs dev: /dev/ada0p2
Swap:      ID-1: swap-1 type: partition size: 3.76 GiB used: 0 KiB (0.0%) dev: /dev/ada0p3
Info:      Processes: 101 Uptime: 10m Memory: 7.88 GiB used: 2.45 GiB (31.0%) Init: init (BSD) Compilers: gcc: N/A
           clang: 8.0.1 Shell: csh v: 6.20.00 inxi: 3.1.03
Solution
Code:
1) pkg install libsynaptics xf86-input-synaptics
2) Add this line in /boot/loader.conf

    hw.psm.elantech_support="1"
3) reboot
Thanks a lot,
Diego
 
Top