NixOS en un MacBook Pro M1 Max: guia completa
NixOS corriendo bare metal en un MacBook Pro 16" con M1 Max. Suena a locura pero en 2026 es perfectamente viable. Este post cubre el estado real del soporte, como se instala, que funciona y que no, y la configuracion completa con flakes.
El ecosistema: Asahi Linux + nixos-apple-silicon
Todo el soporte de Linux en Apple Silicon descansa sobre el trabajo monumental de Asahi Linux. El proyecto lleva activo desde 2021 y ha conseguido algo que muchos creian imposible: drivers open-source para hardware Apple con certificaciones oficiales de conformidad.
Para NixOS especificamente, existe nixos-apple-silicon (originalmente de tpwrules, migrado a nix-community en mayo 2025). No es un fork de NixOS sino un modulo que importas en tu flake. Incluye:
- Kernel Asahi Linux (parcheado para Apple Silicon)
- U-Boot como bootloader UEFI
- m1n1 (bootloader de bajo nivel de Asahi)
- Configuracion automatica de audio (PipeWire + speakersafetyd)
- Extraccion de firmware propietario (WiFi, Bluetooth)
- Overlay con paquetes Asahi-especificos
Los numeros hablan: 1395 estrellas, 142 forks, ultimo commit el 19 de febrero de 2026 (kernel asahi 6.18.10-1). Releases regulares cada pocas semanas.
Estado del hardware en el MacBook Pro 16" M1 Max
Vamos al grano. Datos directos de la documentacion oficial de Asahi.
Lo que funciona
- GPU: 32 cores GPU con drivers certificados conformant. OpenGL 4.6, OpenGL ES 3.2, OpenCL 3.0, Vulkan 1.4. Todos en Mesa mainline desde 25.1+. El M1 Max tiene 4x mas cores GPU que el M1 base. Rinde.
- Display Retina: upstream desde kernel 5.17. HiDPI nativo con Wayland. Control de brillo.
- Teclado y trackpad: funcionan via SPI. Retroiluminacion del teclado upstream desde 6.4.
- WiFi: upstream desde kernel 6.1. Broadcom.
Importante: usar
iwden vez dewpa_supplicant(no soporta WPA3 en Broadcom). - Bluetooth: upstream desde kernel 6.2.
- Audio: altavoces con DSP calibrado por modelo. Asahi dice que es "the best Linux laptop audio you've ever heard" y tiene razon. Jack 3.5mm y microfonos tambien funcionan.
- HDMI: puerto nativo del 16". Funciona con firmware 13.5. Audio HDMI en preview.
- Bateria: informacion completa + cpuidle con energy-aware scheduling. Mejora dramatica de temperatura y duracion.
- NVMe: upstream desde 5.19. El SSD interno vuela.
- Suspend/Sleep: funciona.
- Webcam: funciona.
- Lector SD: upstream desde 5.17.
Lo que NO funciona (todavia)
- Thunderbolt: WIP. Los puertos USB-C funcionan como USB2/USB3 y para carga, pero no hay Thunderbolt nativo. Esto implica: sin DP Alt Mode, es decir, monitores externos solo via HDMI.
- TouchID: TBA. Requiere SEP (Secure Enclave), que esta WIP.
- Decodificacion/codificacion de video por hardware: WIP/TBA. Software decoding funciona pero gasta mas CPU.
- ProRes Codec: TBA.
- Neural Engine: solo driver experimental out-of-tree.
La limitacion mas relevante para el dia a dia es Thunderbolt/DP Alt Mode. Si necesitas multiples monitores externos, solo puedes usar el HDMI integrado. Para desarrollo con un monitor externo via HDMI, es suficiente.
Instalacion paso a paso
Apple Silicon requiere siempre un macOS stub para arrancar. Sera dual boot si o si, aunque puedes dejar macOS en los huesos (~70-100GB).
Fase 1: Preparar UEFI desde macOS
# Desde Terminal.app en macOS (como admin)
curl https://alx.sh | shEl script te guia:
- Redimensionar la particion de macOS (dejar espacio para NixOS)
- Instalar en el espacio libre
- Elegir "UEFI environment only"
- Nombrar la instalacion "NixOS"
- Configurar seguridad (permissive mode, custom boot object)
Fase 2: Instalar NixOS desde USB
Construir la ISO del instalador (o descargarla de releases):
git clone https://github.com/nix-community/nixos-apple-silicon/
cd nixos-apple-silicon
nix build --extra-experimental-features 'nix-command flakes' \
.#installer-bootstrap -o installer -j4 -L
dd if=installer/iso/nixos-*.iso of=/dev/sdX bs=4M status=progressArrancar con USB, particionar, montar y configurar:
# Particionar
sgdisk /dev/nvme0n1 -n 0:0 -s
mkfs.ext4 -L nixos /dev/nvme0n1pX # sustituir X por la particion correcta
# Montar
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot
mount /dev/disk/by-partuuid/$(cat /proc/device-tree/chosen/asahi,efi-system-partition) /mnt/boot
# Generar config base
nixos-generate-config --root /mnt
cp -r /etc/nixos/apple-silicon-support /mnt/etc/nixos/Conectar WiFi con iwctl, instalar con
nixos-install, reiniciar. Hecho.
Configuracion con flakes
Aqui es donde NixOS brilla. Un flake para el MacBook Pro M1 Max:
# flake.nix
{
description = "NixOS en MacBook Pro M1 Max";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-apple-silicon.url = "github:nix-community/nixos-apple-silicon";
# NO usar inputs.nixpkgs.follows si quieres el cache binario
};
outputs = { nixpkgs, nixos-apple-silicon, ... }: {
nixosConfigurations.macbook = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
nixos-apple-silicon.nixosModules.apple-silicon-support
./hosts/macbook/configuration.nix
./hosts/macbook/hardware-configuration.nix
];
};
};
}La configuration.nix esencial:
{ config, pkgs, lib, ... }:
{
# Boot -- U-Boot NO soporta EFI variables
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false;
# Firmware WiFi (extraido de macOS durante instalacion)
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
# WiFi -- iwd, NO wpa_supplicant
networking.wireless.iwd = {
enable = true;
settings.General.EnableNetworkConfiguration = true;
};
# Cache binario de Asahi (MUY recomendado)
nix.settings = {
extra-substituters = [ "https://nixos-apple-silicon.cachix.org" ];
extra-trusted-public-keys = [
"nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20="
];
};
# Fix layout teclado (backtick/tilde swap)
boot.extraModprobeConfig = ''
options hid_apple iso_layout=0
'';
}Nota sobre inputs.nixpkgs.follows: si
haces que nixos-apple-silicon siga tu nixpkgs, el cache binario de
Cachix NO funcionara (los hashes cambian). Decidir entre coherencia de
versiones o velocidad de build. Compilar el kernel Asahi desde cero
lleva tiempo. Con el cache, es un download.
Lo que el modulo configura automaticamente
No hace falta tocarlo, pero conviene saberlo:
- Kernel Asahi con todos los parches
- initrd con modulos para NVMe Apple, DART, teclado SPI, SMC, etc.
- PipeWire con asahi-audio + speakersafetyd + bankstown-lv2
- Mesa de nixpkgs (con Asahi habilitado por defecto desde 25.1+)
- cpufreq governor
schedutil(energy-aware scheduling) - Parametros de kernel:
earlycon console=tty0 boot.shell_on_fail - udev rules para evitar cuelgues con el lector SD
Consideraciones de almacenamiento
Con 1TB de SSD interno:
- Dejar ~100GB para macOS (minimo funcional)
- ~900GB para NixOS root
- Un sistema NixOS con desktop ocupa ~20-30GB
- El Nix store con varias generaciones cabe sin problema
- ext4 o btrfs funcionan perfectamente
- El SSD tiene sectores de 4096 bytes (no 512). Las herramientas lo manejan correctamente
Detalle interesante: Apple's SSDs son lentos procesando flush
requests (decenas de ms). El kernel Asahi tiene un parametro
nvme_apple.flush_interval para coalescer flushes. El modulo
NixOS lo pone a 0 por seguridad.
M1 Max vs M1 base: que cambia
A nivel de drivers, nada. En la tabla de Asahi, M1 Pro/Max/Ultra comparten exactamente la misma columna (T600x). La diferencia es hardware puro:
| M1 | M1 Max | |
|---|---|---|
| CPU cores | 8 (4P+4E) | 10 (8P+2E) |
| GPU cores | 8 | 32 |
| RAM unificada | 8-16 GB | 32-64 GB |
| Puertos USB-C | 2 | 3 + MagSafe |
| HDMI | No | Si |
| Lector SD | No | Si |
| Chasis 16" | No | Si (mejor thermal) |
Mismos drivers, 4x GPU, mas puertos, mejor refrigeracion. Para desarrollo y compilaciones, la diferencia de CPU y RAM es significativa.
Conclusion
NixOS en un MacBook Pro M1 Max es una combinacion seria. Hardware potente con drivers open-source maduros, gestion declarativa del sistema con flakes, y un ecosistema de soporte activo. La unica limitacion real para el dia a dia es la falta de Thunderbolt/DP Alt Mode para monitores externos (solo HDMI).
Si ya usas NixOS con flakes, anadir un host Apple Silicon es anadir un modulo a tu flake. Si vienes de macOS, es el camino mas limpio hacia Linux en hardware Apple.
Recursos:
- nixos-apple-silicon en GitHub
- Tabla de soporte M1 en Asahi
- Fedora Asahi Remix (referencia de lo que funciona)
- Documentacion Asahi Linux
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario