Hello,
I have an Elantech Touchpad and it doesn't work at all on FreeBSD.
First of all, I did read https://forums.freebsd.org/threads/mouse-keyboard-in-x-read-before-you-ask-questions.4614/ but it seems quite outdated: I don't see the hald service anywhere and I don't plan to use gnome.
Here's my /boot/loader.conf:
/usr/local/etc/X11/xorg.conf.d/mouse.conf:
(as you see, I tried different drivers).
/etc/rc.conf:
Here's output of
and the output of
Also, I can't see any error in the /var/logXorg.0.log file:
I don't have any other files in /usr/local/etx/X11/xorg.conf.d except one with
for a graphics card.
Any help appreciated.
EDIT: Here's some links of things that I tried:
I have an Elantech Touchpad and it doesn't work at all on FreeBSD.
First of all, I did read https://forums.freebsd.org/threads/mouse-keyboard-in-x-read-before-you-ask-questions.4614/ but it seems quite outdated: I don't see the hald service anywhere and I don't plan to use gnome.
Here's my /boot/loader.conf:
Code:
kern.geom.label.disk_ident.enable="1"
geom_label_load="YES"
kern.geom.label.gptid.enable="0"
cryptodev_load="YES"
zfs_load="YES"
linux64_load="YES"
nvidia_load="YES"
hw.usb.usbhid.enable="1"
hw.psm.elantech_support="1"
hw.psm.synaptics_support="
/usr/local/etc/X11/xorg.conf.d/mouse.conf:
Code:
#Section "InputDevice"
# Identifier "Mouse0"
# Driver "mouse"
# Option "Protocol" "auto"
# Option "Device" "/dev/sysmouse"
#EndSection
Section "InputDevice"
Identifier "Touchpad0"
Driver "evedv"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
Driver "libinput"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "DisableWhileTyping" "off"
Option "Tapping" "on"
#Option "Device" "/dev/input/event"
#
#Identifier "libinput pointer catchall"
#Driver "libinput"
#MatchDevicePath "/dev/input/event*"
#
#Identifier "Mouse0"
#Driver "mouse"
#Option "Protocol" "auto"
#Option "Device" "/dev/sysmouse"
#Option "TapButton2" "2"
#Option "TapButton3" "3"
EndSection
/etc/rc.conf:
Code:
hostname="hyperbook"
keymap="pl.kbd"
ifconfig_ue0="DHCP"
ifconfig_ue0_ipv6="inet6 accept_rtadv"
sshd_enable="YES"
ntpdate_enable="YES"
ntpd_enable="YES"
powerd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
zerotier_enable="YES"
syncthing_enable="YES"
#hald_enable="YES"
#dbus_enable="YES"
kld_list="usbhid"
Here's output of
xinput --list
:
Code:
❯ cat xinput--list.txt
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ System mouse id=6 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ System keyboard multiplexer id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ AT keyboard id=10 [slave keyboard (3)]
xinput list-props 11
as apparently dev id 11 is assigned to the touchpad:
Code:
Device 'ETPS/2 Elantech Touchpad':
Device Enabled (115): 1
Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (274): 1
libinput Tapping Enabled Default (275): 0
libinput Tapping Drag Enabled (276): 1
libinput Tapping Drag Enabled Default (277): 1
libinput Tapping Drag Lock Enabled (278): 0
libinput Tapping Drag Lock Enabled Default (279): 0
libinput Tapping Button Mapping Enabled (280): 1, 0
libinput Tapping Button Mapping Default (281): 1, 0
libinput Natural Scrolling Enabled (238): 0
libinput Natural Scrolling Enabled Default (239): 0
libinput Disable While Typing Enabled (282): 0
libinput Disable While Typing Enabled Default (283): 1
libinput Scroll Methods Available (240): 1, 1, 0
libinput Scroll Method Enabled (241): 1, 0, 0
libinput Scroll Method Enabled Default (242): 1, 0, 0
libinput Click Methods Available (284): 1, 1
libinput Click Method Enabled (285): 1, 0
libinput Click Method Enabled Default (286): 1, 0
libinput Middle Emulation Enabled (247): 0
libinput Middle Emulation Enabled Default (248): 0
libinput Accel Speed (249): 0.000000
libinput Accel Speed Default (250): 0.000000
libinput Accel Profiles Available (251): 1, 1
libinput Accel Profile Enabled (252): 1, 0
libinput Accel Profile Enabled Default (253): 1, 0
libinput Left Handed Enabled (254): 0
libinput Left Handed Enabled Default (255): 0
libinput Send Events Modes Available (256): 1, 1
libinput Send Events Mode Enabled (257): 0, 0
libinput Send Events Mode Enabled Default (258): 0, 0
Device Node (259): "/dev/input/event6"
Device Product ID (260): 2, 14
libinput Drag Lock Buttons (261): <no items>
libinput Horizontal Scroll Enabled (262): 1
libinput Scrolling Pixel Distance (263): 15
libinput Scrolling Pixel Distance Default (264): 15
Also, I can't see any error in the /var/logXorg.0.log file:
Code:
[ 221.793]
X.Org X Server 1.20.14
X Protocol Version 11, Revision 0
[ 221.793] Build Operating System: FreeBSD 13.1-RELEASE-p2 amd64
[ 221.793] Current Operating System: FreeBSD hyperbook 13.1-RELEASE FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC amd64
[ 221.793] Build Date: 04 September 2022 10:47:59AM
[ 221.793]
[ 221.793] Current version of pixman: 0.40.0
[ 221.793] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 221.793] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 221.793] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Sep 20 07:46:22 2022
[ 221.797] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[ 221.797] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[ 221.799] (==) No Layout section. Using the first Screen section.
[ 221.799] (==) No screen section available. Using defaults.
[ 221.799] (**) |-->Screen "Default Screen Section" (0)
[ 221.799] (**) | |-->Monitor "<default monitor>"
[ 221.800] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 221.800] (**) | |-->Device "Card0"
[ 221.800] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 221.800] (==) Automatically adding devices
[ 221.800] (==) Automatically enabling devices
[ 221.800] (==) Not automatically adding GPU devices
[ 221.803] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 221.816] (==) FontPath set to:
/usr/local/share/fonts/misc/,
/usr/local/share/fonts/TTF/,
/usr/local/share/fonts/OTF/,
/usr/local/share/fonts/Type1/,
/usr/local/share/fonts/100dpi/,
/usr/local/share/fonts/75dpi/,
catalogue:/usr/local/etc/X11/fontpath.d
[ 221.816] (==) ModulePath set to "/usr/local/lib/xorg/modules"
[ 221.816] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 221.816] (II) Loader magic: 0x433270
[ 221.816] (II) Module ABI versions:
[ 221.816] X.Org ANSI C Emulation: 0.4
[ 221.816] X.Org Video Driver: 24.1
[ 221.816] X.Org XInput driver : 24.1
[ 221.816] X.Org Server Extension : 10.0
[ 221.816] (--) PCI:*(4@0:0:0) 1002:1636:1558:a500 rev 194, Mem @ 0xfce0000000/268435456, 0xfcf0000000/2097152, 0xd0400000/524288, I/O @ 0x00001000/256, BIOS @ 0x????????/65536
[ 221.816] (II) LoadModule: "glx"
[ 221.820] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[ 221.849] (II) Module glx: vendor="X.Org Foundation"
[ 221.849] compiled for 1.20.14, module version = 1.0.0
[ 221.849] ABI class: X.Org Server Extension, version 10.0
[ 221.849] (II) LoadModule: "scfb"
[ 221.850] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[ 221.850] (II) Module scfb: vendor="X.Org Foundation"
[ 221.850] compiled for 1.20.14, module version = 0.0.5
[ 221.851] ABI class: X.Org Video Driver, version 24.1
[ 221.851] (II) scfb: driver for wsdisplay framebuffer: scfb
[ 221.851] (--) Using syscons driver with X support (version 2.0)
[ 221.851] (--) using VT number 9
[ 221.851] (WW) Falling back to old probe method for scfb
[ 221.851] scfb trace: probe start
[ 221.851] (II) scfb(0): using default device
[ 221.851] scfb trace: probe done
[ 221.851] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 221.851] scfb: PreInit 0
[ 221.851] (II) scfb(0): Using: depth (32), width (1920), height (1080)
[ 221.851] (II) scfb(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[ 221.851] (==) scfb(0): Depth 24, (==) framebuffer bpp 32
[ 221.851] (==) scfb(0): RGB weight 888
[ 221.852] (==) scfb(0): Default visual is TrueColor
[ 221.852] (==) scfb(0): Using gamma correction (1.0, 1.0, 1.0)
[ 221.852] (II) scfb(0): Vidmem: 8100k
[ 221.852] (==) scfb(0): DPI set to (96, 96)
[ 221.852] (**) scfb(0): Using "Shadow Framebuffer"
[ 221.852] (II) Loading sub module "shadow"
[ 221.852] (II) LoadModule: "shadow"
[ 221.852] (II) Loading /usr/local/lib/xorg/modules/libshadow.so
[ 221.853] (II) Module shadow: vendor="X.Org Foundation"
[ 221.853] compiled for 1.20.14, module version = 1.1.0
[ 221.853] ABI class: X.Org ANSI C Emulation, version 0.4
[ 221.853] (II) Loading sub module "fb"
[ 221.853] (II) LoadModule: "fb"
[ 221.853] (II) Loading /usr/local/lib/xorg/modules/libfb.so
[ 221.856] (II) Module fb: vendor="X.Org Foundation"
[ 221.856] compiled for 1.20.14, module version = 1.0.0
[ 221.856] ABI class: X.Org ANSI C Emulation, version 0.4
[ 221.856] scfb: PreInit done
[ 221.856] scfb: ScfbScreenInit 0
[ 221.856] bitsPerPixel=32, depth=24, defaultVisual=TrueColor
mask: ff0000,ff00,ff, offset: 16,8,0
[ 221.857] mmap returns: addr 0x801c00000 len 0x7e9000, fd 11, off 0
[ 221.857] scfb: ScfbSave 0
[ 221.857] scfb: ScfbSave done
[ 221.870] (==) scfb(0): Backing store enabled
[ 221.870] scfb: ScfbScreenInit done
[ 221.870] (II) Initializing extension Generic Event Extension
[ 221.874] (II) Initializing extension SHAPE
[ 221.875] (II) Initializing extension MIT-SHM
[ 221.875] (II) Initializing extension XInputExtension
[ 221.879] (II) Initializing extension XTEST
[ 221.880] (II) Initializing extension BIG-REQUESTS
[ 221.880] (II) Initializing extension SYNC
[ 221.880] (II) Initializing extension XKEYBOARD
[ 221.881] (II) Initializing extension XC-MISC
[ 221.881] (II) Initializing extension SECURITY
[ 221.882] (II) Initializing extension XFIXES
[ 221.882] (II) Initializing extension RENDER
[ 221.882] (II) Initializing extension RANDR
[ 221.883] (II) Initializing extension COMPOSITE
[ 221.883] (II) Initializing extension DAMAGE
[ 221.884] (II) Initializing extension MIT-SCREEN-SAVER
[ 221.884] (II) Initializing extension DOUBLE-BUFFER
[ 221.885] (II) Initializing extension RECORD
[ 221.885] (II) Initializing extension DPMS
[ 221.885] (II) Initializing extension Present
[ 221.885] (II) Initializing extension DRI3
[ 221.885] (II) Initializing extension X-Resource
[ 221.886] (II) Initializing extension XVideo
[ 221.886] (II) Initializing extension XVideo-MotionCompensation
[ 221.886] (II) Initializing extension GLX
[ 221.887] (II) AIGLX: Screen 0 is not DRI2 capable
[ 223.211] (II) IGLX: Loaded and initialized swrast
[ 223.211] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 223.211] (II) Initializing extension XFree86-VidModeExtension
[ 223.212] (II) Initializing extension XFree86-DGA
[ 223.212] (II) Initializing extension XFree86-DRI
[ 223.212] (II) Initializing extension DRI2
[ 223.406] (II) config/udev: Adding input device System mouse (/dev/input/event0)
[ 223.406] (**) System mouse: Applying InputClass "libinput pointer catchall"
[ 223.406] (II) LoadModule: "libinput"
[ 223.406] (II) Loading /usr/local/lib/xorg/modules/input/libinput_drv.so
[ 223.474] (II) Module libinput: vendor="X.Org Foundation"
[ 223.475] compiled for 1.20.14, module version = 1.2.0
[ 223.475] Module class: X.Org XInput Driver
[ 223.475] ABI class: X.Org XInput driver, version 24.1
[ 223.475] (II) Using input driver 'libinput' for 'System mouse'
[ 223.475] (**) System mouse: always reports core events
[ 223.475] (**) Option "Device" "/dev/input/event0"
[ 223.478] (**) Option "_source" "server/udev"
[ 223.506] (II) event0 - System mouse: is tagged by udev as: Mouse
[ 223.508] (II) event0 - System mouse: device is a pointer
[ 223.509] (II) event0 - System mouse: device removed
[ 223.509] (**) Option "config_info" "udev:/dev/input/event0"
[ 223.509] (II) XINPUT: Adding extended input device "System mouse" (type: MOUSE, id 6)
[ 223.509] (**) Option "AccelerationScheme" "none"
[ 223.509] (**) System mouse: (accel) selected scheme none/0
[ 223.509] (**) System mouse: (accel) acceleration factor: 2.000
[ 223.509] (**) System mouse: (accel) acceleration threshold: 4
[ 223.511] (II) event0 - System mouse: is tagged by udev as: Mouse
[ 223.512] (II) event0 - System mouse: device is a pointer
[ 223.514] (II) config/udev: Adding input device System keyboard multiplexer (/dev/input/event1)
[ 223.514] (**) System keyboard multiplexer: Applying InputClass "Evdev keyboard"
[ 223.514] (**) System keyboard multiplexer: Applying InputClass "libinput keyboard catchall"
[ 223.514] (II) Using input driver 'libinput' for 'System keyboard multiplexer'
[ 223.514] (**) System keyboard multiplexer: always reports core events
[ 223.514] (**) Option "Device" "/dev/input/event1"
[ 223.514] (**) Option "_source" "server/udev"
[ 223.516] (II) event1 - System keyboard multiplexer: is tagged by udev as: Keyboard
[ 223.516] (II) event1 - System keyboard multiplexer: device is a keyboard
[ 223.518] (II) event1 - System keyboard multiplexer: device removed
[ 223.518] (**) Option "config_info" "udev:/dev/input/event1"
[ 223.518] (II) XINPUT: Adding extended input device "System keyboard multiplexer" (type: KEYBOARD, id 7)
[ 223.518] (**) Option "xkb_rules" "evdev"
[ 223.579] (II) event1 - System keyboard multiplexer: is tagged by udev as: Keyboard
[ 223.580] (II) event1 - System keyboard multiplexer: device is a keyboard
[ 223.582] (II) config/udev: Adding input device Power Button (/dev/input/event2)
[ 223.582] (**) Power Button: Applying InputClass "Evdev keyboard"
[ 223.582] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[ 223.582] (II) Using input driver 'libinput' for 'Power Button'
[ 223.582] (**) Power Button: always reports core events
[ 223.582] (**) Option "Device" "/dev/input/event2"
[ 223.582] (**) Option "_source" "server/udev"
[ 223.584] (II) event2 - Power Button: is tagged by udev as: Keyboard
[ 223.584] (II) event2 - Power Button: device is a keyboard
[ 223.585] (II) event2 - Power Button: device removed
[ 223.585] (**) Option "config_info" "udev:/dev/input/event2"
[ 223.586] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 8)
[ 223.586] (**) Option "xkb_rules" "evdev"
[ 223.588] (II) event2 - Power Button: is tagged by udev as: Keyboard
[ 223.588] (II) event2 - Power Button: device is a keyboard
[ 223.589] (II) config/udev: Adding input device Sleep Button (/dev/input/event3)
[ 223.589] (**) Sleep Button: Applying InputClass "Evdev keyboard"
[ 223.589] (**) Sleep Button: Applying InputClass "libinput keyboard catchall"
[ 223.589] (II) Using input driver 'libinput' for 'Sleep Button'
[ 223.590] (**) Sleep Button: always reports core events
[ 223.590] (**) Option "Device" "/dev/input/event3"
[ 223.590] (**) Option "_source" "server/udev"
[ 223.591] (II) event3 - Sleep Button: is tagged by udev as: Keyboard
[ 223.592] (II) event3 - Sleep Button: device is a keyboard
[ 223.593] (II) event3 - Sleep Button: device removed
[ 223.593] (**) Option "config_info" "udev:/dev/input/event3"
[ 223.593] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 9)
[ 223.593] (**) Option "xkb_rules" "evdev"
[ 223.595] (II) event3 - Sleep Button: is tagged by udev as: Keyboard
[ 223.596] (II) event3 - Sleep Button: device is a keyboard
[ 223.597] (II) config/udev: Adding input device Control Method Lid Switch (/dev/input/event4)
[ 223.597] (II) No input driver specified, ignoring this device.
[ 223.597] (II) This device may have been added with another device file.
[ 223.597] (II) config/udev: Adding input device AT keyboard (/dev/input/event5)
[ 223.597] (**) AT keyboard: Applying InputClass "Evdev keyboard"
[ 223.597] (**) AT keyboard: Applying InputClass "libinput keyboard catchall"
[ 223.597] (II) Using input driver 'libinput' for 'AT keyboard'
[ 223.597] (**) AT keyboard: always reports core events
[ 223.597] (**) Option "Device" "/dev/input/event5"
[ 223.597] (**) Option "_source" "server/udev"
[ 223.599] (II) event5 - AT keyboard: is tagged by udev as: Keyboard
[ 223.600] (II) event5 - AT keyboard: device is a keyboard
[ 223.604] (II) event5 - AT keyboard: device removed
[ 223.604] (**) Option "config_info" "udev:/dev/input/event5"
[ 223.604] (II) XINPUT: Adding extended input device "AT keyboard" (type: KEYBOARD, id 10)
[ 223.604] (**) Option "xkb_rules" "evdev"
[ 223.606] (II) event5 - AT keyboard: is tagged by udev as: Keyboard
[ 223.607] (II) event5 - AT keyboard: device is a keyboard
[ 223.611] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event6)
[ 223.611] (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput pointer catchall"
[ 223.611] (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchpad catchall"
[ 223.611] (**) ETPS/2 Elantech Touchpad: Applying InputClass "touchpad catchall"
[ 223.611] (**) ETPS/2 Elantech Touchpad: Applying InputClass "Default clickpad buttons"
[ 223.611] (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchpad catchall"
[ 223.611] (II) Using input driver 'libinput' for 'ETPS/2 Elantech Touchpad'
[ 223.611] (**) ETPS/2 Elantech Touchpad: always reports core events
[ 223.611] (**) Option "Device" "/dev/input/event6"
[ 223.611] (**) Option "_source" "server/udev"
[ 223.629] (II) event6 - ETPS/2 Elantech Touchpad: is tagged by udev as: Mouse Touchpad
[ 223.641] (II) event6 - ETPS/2 Elantech Touchpad: device is a touchpad
[ 223.641] (II) event6 - ETPS/2 Elantech Touchpad: device removed
[ 223.679] (**) Option "Tapping" "on"
[ 223.681] (**) Option "DisableWhileTyping" "off"
[ 223.681] (**) Option "config_info" "udev:/dev/input/event6"
[ 223.681] (II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD, id 11)
[ 223.690] (**) Option "AccelerationScheme" "none"
[ 223.690] (**) ETPS/2 Elantech Touchpad: (accel) selected scheme none/0
[ 223.690] (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
[ 223.690] (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
[ 223.712] (II) event6 - ETPS/2 Elantech Touchpad: is tagged by udev as: Mouse Touchpad
[ 223.723] (II) event6 - ETPS/2 Elantech Touchpad: device is a touchpad
[ 223.726] scfb: SaveScreen 0
[ 223.726] scfb: SaveScreen done
I don't have any other files in /usr/local/etx/X11/xorg.conf.d except one with
Code:
Driver "scfb"
Any help appreciated.
EDIT: Here's some links of things that I tried:
- https://docs.freebsd.org/en/books/faq/#x-and-synaptic
- https://wiki.freebsd.org/SynapticsTouchpad
- https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238550 (this mentions some proprietary HID protocols, could it be the case?)
- https://stolarscy.com/dryobates/2014-02/synaptics-freebsd/
- https://www.reddit.com/r/freebsd/comments/7o2v62/comment/ds7wscj/