Introducción

El ecosistema Linux en hardware Apple Silicon lleva años en un proceso de maduración que exige ajustes continuos en el núcleo (kernel), herramientas de instalación y drivers de hardware. La transición de la serie 6.x a Linux 7.0 marca un hito técnico, pero también expone desafíos operativos para equipos de DevOps e infraestructura que gestionan estos dispositivos en entornos de producción o desarrollo. Por ejemplo, equipos que usan scripts de automatización con Bash o Python para provisionar dispositivos Apple Silicon deben revisar cómo interactúan con el instalador de Asahi, especialmente si dependen de versiones antiguas del kernel o firmwares específicos.

Uno de los problemas recurrentes en este contexto es la sincronización entre componentes críticos como m1n1 (el cargador de arranque de bajo nivel para Apple Silicon), los árboles de dispositivos (Devicetrees) y las imágenes de kernel. Hasta hace poco, esta desconexión impedía bootear kernels recientes desde medios live, como se documentó en el reporte de progreso de Asahi correspondiente a Linux 6.18. La falta de actualizaciones del instalador durante casi dos años —con la última versión oficial en junio de 2024— generó incompatibilidades y obligó a los mantenedores de distribuciones alternativas a trabajar con soluciones provisorias.

Ahora, con Linux 7.0, el instalador de Asahi (versión 0.8.0) incorpora mejoras arquitectónicas que resuelven problemas crónicos de sincronización, automatizan el despliegue de imágenes y expanden la compatibilidad a nuevos modelos, como el Mac Pro. Estas novedades no solo facilitan la instalación, sino que también abren puertas para integrar funcionalidades avanzadas de hardware, como el manejo de sensores ambientales y la gestión de energía a nivel de SoC.

Qué ocurrió

1. Cambios en el instalador de Asahi y automatización del despliegue

El instalador de Asahi es un componente crítico para distribuir Linux en dispositivos Apple Silicon. Hasta ahora, su arquitectura era una estructura compleja tipo Rube Goldberg:

  • Estructura del paquete: Un script principal escrito en Python (con dependencias mínimas), acompañado de scripts en Bash para bootstrap inicial.
  • Flujo de instalación: Al ejecutar curl | sh, se descarga un script de bootstrap que a su vez descarga un bundle desde un CDN. Este bundle incluye:
– Un intérprete de Python empaquetado.

– Una versión reducida de la biblioteca estándar de Python.

– El binario m1n1 en stage 1 (cargador de arranque).

– El instalador propiamente dicho.

Hasta marzo de 2025, el proceso para liberar una nueva versión del instalador requería:

  • Modificar manualmente el manifest de imágenes instalables en el repositorio asahi-installer-data.
  • Actualizar el CDN con permisos administrativos.
  • Esto generaba cuellos de botella: la última versión estable (0.7.x) databa de junio de 2024, y las actualizaciones manuales eran propensas a errores.
Solución implementada:

El equipo de Asahi migró el manifest de imágenes al repositorio asahi-installer-data y automatizó el despliegue mediante GitHub Actions. Ahora:

  • Cada push a la rama main del repositorio asahi-installer dispara un workflow que:
– Compila el instalador.

– Sube el artefacto a dos endpoints:

https://alx.sh/dev (para builds de desarrollo).

https://alx.sh (para releases oficiales).

  • Cada tag en GitHub genera un instalador listo para producción, incluyendo soporte para Mac Pro y actualizaciones de firmware.

Este cambio reduce el tiempo de despliegue de semanas a minutos y elimina la dependencia de permisos manuales en el CDN.

2. Soporte para sensores ambientales True Tone y gestión de firmware

Los dispositivos Apple, especialmente los iPhone y MacBooks, incluyen sensores de luz ambiental (ALS) que ajustan el brillo y la temperatura de color de la pantalla según las condiciones lumínicas del entorno. Esta funcionalidad, conocida como True Tone, no estaba disponible en Linux hasta ahora porque requiere:

  • Un driver específico para comunicarse con el sensor ALS a través de I²C.
  • Firmware calibrado, que Apple distribuye como binarios propietarios y que deben extraerse desde macOS durante la instalación.

El instalador de Asahi ahora recopila automáticamente este firmware y lo almacena en la partición EFI (ESP) del dispositivo. Un módulo de Dracut montará este firmware en /lib/firmware/asahi/ durante el arranque, permitiendo que el driver del sensor funcione correctamente.

Detalles técnicos:
  • El driver para el ALS fue desarrollado por chaos_princess y ya está integrado en el kernel.
  • La calibración se realiza mediante un blob binario (als-firmware.bin), que se copia desde macOS durante la instalación.
  • Para evitar conflictos futuros (como ocurrió con las cámaras web en versiones anteriores), el instalador ahora soporta actualizaciones de firmware posteriores a la instalación. Los usuarios pueden:
1. Bootear en macOS o macOS Recovery.

2. Re-ejecutar el instalador de Asahi.

3. Seguir las instrucciones para actualizar el firmware del ALS.

Este enfoque resuelve un problema recurrente: la obsolescencia del firmware en dispositivos ya instalados, que hasta ahora requería manipulación manual de la ESP.

