GalliumOS / galliumos-distro

Docs, issues, and artwork sources for GalliumOS
https://galliumos.org/
GNU General Public License v2.0
347 stars 11 forks source link

Galliumos 3.0 touchpad on HP Chromebook x2 #523

Open rstoecker opened 5 years ago

rstoecker commented 5 years ago

I am seeing touchpad issues similar to others on an HP Chromebook x2 (stock bios, chrx install). It almost acts like it is a touch screen. I can drag the mouse, but when I lift my finger and put it back down the pointer shifts to approximately correspond to where I put my finger on the touchpad. It sometimes acts like it's locked, scrolling the screen. It also appears that there is no driver installed for it. The pen installed fine, but the only other driver is the Google Inc. Hammer.

africlouds commented 4 years ago

I am having exactly the same issue

bmfesta2009 commented 4 years ago

Try what I documented here and let me know.

https://github.com/GalliumOS/galliumos-distro/issues/539

maccaches commented 4 years ago

I am also having this issue on my HP Chromebook x2 with full UEFI firmware. Has anyone found any solutions to this? I tried everything in #539 without any luck.

alexfornuto commented 4 years ago

@bmfesta2009 I followed #539, in the same boat as the others. I only copied 40 and 50 per your updates, but would be happy to test other sets you may think be worth testing.

milan-stoj commented 4 years ago

I think the problem here - specifically with the Chromebook X2 - is that there is no 50-touchpad-cmt-soraka.conf to be found. Running xinput in a terminal shows the touchpad and keyboard both registering with the device name Google Inc. Hammer.

Someone with more knowledge of how firmware/drivers are written and used in GaliumOS could maybe start here: Hammer: Secure Touchpad Firmware

wnpIT commented 3 years ago
  1. The touchpad is seen as a touchscreen as we see in udevadm info /dev/input/eventX. Add the hwdb : /etc/udev/hwdb.d/61-input-id.hwdb with content :
    id-input:modalias:input:b0003v18D1p502Be0100-e0,1,3*`
    ID_INPUT_TOUCHPAD=1
  2. I use libinput drivers : add section in /etc/X11/xorg.conf :
    Section "InputClass"
    Identifier "libinputEvents"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    EndSection
  3. The touchpad pressure is incorrect, add libinput quirks create /usr/share/libinput/90-Google-Hammer.quirks with :
    [Google Hammer]
    MatchUdevType=touchpad
    MatchBus=usb
    MatchVendor=0x18D1
    MatchProduct=0x502B
    AttrPressureRange=40:30
tomm87 commented 2 years ago

I also had the exact problem as @rstoecker: HP Chromebook X2 (soraka) with stock firmware and the RW_LEGACY upgrade, with GalliumOS installed by chrx as dual-boot. My touchpad behaved more like a touchscreen. Though far from an X Windows and udev expert, I felt that @wnpIT's comment (immediately above) was on the right track, but it didn't work for me as-is. Here's what I did that fixed it:

  1. I used wnpIT's "step 1" udev hwdb file, except I removed the trailing backquote / grave accent from the first line -- I don't understand udev hwdb files, but I think that's a typo (maybe some stray markdown). The last character on the first line should be an asterisk. When I do this, the output of udevadm info /dev/input/event3 shows ID_INPUT_TOUCHPAD=1, which it does not show otherwise, so I know it's having an effect.
  2. I did not use wnpIT's "step 2" xorg.conf file. I tried it, but the touchpad was completely unresponsive until I got rid of it.
  3. I used wnpIT's "step 3" libinput quirks file as shown.

For the benefit of any newbies, these changes require a reboot to take effect.

Thanks @wnpIT for pointing in the right direction of this solution!

rumblpak commented 5 months ago

I know this is very old but this is how I got things working under Debian 12.

  1. I followed the instructions created in for steps 2 and 3: https://github.com/galliumos/galliumos-distro/issues/523#issuecomment-841695416
  2. I found the mouse device by doing ls -l /dev/input/by-path, ex)
    lrwxrwxrwx 1 root root   9 Apr 18 15:01 pci-0000:00:14.0-usb-0:2:1.0-event-kbd -> ../event9
    lrwxrwxrwx 1 root root   9 Apr 18 15:01 pci-0000:00:14.0-usb-0:2:1.2-event-mouse -> ../event8
    lrwxrwxrwx 1 root root   9 Apr 18 15:01 pci-0000:00:14.0-usb-0:2:1.2-mouse -> ../mouse4
  3. I verified the device with udevadm info /sys/class/input/event8 and retrieved the DEVPATH
  4. I created a udev rule in /usr/lib/udev/rules.d/99-google-hammer.rules with the following, you must insert your own DEVPATH:
    ACTION=="add|change", KERNEL=="event[0-9]*", DEVPATH=="/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:18D1:502B.0003*", \
    ENV{ID_VENDOR_ID}=="18d1", ENV{ID_MODEL_ID}=="502b", ENV{ID_INPUT_MOUSE}="1", ENV{ID_INPUT_TOUCHPAD}="1", ENV{ID_INPUT_TOUCHSCREEN}=""
  5. I ran the following commands:
    udevadm hwdb --update
    udevadm trigger /sys/class/input/event8
  6. You can now verify that the mouse will have the ID_INPUT_TOUCHPAD=1 with:
    udevadm info /sys/class/input/event8
  7. Reboot and your mouse device should work.