Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

MacBook Pro built-in trackpad (05ac:027c) on Apple T2 USB controller misclassified as external — disable-while-typing and palm rejection unavailable

Abierto Apto para principiantes
#43,934 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
linux

Línea de trabajo

Comienza con hwdb.d/70-touchpad.hwdb y rules.d/65-integration.rules; después, compara la lógica de integración existente con las propiedades del dispositivo t2bce_vhci indicadas en el informe. Verifica el cambio elegido con systemd-hwdb query y udevadm info, y confirma que ID_INPUT_TOUCHPAD_INTEGRATION es interno para el trackpad Apple 05ac:027c.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

The built-in trackpad on Macs whose keyboard/trackpad is attached to Apple's T2
virtual USB host controller (t2bce_vhci) is classified as an external
touchpad by udev. libinput gates two features on internal touchpads, so both
become silently unavailable on an obviously built-in device:

  • disable-while-typing
  • palm rejection

hwdb.d/70-touchpad.hwdb has no 05ac entries at all, so there is no override.

Device

$ cat /sys/class/dmi/id/product_name
MacBookPro15,1

$ udevadm info /dev/input/event6
P: /devices/pci0000:00/0000:00:1b.0/0000:02:00.1/t2bce_core/t2bce_core/t2bce_vhci/usb7/7-5/7-5:1.2/0003:05AC:027C.0005/input/input19/event6
M: event6
N: input/event6
L: 0
S: input/by-path/pci-0000:02:00.1-usb-0:5:1.2-event-mouse
S: input/by-id/usb-Apple_Inc._Apple_Internal_Keyboard___Trackpad_FM7820406R3HYYMAD+RNZ-if02-event-mouse
E: DEVNAME=/dev/input/event6
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_TOUCHPAD=1
E: ID_INPUT_WIDTH_MM=160
E: ID_INPUT_HEIGHT_MM=100
E: ID_BUS=usb
E: ID_MODEL=Apple_Internal_Keyboard___Trackpad
E: ID_MODEL_ID=027c
E: ID_VENDOR=Apple_Inc.
E: ID_VENDOR_ID=05ac
E: ID_INPUT_TOUCHPAD_INTEGRATION=external
E: ID_INTEGRATION=external

Root cause

rules.d/65-integration.rules only marks a USB device internal when the parent
hub reports ATTRS{removable}=="fixed":

DRIVERS=="usb", ATTRS{devpath}!="0", ATTRS{removable}=="fixed", ENV{ID_INTEGRATION}="internal", ...
DRIVERS=="usb", ATTRS{devpath}!="0", ATTRS{removable}=="removable|unknown", ENV{ID_INTEGRATION}="external", ...

The t2bce_vhci controller does not expose removable, so the device falls
through to external. That is arguably reasonable for a real USB peripheral,
but here the "USB" device is internal MacBook hardware behind Apple's virtual
host controller, so the heuristic misfires.

Impact

Verified with libinput 1.31.3 on the device node, before the override:

libinput_device_config_dwt_is_available()   == 0
libinput_device_config_dwt_set_enabled(1)   == 1   (rejected)

i.e. the compositor's request to disable-while-typing fails with no diagnostic.
Palm rejection is gated the same way. Compositor-side config looks correct and
is reported as set: true, so the setting silently does nothing — which makes
this quite hard to diagnose from a desktop.

Proposed fix

An entry in hwdb.d/70-touchpad.hwdb, which is the mechanism
rules.d/70-touchpad.rules already looks up and the hwdb header explicitly
solicits PRs for:

###########################################################
# Apple MacBook Pro built-in trackpad (T2 virtual USB host controller)
###########################################################
touchpad:usb:v05acp027c:*
 ID_INPUT_TOUCHPAD_INTEGRATION=internal

Note the lowercase vid/pid, as the file header requires.

Verification

Applied locally as /etc/udev/hwdb.d/71-touchpad-local.hwdb + systemd-hwdb update:

$ systemd-hwdb query "touchpad:usb:v05acp027c:name:Apple Inc. Apple Internal Keyboard / Trackpad:"
ID_INPUT_TOUCHPAD_INTEGRATION=internal

$ udevadm info --query=property /dev/input/event6 | grep INTEGRATION
E: ID_INPUT_TOUCHPAD_INTEGRATION=internal
E: ID_INTEGRATION=internal

and libinput then reports disable-while-typing as available and applies it:

libinput_device_config_dwt_is_available()   == 1
libinput_device_config_dwt_set_enabled(1)   == 0   (success)

libinput also enables palm detection and thumb detection tuning for internal
touchpads, so those improve as well.

Questions

  1. Is 05ac:027c the only affected product, or should this cover other Apple
    internal trackpads reachable through t2bce_vhci? I only have a
    MacBookPro15,1 to test on, so I did not want to guess at a wider match.
  2. Would a fix in 65-integration.rules (teaching it that t2bce_vhci implies
    internal) be preferred over a per-device hwdb entry? It would fix the
    keyboard and other T2-attached internals too, but I don't know whether
    treating everything on that controller as internal is safe.

Environment

systemd   261 (261.2-1-arch)
libinput  1.31.3-1
kernel    7.2.6-arch2-Watanare-T2-4-t2
distro    Arch Linux / Omarchy 4.0.4-1
device    MacBookPro15,1 (MacBook Pro 15" 2018, T2)
compositor Hyprland 0.56.2
Lenguaje dominante
C
Estrellas
16.9k
Forks
4.8k
Merge medio
2 d 6 h
PR fusionados (30 d)
306

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de systemd/systemd

Todos los issues de systemd/systemd

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.