Skip to content
On this page

Resucité la Touch Bar de mi MacBook Pro 2016 con T1 en Omarchy Linux

by Manolo Garcia on 2026-08-23T00:00:00.000Z

Touch Bar funcionando en Omarchy LinuxTouch Bar funcionando en Omarchy Linux

TL;DR: si tienes un MacBook Pro 2016 o 2017 con Touch Bar (chip T1) corriendo Omarchy o Arch Linux, la Touch Bar está muerta por defecto. Te explico el viaje completo para revivirla — incluyendo por qué necesitas arrancar macOS una vez, cómo compilar el driver desde cero, y el repo que dejé listo para la comunidad: github.com/manologarciadev/omarchy-t1-touchbar.


El problema: una laptop premium con la mitad del teclado inerte

Mi laptop principal es una MacBookPro13,2 (13" Touch Bar, finales 2016) con chip Apple T1. Hace un año le instalé Omarchy Linux y se convirtió en una bestia: arranque en 4 segundos, Hyprland fluido, cero bloatware. Pero había un elefante en la habitación: la Touch Bar no funcionaba.

Y no solo eso. En los modelos con Touch Bar, la tecla Esc y la fila F1-F12 no son físicas — viven en esa barra OLED. Así que mi laptop Linux no tenía Esc ni teclas de función. Para un usuario de vim, eso es prácticamente una emergencia médica.


Por qué no funciona "de fábrica"

El chip T1 es un coprocesador Apple que maneja la Touch Bar, el sensor de luz ambiental, y el Touch ID (lector de huella). En 2018 Apple lo reemplazó por el T2 — un coprocesador más capaz y mejor soportado por upstream.

Esto importa porque todos los drivers del kernel principal (appletbdrm, hid-appletb-bl, hid-appletb-kbd) son solo para T2. Si tienes T1 (2016–2017 con Touch Bar), no te sirven. Y el driver out-of-tree que sí funciona (parport0/mbp-t1-touchbar-driver) requiere una preparación que nadie te explica bien.

El bug fantasma: hid_sensor_hub

Peor aún, desde kernel 6.3 hay un bug que descubrí investigando: hid_sensor_hub secuestra automáticamente una de las interfaces HID del iBridge antes de que el driver T1 pueda leerla. El driver se carga "exitosamente" pero nunca ve la mitad de los datos del dispositivo. Sin error en dmesg, sin warning. Solo silencio.

El workaround (encontrado por la comunidad, documentado en michaelahess/macbook-pro-t1-touchbar-linux): blacklistear hid_sensor_hub y friends en el boot.


Lo que nadie te cuenta: el T1 está dormido hasta que macOS lo despierta

Aquí viene la parte más absurda de toda la historia. Cuando recibí mi MacBook, vino con macOS preinstalado. Pero yo quería solo Linux. Formateé, instalé Omarchy, y arranqué.

Pero el T1, en ese proceso, se quedó en modo Recovery. Lo supe porque al hacer lsusb aparecía:

Bus 001 Device 003: ID 05ac:1281 Apple Mobile Device (Recovery Mode)

En modo Recovery, el T1 está en DFU. No responde a ningún driver Linux — no como iBridge normal (sería 05ac:8600), no como teclado, no como nada. Literalmente un SoC Apple esperando instrucciones que nunca llegaron.

El T1 solo se inicializa arrancando un macOS completo hasta el escritorio. Y no basta con el Recovery picker — verifiqué esto de la peor forma posible: lo hice, instalé drivers, probé, seguía en recovery. Repetí. Finalmente leí la documentación.

Así que tuve que:

  1. Crear un USB booteable de macOS desde Linux (sin otra Mac disponible). Usé fetch-macOS-v2.py (del proyecto OSX-KVM) para descargar el BaseSystem.dmg directo de los servidores de Apple, lo convertí con dmg2img, y lo grabé a un USB con dd.
  2. Arrancar el MacBook con tecla Opción (⌥), seleccionar el USB.
  3. Borrar un disco externo como APFS/GUID, reinstalar macOS Monterey.
  4. Llegar al escritorio (crear cuenta local rápida).
  5. Esperar 1 minuto completo.
  6. Apagar correctamente desde el menú — no reiniciar, no volver a Recovery.

Tras eso, volví a Linux. Hice lsusb y ahí estaba:

Bus 001 Device 003: ID 05ac:8600 Apple, Inc. iBridge

T1 despierto. Después de mucho buscar el problema, la respuesta era "arranca un Mac una vez". Apple siendo Apple.


Compilando el driver

Con el iBridge visible, llegó la parte divertida: compilar el driver T1 out-of-tree.

bash
git clone https://github.com/parport0/mbp-t1-touchbar-driver
cd mbp-t1-touchbar-driver
make
sudo make install

Tres módulos: apple-ibridge.ko (el multiplexer USB), apple-ib-tb.ko (la barra táctil), apple-ib-als.ko (sensor de luz). Compiló limpio contra mi kernel 7.1.8.

Luego:

  1. Blacklist hid_sensor_hub, hid_sensor_als, hid_sensor_trigger, hid_sensor_iio_common en /etc/modprobe.d/.
  2. Carga automática de los drivers al boot via /etc/modules-load.d/.
  3. Udev rule para que apple-ibridge se cargue al detectar el iBridge (importante tras suspend/resume).

Un reinicio después: lsmod | grep apple_ib muestra los tres módulos cargados. La Touch Bar responde. Las teclas Esc, F1-F12, brillo, volumen, todo funciona. El LED de Fn muestra el modo actual.


El repo para la comunidad

Hice todo esto ad-hoc para mi máquina, pero pensé: si alguien más tiene una MacBook Pro T1 y Omarchy (o Arch), van a pasar por el mismo dolor de cabeza. Así que lo empaqueté:

github.com/manologarciadev/omarchy-t1-touchbar

Contiene:

  • install.sh — un script que verifica prereqs, clona el driver, compila, instala. También tiene uninstall para limpieza.
  • README.md — documentación con matriz de audiencia (T1 vs T2 vs sin-TouchBar), troubleshooting con collapsibles, links de referencia.
  • macos-usb.md — guía detallada para crear el USB booteable de macOS desde Linux (la que yo necesité y no encontré en un solo lugar).
  • LICENSE — GPL-2.0, misma licencia que el driver upstream de Ronald Tschalär.
bash
git clone https://github.com/manologarciadev/omarchy-t1-touchbar
cd omarchy-t1-touchbar
sudo ./install.sh
sudo reboot

Lo que todavía no funciona

Ser honesto: la pantalla OLED de la Touch Bar no muestra nada. El driver T1 solo controla las teclas predefinidas por firmware (Esc, F1-F12, brillo, vol). El render DRM arbitrario — el que en T2 permite cosas como mostrar widgets custom con tiny-dfrno existe para T1 todavía. Los drivers mainline son T2-only.

Para T1, la barra muestra la fila de teclas en negro. Funcional, no bonito. Si alguien quiere fondos de pantalla custom en la Touch Bar de un T1, está en territorio de investigación.


Invitación

Si tienes una MacBook Pro 2016 o 2017 con Touch Bar corriendo Omarchy, pruébalo. Si tienes T2, el camino es más fácil (wiki.t2linux.org lo cubre extensamente). Si no funciona como esperabas, abre un issue en el repo — incluye tu modelo (cat /sys/class/dmi/id/board_name), kernel, y la salida de lsusb, lsmod, dmesg.

Y si resultas ser uno de los poquísimos humanos con T1 + Linux en 2026, mándame una foto de tu Touch Bar funcionando. Llevo tiempo esperando ver a alguien más usar esto.


Links: