MacBook Pro built-in trackpad (05ac:027c) on Apple T2 USB controller misclassified as external — disable-while-typing and palm rejection unavailable
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
- Área
- operating-systems
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
- Is
05ac:027cthe only affected product, or should this cover other Apple
internal trackpads reachable throught2bce_vhci? I only have a
MacBookPro15,1 to test on, so I did not want to guess at a wider match. - Would a fix in
65-integration.rules(teaching it thatt2bce_vhciimplies
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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de systemd/systemd
-
RFE 🎁
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
TEST-24-CRYPTSETUP hard-codes <build>/mkosi.output/keydev.raw and breaks when OutputDirectory= is overriddenPosiblemente ocupada @danielsyauqi la tomó hace 19 días. Abiertobug 🐛 tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
systemd/systemd#44051 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
65-integration.rules: USB devices behind a monitor's/dock's built-in hub get ID_INTEGRATION=internalAbiertobug 🐛 udev
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
systemd/systemd#43965 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug 🐛 hwdb
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
'f' type omits sentence that 'd' has, implying create-only semanticsPosiblemente ocupada @sairex53 la tomó hace 15 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
Todos los issues de systemd/systemd
Issues similares
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 91/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
enhancement ui
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
ChupathingyCE/chupathingyce#485 ·
Los mantenedores suelen responder en 1 día
-
Need to correct all URLsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
eclipse-paho/paho.mqtt.c#1727 ·
Los mantenedores suelen responder en 6 días