Discussion:
Elantech Touchpad Woes - Support for Elantech touchpads over
(too old to reply)
Albert
2018-06-02 00:14:06 UTC
Permalink
Hi all,


I'd like to start out by saying that I'm a newcomer to FreeBSD, but I've
been running Linux for years now and I'm still having a few issues
transitioning. Despite that. I've been having a blast setting things up
for myself, and I'm hopeful I can get this resolved soon enough.

I'm trying to get FreeBSD running on my laptop, an "Acer Chromebook 14"
(EDGAR), and although I've managed to overcome most of the problems I've
faced along the way (needing to upgrade to a UEFI, misnamed wireless
modules, video drivers not working on RELEASE nor STABLE), I just can't
seem to get the touchpad on this thing to work.

For reference, EDGAR is an Intel Celeron N3160 SoC. Pretty much the only
thing in it that isn't Intel are the case, the keyboard, the webcam and
the touchpad. On Linux, the touchpad appears in _/proc_ as

I: Bus=0018 Vendor=04f3 Product=0055 Version=0000
N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/pci0000:00/808622C1:05/i2c-1/i2c-ELAN0000:00/input/input5
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=663800013000003

It seems _dmesg_ confirms this:

[   18.416171] input: Elan Touchpad as /devices/pci0000:00/808622C1:05/i2c-1/i2c-ELAN0000:00/input/input5

and it can be seen from _lsmod_ as *elan_i2c*. The source for the
corresponding driver can be found here: Google ChromeOS Git.
<https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/chromeos-elan-3.14/drivers/input/mouse/elan_i2c_core.c>

Now on FreeBSD, it's as though it didn't even exist. Without applying
any of the changes I've tried to get it working, here's the (verbose)
output to _dmesg_ on FreeBSD: (vdmesg-nochanges
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-nochanges-txt>).
With the knowledge I have so far, this is to be expected, as it seems
FreeBSD requires the *ig4* module to work with *i2c* devices. Loading it
at boot does seem to make the buses visible, but the touchpad still
doesn't appear (or not properly, I don't know all these codes):
(vdmesg-ig4
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-ig4-txt>).
The obvious solution is to enable support for elantech devices with
_hw.psm.elantech_support_, but nada: (vdmesg-elantech
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-elantech-txt>).
The only difference is _sysctl_ shows that option is enabled. Aside from
that, it seems I'm not the only one who's had this sort of issue before,
so support has been worked on and is claimed to be working. Loading the
recommended cyapa and chromebook_platform modules at boot does not fix
this issue: (vdmesg-chromebook
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-chromebook-txt>).
The reason appears, at least to me, to be that the cyapa driver isn't a
proper elan driver. These are /different/ devices.

I'm determined to get this working /somehow/, so any help would be
appreciated. It feels like there's a solution here somewhere and I'm
either too dumb to find it or it's just not there quite yet. If it's the
latter, I'm willing to put some work into porting the right driver with
a little guidance. (I have plenty of experience with C but none of this
driver stuff.)


- Albert

