Date: Fri, 1 Jun 2018 20:14:06 -0400 From: Albert <dsifriend@gmail.com> To: freebsd-current@freebsd.org Subject: Elantech Touchpad Woes - Support for Elantech touchpads over i2c/SMBus still possibly missing Message-ID: <9af6cfd7-114a-1613-9b65-37090a0f17fe@gmail.com>
next in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9af6cfd7-114a-1613-9b65-37090a0f17fe>