Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Two-finger scroll doesn't work with ELAN0608 touchpad #21

Open
perhedeland opened this issue Mar 1, 2020 · 9 comments
Open

Two-finger scroll doesn't work with ELAN0608 touchpad #21

perhedeland opened this issue Mar 1, 2020 · 9 comments

Comments

@perhedeland
Copy link

Hi,
I think I'm abusing the "issue" functionality here, since I have no reason to think that this is a problem with the iichid module - but since it was what got my touchpad working at all (thanks again!), I thought you might have some idea about how to get the two-finger scroll to work too...

After you helped me out in issue #20, I have upgraded to the latest xorg-server port with UDEV enabled, and even gotten it to work:-) with the help of Michael Gmelin's excellent script - no more need to specify the exact /dev/input/eventN in an xorg.conf snippet, that part "just works".

But one argument for UDEV that has been mentioned is to get more touchpad functionality working, in particular the two-finger scroll - and it doesn't work for me. I know that the touchpad supports it, since it works in Windows (I have the laptop set up for dual-boot). I think Xorg.0.log has a significant clue, in that it decides that my touchpad is a mouse:-) -

-------------------------------------------------------------
[    29.512] (II) config/udev: Adding input device ELAN0608 (/dev/input/event3)
[    29.512] (**) ELAN0608: Applying InputClass "evdev pointer catchall"
[    29.512] (**) ELAN0608: Applying InputClass "libinput pointer catchall"
[    29.512] (II) Using input driver 'libinput' for 'ELAN0608'
[    29.512] (**) ELAN0608: always reports core events
[    29.512] (**) Option "Device" "/dev/input/event3"
[    29.512] (**) Option "_source" "server/udev"
[    29.512] (II) event3  - ELAN0608: is tagged by udev as: Mouse
[    29.512] (II) event3  - ELAN0608: device is a pointer
[    29.512] (II) event3  - ELAN0608: device removed
[    29.512] (**) Option "config_info" "udev:/dev/input/event3"
[    29.512] (II) XINPUT: Adding extended input device "ELAN0608" (type: MOUSE, id 9)
[    29.513] (**) Option "AccelerationScheme" "none"
[    29.513] (**) ELAN0608: (accel) selected scheme none/0
[    29.513] (**) ELAN0608: (accel) acceleration factor: 2.000
[    29.513] (**) ELAN0608: (accel) acceleration threshold: 4
[    29.513] (II) event3  - ELAN0608: is tagged by udev as: Mouse
[    29.513] (II) event3  - ELAN0608: device is a pointer
-------------------------------------------------------------

Do you have any idea? I can easily try out any source changes.

@wulf7
Copy link
Owner

wulf7 commented Mar 1, 2020

Unfortunately your touchpad uses Elantech proprietary protocol rather than HID for multitouch mode which is not supported in this driver.
It is possible to port Elantech driver from Linux which should support this device: https://elixir.bootlin.com/linux/v5.6-rc3/source/include/linux/input/elan-i2c-ids.h#L37 but I do not have opportunities to do that.

@perhedeland
Copy link
Author

perhedeland commented Mar 2, 2020 via email

@wulf7
Copy link
Owner

wulf7 commented Apr 29, 2020

There is not yet committed OpenBSD driver for Elan I2C touchpad https://marc.info/?l=openbsd-tech&m=158509428830926
Porting it to FreeBSD looks rather straightforward. One is to replace OpenBSD bus bits (probe, interrupt establishing and I2C transfers) with newbus bits taken from iichid.c and replace wscons interface with evdev.

@perhedeland
Copy link
Author

perhedeland commented Apr 29, 2020 via email

@wulf7
Copy link
Owner

wulf7 commented Nov 29, 2020

I added a port of "Linux Elan I2C touchpad" driver to iichid, so you can test it. I do not have a hardware to do that.

@studikumbang
Copy link

cannot scrolling i2c elan0608 touchpad

libinput list devices
Device: ELAN0608:0A 04F3:0400 Mouse Kernel: /dev/input/event7 Group: 8 Seat: seat0, default Capabilities: pointer Tap-to-click: n/a Tap-and-drag: n/a Tap drag lock: n/a Left-handed: disabled Nat.scrolling: disabled Middle emulation: n/a Calibration: n/a Scroll methods: button Click methods: none Disable-w-typing: n/a Accel profiles: flat *adaptive Rotation: n/a
dmesg
iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0 iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0 iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0 iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0 iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0 iichid0: <ELAN0608:0A 04F3:0400 I2C HID device> at addr 0x15 irq 87 on iicbus0 hms0: <ELAN0608:0A 04F3:0400 Mouse> on hidbus0
/boot/loader.conf
ig4_load="YES" iicbus_load="YES" iichid_load="YES"

@wulf7
Copy link
Owner

wulf7 commented Aug 27, 2021

Which FreeBSD version do you run?

@studikumbang
Copy link

FreeBSD 13.0-STABLE amd64

@wulf7
Copy link
Owner

wulf7 commented Sep 2, 2021

Elantech proprietary protocol support was not imported into 13.0 due to lack of testing.
You may create FreeBSD bugzilla issue and assign it to me to test patches as this version of iichid does not compile on 13.0-STABLE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants