raphael / linux-samus

Linux 4.16 on Chromebook Pixel 2015
GNU General Public License v2.0
181 stars 36 forks source link

Touchpad wont work even with script #126

Open vadixidav opened 8 years ago

vadixidav commented 8 years ago

Earlier, I reinstalled my OS to an external thumb drive due to the SSD firmware issue. However, I have since been unable to get the touchpad working. My touchpad, even when disabled, seems to be causing random things to happen with moving the cursor around randomly while typing if my hands get anywhere near it (which is making this difficult to type). The cursor can be clicked, unless it is disabled, but it cannot move. This sounds similar to the previous issue, but sadly the enable-amtel.sh script did not fix this for me. I tried manually running mxt-app on each of the i2c buses, which changed from 7 to 0 between boots, but it simply does nothing. Another note: I moved from v4.4-7 to v4.4-6 right before the SSD firmware gave out, but the touchpad worked fine and this didn't happen before. Perhaps it may have something to do with that fact that I am booting externally?

Here are the dmesg lines that appear to be the problem (but maybe not):

[   66.778721] i2c /dev entries driver
[   66.948185] atmel_mxt_ts i2c-ATML0000:01: Wait for completion timed out.
[   66.951935] atmel_mxt_ts i2c-ATML0000:01: T100 Touchscreen size X960Y540
[   66.951998] input: Atmel maXTouch Touchpad as /devices/pci0000:00/INT3432:00/i2c-0/i2c-ATML0000:01/input/input13
[   66.952117] atmel_mxt_ts i2c-ATML0000:01: Family: 164 Variant: 17 Firmware V1.0.AA Objects: 32
raphael commented 8 years ago

I've updated the enable-atmel.sh script with a new version that reconfigures the devices. This should only be needed to run once. See https://github.com/raphael/linux-samus/commit/dca5e3dcfcb255c2c636264695bd73206a3d7b02.

Original suggestion from https://lkml.org/lkml/2016/4/8/536.

vadixidav commented 8 years ago

Thanks, I'll give it a try later today and see if it works.

myf commented 8 years ago

i just ran the enable-atmel.sh. it seems that after waking up from the suspend the system cursor works for a few second and it stopped working. chromium touch event works surprisingly. resetting using mxt-app does not make the system cursor even work anymore.

myf commented 8 years ago

this took another interesting turn: as i tried to use multiple finger gesture on my chromium page, it seems that system cursor starts to work again. after waking up from subsequent suspend the system cursor keeps working well. interesting.

im just documenting this here as empirical study.

raphael commented 8 years ago

haha the pixel touchpad is one interesting mysterious beast :) it's been working fine for me since I applied to config change. Thanks for the report.

DerVerruckteFuchs commented 8 years ago

So I've finally had some time to update my Pixel. I'm using the new enable-atmel.sh and it's in its appropriate place in /usr/local/bin/enable-atmel.sh. It's been working good so far. I had one hiccup like @myf though. I had Chromium and a pdf open in zathura at the same time. I closed my Pixel to test sleep/wake if the problem had gone away. It seemed Chromium stole touchscreen focus since the touchscreen wouldn't work in i3 or zathura. It seemed to happen on wake since the pinch to zoom either got activated by itself or I accidentally had two fingers on the screen and didn't notice. I don't know if that has anything to do with it though. I don't recall Chromium having pinch to zoom, so that's nice to have that. My touchscreen feels a bit more useful now. I rebooted and can't seem to replicate the error.

I played around a bit with Firefox with the Grab and Drag extension again since that seemed to be an issue before. I haven't had any problems yet. For now everything seems to be working great. I'll report back if the problem shows up again. I'm cautiously optimistic that everything touchscreen related has been worked out.

All I want now is to have the Grab and Drag extension to work as smooth as Chromium's native touchscreen support. :P

bendavis78 commented 7 years ago

I updated my kernel to linux-samus4 4.8.7, and my touchpad and touchscreen stopped working. I downloaded and ran the enable-atmel.sh script (after installing mxt-app) and my touchscreen works, but my touchpad still doesn't work. Here's the output from enable-atmel.sh:

Version:1.27-7-g6d84bb0
Registered i2c-dev adapter:7 address:0x4a
Version:1.27-7-g6d84bb0
Registered i2c-dev adapter:7 address:0x4a
Backed up settings to the non-volatile memory
-----------------------------------------------
- touchpad device i2c-dev:7-004a reconfigured -
-----------------------------------------------

Version:1.27-7-g6d84bb0
Registered i2c-dev adapter:8 address:0x4b
Version:1.27-7-g6d84bb0
Registered i2c-dev adapter:8 address:0x4b
Backed up settings to the non-volatile memory
--------------------------------------------------
- touchscreen device i2c-dev:8-004b reconfigured -
--------------------------------------------------

DONE.
bendavis78 commented 7 years ago

Update: my touchpad works now (randomly), but my touchscreen still doesn't work.

timuts commented 7 years ago

I managed to resurrect my touchpad/touchscreen. It quit working after a failed attempt to upgrade the kernel to linux-4.11.3.

What finally worked was using mxt-app to load a config I found in a ChromiumOS git repo:

git clone https://chromium.googlesource.com/chromiumos/overlays/board-overlays git clone https://github.com/atmel-maxtouch/mxt-app cd mxt-app/ sudo apt-get install build-essential autoconf libtool ./autogen.sh && make cd .. sudo modprobe i2c-dev sudo ./mxt-app/mxt-app -d i2c-dev:0-004a --save atmel-maxtouch-pad.BAD.cfg sudo ./mxt-app/mxt-app -d i2c-dev:1-004b --save atmel-maxtouch-screen.BAD.cfg sudo ./mxt-app/mxt-app -d i2c-dev:0-004a --load board-overlays/overlay-samus/chromeos-base/chromeos-touch-config-samus/files/337t.raw sudo ./mxt-app/mxt-app -d i2c-dev:1-004b --load board-overlays/overlay-samus/chromeos-base/chromeos-touch-config-samus/files/2954t2.raw

Be sure to verify the device addresses, and diff the bad config with the config you plan to load. There were only a few differences in my case.