Upstream support of Google Chromebook keyboards (udev, xkeyboard-config)?

From
Paul Menzel <hidden>
Date
2021-12-27 16:18:48
Also in
lkml
Dear Linux folks,


Installing a non-Chromium OS distribution like Debian on a Google Chromebook, in this case a Dell Latitude 5400 Chrome (google/sarien), not all keys work as expected.

1.  Non-working super key and two function keys on Google Chromebook Dell Latitute 5400 Chrome (google/sarien) [1]
2.  Wrong caps lock key and function key mappings on Google Chromebook Dell Latitute 5400 Chrome (google/sarien) [2]

Peter replied, this should be fixed in udev, so it’s not directly related to the Linux kernel, as the Linux kernel exposes the scancodes(?) just fine. But what is the upstream process for this in general? Chromium OS carries `91-chromeos-keyboard.rules` for example.

systemd/udev currently has an entry for two Google Chromebook models in `hwdb.d/60-keyboard.hwdb` [4]:

    ######################### FIXED MODEL DEVICES #############################
    # This section lists devices which require special handling in their key
    # code to keysym mapping by setting the xkb model.
    # The model must be an xkb compatible model (defined with XKB_FIXED_MODEL).

    # Chromebooks
    evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnFalco:pvr*
    evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPeppy:pvr*
     XKB_FIXED_MODEL="chromebook"

The Dell Chromebooks, unfortunately, also use the embedded controller with Dell’s proprietary firmware (Wilco(?)), and not Chrome EC making special handling necessary. `91-chromeos-keyboard.rules` has

    # Wilco keyboard (5220W-C) for Chrome OS
    SUBSYSTEM=="input", \
      ATTRS{idVendor}=="413c", ATTRS{idProduct}=="2510", \
      ENV{CROS_KEYBOARD_TOP_ROW_LAYOUT}="3", \
      ENV{ID_INPUT_KEYBOARD}="1"


Kind regards,

Paul


[1]: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/298
[2]: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/299
[3]: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/783bd8563450d9e9e575323a83321fdc67e334bf/sys-fs/udev/files/91-chromeos-keyboard.rules
[4]: https://github.com/systemd/systemd/commit/d7d31692bf7cde5dce7f4ed3cae429a5b302a9f0?branch=d7d31692bf7cde5dce7f4ed3cae429a5b302a9f0
Thread (4 messages) 4 messages, 2 authors, last reply 2022-01-04
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help