3. Avances en gestión de energía con soporte para PMP

Uno de los mayores desafíos en Apple Silicon es la gestión de energía, especialmente en modelos Pro/Max/Ultra. El SoC incluye dos componentes clave:

  • PMGR (Power Manager): Gestiona dominios de energía del SoC (encendido/apagado de regiones específicas) y es configurable en tiempo de ejecución. Es esencial para el arranque, suspensión y reanudación.
  • PMP (Power Management Processor): Un procesador dedicado que recibe informes de estado de otros bloques del SoC y de PMGR. Su rol exacto es opaco, pero se sabe que influye en la gestión de energía de la red Apple Fabric y el clocking.

Hasta Linux 7.0, PMP no estaba soportado en Linux, lo que resultaba en un consumo excesivo en reposo. Por ejemplo:

  • En un MacBook Pro 14″ con M1 Pro, el consumo en reposo era de ~2.5W (sin soporte PMP).
  • Con el nuevo driver de PMP desarrollado por chaos_princess, el consumo cayó a ~2.0W, una reducción del 20% (≈0.5W).
Estado actual:
  • El soporte para PMP ya está en el kernel Linux (versión 6.11+).
  • No está habilitado por defecto en todas las máquinas porque aún no ha sido validado en todos los modelos soportados.
  • Para habilitarlo manualmente en dispositivos compatibles (ej. M1 Pro/Max/Ultra), los usuarios deben definir APPLE_USE_PMP en el árbol de dispositivos (Devicetree) de su modelo. Ejemplo para M1 Pro:
  /dts-v1/;
  /plugin/;

  / {
      fragment@0 {
          target-path = "/";
          __overlay__ {
              chosen {
                  apple,use-pmp;
              };
          };
      };
  };
  
  • Para dispositivos con M1 base (no Pro/Max/Ultra), el hardware PMP es incompatible. dd-dreams está trabajando en un driver alternativo, pero aún no está listo para producción.

Impacto para DevOps / Infraestructura / Cloud / Seguridad

DevOps e Infraestructura

El cambio más significativo para equipos de DevOps es la automatización del instalador de Asahi, que impacta directamente en pipelines de provisionamiento para dispositivos Apple Silicon:

  • Integración CI/CD: Ahora es posible incluir el instalador de Asahi en flujos automatizados. Por ejemplo, en un pipeline de GitHub Actions que provisiona un Mac Mini M2 para pruebas de integración:
  - name: Install Asahi Linux
    run: |
      curl -fsSL https://alx.sh | bash -s -- --yes
  
  • Compatibilidad con kernels recientes: La sincronización entre m1n1, Devicetrees y kernels (ej. 6.18+) permite bootear imágenes live sin errores, algo crítico para equipos que usan herramientas como PXE boot o kexec en entornos de desarrollo.
  • Soporte para Mac Pro: La expansión de compatibilidad a modelos de servidor (ej. Mac Pro con M2 Ultra) facilita la adopción de Linux en entornos de infraestructura heterogénea.
Riesgo mitigado:

Antes, equipos que usaban versiones antiguas del instalador (pre-0.8.0) podían fallar al bootear kernels ≥6.18, lo que forzaba a mantener imágenes personalizadas de Linux para Apple Silicon. Con la nueva versión, este problema desaparece.

Cloud y Seguridad

Aunque Linux 7.0 no introduce cambios directos en entornos cloud públicos (como AWS o Azure), sí afecta a equipos que usan nubes privadas o bare metal con hardware Apple Silicon. Por ejemplo:

  • Seguridad del firmware: La gestión automatizada de firmware (ALS, Bluetooth, etc.) reduce el riesgo de que usuarios finales ejecuten versiones obsoletas con vulnerabilidades conocidas. El instalador ahora verifica y actualiza automáticamente los blobs necesarios.
  • Consumo energético en servidores: En entornos donde se usan Mac Mini o Mac Studio como nodos de cómputo (ej. CI/CD, bases de datos ligeras), la reducción del 20% en consumo en reposo con PMP puede traducirse en ahorros significativos en costos de electricidad.
  • Cumplimiento normativo: Para organizaciones con políticas de secure boot o measured boot, la integración del instalador con la ESP y el soporte UEFI-only facilita la auditoría de la cadena de arranque.

Detalles técnicos

1. Componentes afectados y versiones

