Il porting di Linux sui Mac con Apple Silicon è passato in pochi anni da un esperimento di reverse engineering a una piattaforma desktop sorprendentemente matura. Il progetto Asahi Linux, nato nel 2021 con l’obiettivo di installare ed eseguire Linux sui sistemi basati su SoC Apple M-series, ha accompagnato l’evoluzione dell’hardware Apple attraverso più generazioni, fino all’attuale kernel Linux 6.19.
Con oltre 5 anni di sviluppo alle spalle e una crescente integrazione con il kernel mainline, il lavoro degli sviluppatori si concentra ora sull’espansione del supporto ai chip più recenti e sulla risoluzione delle limitazioni ancora presenti, in particolare su M3 e seguenti.
L’adozione dei Mac ARM per attività di sviluppo e come workstation personali ha reso il porting di Asahi una base tecnologica essenziale per chi vuole un ambiente Linux su hardware Apple, rendendo rilevanti anche dettagli come il supporto ai display esterni e alle GPU proprietarie.
Lo stato del supporto Apple Silicon con Linux 6.19
L’aggiornamento al kernel 6.19 segna un ulteriore passo avanti nella maturazione della piattaforma Asahi Linux, che oggi rappresenta una delle implementazioni desktop AArch64 più complete disponibili.
Le generazioni M1 e M2 sono ormai supportate in modo stabile con funzionalità fondamentali come storage NVMe, USB3, gestione energetica e driver per il controller di display DCP già integrati nel kernel o mantenuti nel ramo linux-asahi. Gli sviluppatori hanno concentrato il lavoro sull’integrazione delle patch a monte (upstreaming, cioè l’inserimento delle modifiche nel kernel), riducendo l’uso di componenti fuori dall’albero del sorgente (out-of-tree, moduli mantenuti separatamente dal progetto principale) e migliorando la compatibilità con distribuzioni come Fedora Asahi Remix.
Il passaggio da M1 a M2 ha richiesto soprattutto l’adattamento delle pipeline grafiche e del sottosistema PCIe, ma la vera sfida riguarda ora i chip M3 e successivi, caratterizzati da modifiche architetturali nei controller di memoria, nei blocchi GPU e nel display engine.
Il supporto M3 da parte di Asahi, al momento, si colloca a uno stadio simile a quello che M1 aveva nelle prime versioni beta di Arch Linux ARM, con funzionalità di base operative ma con driver ancora in fase di integrazione.
DisplayPort Alt Mode e uscita video USB-C
Uno degli aspetti più richiesti dagli utenti riguarda la possibilità di utilizzare monitor esterni tramite USB-C. Il supporto al DisplayPort Alt Mode è stato ottenuto attraverso un lungo lavoro di reverse engineering di diversi blocchi hardware Apple, tra cui DCP, DPXBAR, ATCPHY e ACE. L’implementazione attuale è disponibile in un ramo sperimentale noto come “fairydust”, non ancora completamente upstream e con alcune limitazioni operative.
Il sistema funziona abilitando una singola porta USB-C come uscita video e presenta limitazioni nella gestione di più monitor e nella negoziazione dei timing con alcuni display.
Restano inoltre criticità nella gestione del plug a caldo e nella resa cromatica in configurazioni particolari, dovute al comportamento del controller DCP e alla gestione delle modalità video proprietarie di Apple.
Supporto Apple M3: funzionalità presenti e lacune
Sui sistemi M3, il porting di Linux è già in grado di gestire input e storage con driver funzionanti per tastiera, touchpad, Wi-Fi, NVMe e USB3. Questi componenti si basano su patch locali del bootloader m1n1 e del kernel Asahi, in attesa di upstreaming. Il sistema può avviarsi fino a un ambiente desktop completo, come KDE Plasma, ma con limitazioni importanti.
L’assenza del driver GPU nativo per M3 comporta l’uso di rendering software tramite LLVMpipe, con impatti significativi su prestazioni e autonomia energetica.
La GPU Apple, basata su architettura proprietaria, richiede un reverse engineering complesso e l’implementazione di un driver Mesa dedicato, analogo a quanto già realizzato per M1 e M2 ma con modifiche sostanziali legate alla nuova generazione hardware.
Refresh rate a 120 Hz e miglioramenti al display interno
Un altro progresso rilevante riguarda la rimozione del limite dei 60 Hz sui MacBook Pro con pannelli ProMotion. Gli sviluppatori hanno introdotto il supporto per un refresh rate fisso di 120 Hz, senza ancora implementare il variable refresh rate (VRR). L’abilitazione è resa possibile tramite modifiche al driver appledrm e alla gestione dei formati pixel, inclusi YCbCr e ARGB a 30 bit.
L’adozione di frequenze più elevate migliora la fluidità dell’interfaccia ma ha effetti sul consumo energetico, dato che il sistema non dispone ancora di un controllo dinamico della frequenza.
Il passo successivo prevede l’integrazione del VRR e una gestione più efficiente dell’alimentazione attraverso i driver cpufreq e cpuidle, già presenti nelle versioni recenti del kernel.
Problemi aperti: webcam, GPU e power management
Tra le criticità ancora in fase di risoluzione figurano i problemi con le webcam integrate, legati alle scelte tecniche lato video fatte da Apple e ai codec proprietari. Il supporto per encoder e decoder video hardware, incluso ProRes, non è ancora disponibile su M3 e richiederà driver dedicati per i blocchi Video Encoder e Video Decoder del SoC.
Il power management, inoltre, resta un’area sensibile: la mancanza di driver completi per la GPU e per alcuni sottosistemi riduce l’autonomia e impedisce la piena gestione dello stato di sospensione. Il lavoro sul controller di alimentazione SMC e sui meccanismi di idle della CPU è in corso, con patch già in parte integrate nelle versioni recenti del kernel.
Prospettive di rilascio e strategia del progetto
Il team Asahi Linux ha chiarito che il supporto M3 sarà rilasciato solo quando raggiungerà un livello qualitativo paragonabile a quello attuale per M1 e M2.
La scelta di evitare release premature riflette la volontà di mantenere una reputazione di stabilità e completezza nella piattaforma desktop ARM64. Non esiste una tempistica ufficiale per la disponibilità del supporto M3 in versione stabile, anche se l’attuale stato di sviluppo indica che il passaggio a una release utilizzabile non richiederà tempi eccessivi.
L’obiettivo a medio termine rimane l’integrazione completa nel kernel mainline, riducendo la dipendenza da patch downstream e garantendo una compatibilità più ampia con le distribuzioni Linux standard.
Con l’arrivo dei chip M4 e M5, il lavoro svolto su M3 fungerà da base per accelerare il supporto alle generazioni successive, consolidando la presenza di Linux sui dispositivi Apple Silicon.