PS. External mice are working perfectly, so it's nothing to do with the
base install.
Greg V
2018-06-02 10:26:03 UTC
Permalink
Post by Albert
Hi all,
I'd like to start out by saying that I'm a newcomer to FreeBSD, but
I've been running Linux for years now and I'm still having a few
issues transitioning. Despite that. I've been having a blast setting
things up for myself, and I'm hopeful I can get this resolved soon
enough.
I'm trying to get FreeBSD running on my laptop, an "Acer Chromebook
14" (EDGAR), and although I've managed to overcome most of the
problems I've faced along the way (needing to upgrade to a UEFI,
misnamed wireless modules, video drivers not working on RELEASE nor
STABLE), I just can't seem to get the touchpad on this thing to work.
For reference, EDGAR is an Intel Celeron N3160 SoC. Pretty much the
only thing in it that isn't Intel are the case, the keyboard, the
webcam and the touchpad. On Linux, the touchpad appears in _/proc_ as
[...]
and it can be seen from _lsmod_ as *elan_i2c*. The source for the
corresponding driver can be found here: Google ChromeOS Git.
<https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/chromeos-elan-3.14/drivers/input/mouse/elan_i2c_core.c>
Now on FreeBSD, it's as though it didn't even exist. Without applying
any of the changes I've tried to get it working, here's the (verbose)
output to _dmesg_ on FreeBSD: (vdmesg-nochanges
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-nochanges-txt>).
With the knowledge I have so far, this is to be expected, as it seems
FreeBSD requires the *ig4* module to work with *i2c* devices. Loading
it at boot does seem to make the buses visible, but the touchpad
(vdmesg-ig4
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-ig4-txt>).
The obvious solution is to enable support for elantech devices with
_hw.psm.elantech_support_, but nada: (vdmesg-elantech
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-elantech-txt>).
The only difference is _sysctl_ shows that option is enabled. Aside
from that, it seems I'm not the only one who's had this sort of issue
before, so support has been worked on and is claimed to be working.
Loading the recommended cyapa and chromebook_platform modules at boot
does not fix this issue: (vdmesg-chromebook
<https://gist.github.com/dsifriend/7d3635937f0d16ced7ef572cdb6ba02d#file-vdmesg-chromebook-txt>).
The reason appears, at least to me, to be that the cyapa driver isn't
a proper elan driver. These are /different/ devices.
I'm determined to get this working /somehow/, so any help would be
appreciated. It feels like there's a solution here somewhere and I'm
either too dumb to find it or it's just not there quite yet. If it's
the latter, I'm willing to put some work into porting the right
driver with a little guidance. (I have plenty of experience with C
but none of this driver stuff.)
Hi! hw.psm.elantech_support is not the solution. hw.psm... psm means
PS/2 Mouse. This is for PS/2 Elantech touchpads.

cyapa is indeed not the right driver either. The "cy" is for Cypress.
That's the touchpad found in e.g. the Acer C720.

So there's no support for your touchpad right now.

OpenBSD has HID over i2c support: https://man.openbsd.org/imt -- you
could try porting that...

Also, should be possible to add i2c support to webcamd I guess, that
would get the Linux driver running in userspace.
Matthias Apitz
2018-06-02 10:41:59 UTC
Permalink
On Saturday, 2 June 2018 12:26:03 CEST, Greg V
Post by Greg V
...
cyapa is indeed not the right driver either. The "cy" is for Cypress.
That's the touchpad found in e.g. the Acer C720.
...
Side note:

I own three C720, they all came with Cypress TP. One was for repair at
Acer.com and returned with an Elantech TP. As well, there are no spare
parts of Cypress any more for replacement, even if the dealer claimes so,
they came all as Elan and I returned them.

Said this, we need support for Elan in our beloved FreeBSD.

Matthias.
--
Sent from my Ubuntu phone
http://www.unixarea.de/
Michael Gmelin
2018-06-02 12:12:26 UTC
Permalink
...
cyapa is indeed not the right driver either. The "cy" is for Cypress. That's the touchpad found in e.g. the Acer C720.
...
I own three C720, they all came with Cypress TP. One was for repair at Acer.com and returned with an Elantech TP. As well, there are no spare parts of Cypress any more for replacement, even if the dealer claimes so, they came all as Elan and I returned them.
Yeah, I ported the cyapa driver to FreeBSD, but then I gave my working cyapa pad to Matthias, trading it for an elan pad. I hoped to port this driver as well - unfortunately I didn’t find the time yet, but good to know that there is demand.

-m
Said this, we need support for Elan in our beloved FreeBSD.
Matthias.
--
Sent from my Ubuntu phone
http://www.unixarea.de/
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
Albert
2018-06-03 05:13:50 UTC
Permalink
Michael,

Good to know you still have plans to work on that eventually. It'd be
much appreciated.

Looking at the source for your cyapa driver, I see you've ported it from
the DragonFlyBSD driver (and they in turn adapted it from the Linux
one). I should've looked into that earlier... Instead I spent most of my
day trying to get OpenBSD running to try and follow Tom's hint at
possible support there, but I had so many more issues along the way that
in the end I figured "if I'm having trouble even getting a keyboard to
work on this with my system, a touchpad will likely be the least of my
worries."

So, I'm back to my FreeBSD CURRENT install, still no touchpad support
(obviously). I guess I'll be doing some more research on these things
and tinkering with what I find. Unfortunately, I'm moving overseas in a
couple of weeks and leaving my desktop behind, which means I need to
have this laptop in full working condition by then, so if I don't make
any progress, I'll have to somewhat reluctantly go back to Linux for the
time being. If/when that happens, I'll still be happy to help with any
testing.

MfG,

- Albert
Brian Kidney
2018-06-04 01:13:12 UTC
Permalink
Hi all,

I have a ASUS Zenbook UX430U with the same problem. I am heading to
BSDCan (and the FreeBSD Dev Submit as a guest) this week and could spend
some time working on this in the hacker lounge. That said, I am new to
FreeBSD driver code, so I could use some guidance to help me along.
Anyone headed to the conference that might be able to lend me a hand?

Thanks,
Brian

Brian Kidney, M.Eng., P.Eng.
PGP Fingerprint: B8C9 D174 BABC 7FD8 67D0 DF84 FDEE B338 F248 A893
Post by Albert
Michael,
Good to know you still have plans to work on that eventually. It'd be
much appreciated.
Looking at the source for your cyapa driver, I see you've ported it
from the DragonFlyBSD driver (and they in turn adapted it from the
Linux one). I should've looked into that earlier... Instead I spent
most of my day trying to get OpenBSD running to try and follow Tom's
hint at possible support there, but I had so many more issues along
the way that in the end I figured "if I'm having trouble even getting
a keyboard to work on this with my system, a touchpad will likely be
the least of my worries."
So, I'm back to my FreeBSD CURRENT install, still no touchpad support
(obviously). I guess I'll be doing some more research on these things
and tinkering with what I find. Unfortunately, I'm moving overseas in
a couple of weeks and leaving my desktop behind, which means I need to
have this laptop in full working condition by then, so if I don't make
any progress, I'll have to somewhat reluctantly go back to Linux for
the time being. If/when that happens, I'll still be happy to help with
any testing.
MfG,
- Albert
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to
Loading...