ComponenteVersión afectadaRolFuente
BLOCK300.8.0 (2025-03)Instalador de Linux para Apple Silicon[asahilinux.org](https://asahilinux.org/2026/04/progress-report-7-0/)
BLOCK311.5.2Cargador de arranque stage 1[GitHub – m1n1](https://github.com/AsahiLinux/m1n1)
Kernel Linux≥6.11Soporta PMP y drivers de ALS[kernel.org](https://www.kernel.org/)
Dracut≥058Módulo para montar firmware en BLOCK32[GitHub – dracut](https://github.com/dracut-ng/dracut-ng)
DevicetreesActualizados en 2025Definen hardware específico (ej. BLOCK33)[asahi-linux/linux](https://github.com/AsahiLinux/linux)
### 2. Vectores de sincronización resueltos

El problema de desincronización entre Devicetrees y kernels era crítico porque:

  • Los kernels recientes (ej. 6.18) requieren cambios en m1n1 y en los bindings de Devicetree para el subsistema USB de Apple.
  • Antes, el instalador empaquetaba Devicetrees específicos de una versión de kernel. Si un usuario intentaba bootear un kernel más nuevo desde un medio live (ej. un LiveCD de Gentoo Asahi), el dispositivo fallaba con errores como:
  ERROR: Device Tree blob version mismatch
  Expected: 17.0, Got: 16.0
  
  • La solución fue mover el manifest de imágenes al repositorio asahi-installer-data, permitiendo:
– Actualizaciones independientes del código del instalador.

– Despliegue automático mediante GitHub Actions.

– Versiones de Devicetrees empaquetadas por kernel específico.

Qué deberían hacer los administradores y equipos técnicos

1. Actualizar el instalador de Asahi

Si actualmente usas el instalador de Asahi (versión ≤0.7.x), actualiza a 0.8.0 para evitar problemas de compatibilidad con kernels ≥6.18:

# Descargar e instalar la última versión
curl -fsSL https://alx.sh | bash -s -- --yes
Verifica la versión instalada:
asahi-installer --version
# Debe mostrar: asahi-installer 0.8.0

2. Habilitar soporte para True Tone (ALS)

Si tu dispositivo tiene un sensor de luz ambiental (ej. MacBook Pro con M1/M2), sigue estos pasos para habilitar True Tone:

  1. Ejecuta el instalador en modo actualización:
   curl -fsSL https://alx.sh | bash -s -- --firmware
   
  1. Reinicia y verifica que el driver esté cargado:
   ls /sys/bus/i2c/devices/*/name | grep als
   # Ejemplo de salida: /sys/bus/i2c/devices/1-004c/name → "apple-als"
   
  1. Prueba el ajuste automático de brillo:
   sudo dmesg | grep -i "True Tone"
   # Debe mostrar: "True Tone ALS enabled"
   

3. Optimizar consumo energético con PMP

Si usas un dispositivo con M1 Pro, Max o Ultra (ej. MacBook Pro 14″/16″), puedes habilitar PMP para reducir el consumo en reposo:

  1. Verifica la compatibilidad:
   grep -i "apple,pmp" /proc/device-tree/compatible
   

Si el comando devuelve una salida como apple,t8112-pmp, tu dispositivo es compatible.

  1. Modifica el Devicetree:
– Edita el archivo de tu modelo en /boot/efi/DeviceTree/overlays/ (ej. t8112-j415.dts).

– Añade la siguiente línea en la sección chosen:

     chosen {
         apple,use-pmp;
     };
     

– Recompila el Devicetree y reinicia:

     dtc -I dts -O dtb -o /boot/efi/DeviceTree/overlays/t8112-j415-pmp.dtbo t8112-j415-pmp.dts
     sudo reboot
     
  1. Verifica el consumo:
   sudo powertop --auto-tune
   # Observa la métrica "Power usage (AC)" antes y después de habilitar PMP
   

4. Configurar pipelines CI/CD con el nuevo instalador

Para equipos que provisionan dispositivos Apple Silicon en entornos de desarrollo o pruebas, integra el nuevo instalador en tu pipeline:

Ejemplo en GitHub Actions:
name: Provision Mac Mini M2
on: [push]

jobs:
  provision:
    runs-on: macos-latest
    steps:
      - name: Install Asahi Linux
        run: |
          curl -fsSL https://alx.sh | bash -s -- --yes --noninteractive
      - name: Verify kernel
        run: |
          uname -r
          # Debe mostrar: 6.11.0-asahi-*
Notas:
  • Usa la flag --noninteractive para evitar interacciones en pipelines.
  • Asegúrate de que el dispositivo tenga macOS 14.4+ para extraer el firmware del ALS durante la instalación.

Conclusión

Linux 7.0 y el instalador de Asahi 0.8.0 representan un salto cualitativo en la madurez de Linux en Apple Silicon. Las mejoras no son solo cosméticas: resuelven problemas operativos críticos para equipos de infraestructura, como la sincronización entre kernels y Devicetrees, y abren puertas a funcionalidades avanzadas de hardware (True Tone, gestión de energía PMP).

Para equipos de DevOps, la automatización del instalador simplifica la gestión de dispositivos heterogéneos, eliminando cuellos de botella en despliegues. Para seguridad, la gestión automatizada de firmware reduce la superficie de ataque en entornos bare metal. Y para usuarios finales, las mejoras en consumo energético —especialmente en modelos Pro/Max— acercan Linux a los niveles de eficiencia de macOS.

El próximo paso lógico es la validación exhaustiva de PMP en todos los modelos soportados y su habilitación por defecto en el kernel. Mientras tanto, los administradores pueden empezar por actualizar el instalador y explorar las nuevas funcionalidades, siguiendo los pasos detallados en esta guía.

Fuentes

Por Gustavo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *