Finalmente una prima versione funzionante di Linux su Apple M1

Riuscire a portare Linux su Apple M1 è un’impresa non da poco conto, ecco perchè dopo tutti questi mesi dall’uscita di Apple M1, Linux non è ancora disponibile sulla nuova piattaforma di Apple. Questo è dovuto dal fatto che il SoC di Apple presenta numerose tecnologie nuove e proprietarie, e di certo l’azienda di Cupertino non è collaborativa nell’aiutare lo sviluppo di soluzioni non ufficiali.

Tuttavia, gli sviluppatori sono riusciti ad eseguire Linux su un sistema basato su Apple M1, che a questo punto può essere utilizzata per le operazioni di base. Il progetto in questione è chiamato Asahi Linux, e mira proprio a portare Linux sui nuovi dispositivi Apple.

Linux Apple M1

Il lavoro è possibile anche grazie al fatto che Apple è unica nel mantenere le interfacce hardware compatibili tra diverse generazioni di SoC. Per esempio, la periferica che si occupa della comunicazione UART nell’M1 risale all’iPhone originale. E’ quindi possibile scrivere e/o adattere driver senza conoscere esattamente l’hardware che ci sta sotto. Il modo classico infatti di scrivere driver per nuovi SoC è conoscere esattamente l’hardware con cui devono lavorare (per esempio il numero di registri, porte di comunicazione verso l’esterno, modalità di utiizzo dei registri, ecc..) e mappare 1-1 i driver con l’hardware.

Linux su Apple M1: cosa funziona e cosa no?

Al momento della stesura di questo articolo, gli sviluppatori di Asahi Linux sono riusciti a far funzionare vari driver per quanto riguarda PCIe e USB-C per Linux 5.16. Sono anche riusciti a far funzionare altre periferiche del SoC con driver riguardanti il pinctrl (la cui sua funzionalità permette il controllo dei pin GPIO), il driver I2C, la gestione dell’alimentazione del dispositivo, il driver NVMe + SART e il driver DCP (controllo display).

“Con questi driver, i Mac M1 sono effettivamente utilizzabili come macchine desktop Linux. Anche se non c’è ancora l’accelerazione GPU, le CPU dell’M1 sono così potenti che un desktop con rendering software è in realtà più veloce su di esse rispetto, ad esempio, alle macchine Rockchip ARM64 con accelerazione hardware abilitata.”

Hector Martin, a capo del progetto
Linux Apple M1

Esatto, purtroppo manca ancora l’accelerazione hardware, e non si tratta di un lavoro di poco conto. Il SoC infatti integra al suo interno anche una GPU proprietaria, di cui non si sa molto e probabilmente è basata su PowerVR. Per ottenere il suo funzionamento è neccessario quindi un grosso lavoro di reverse engineering per la stesura di nuovi driver o adattamento di driver già esistenti che operano su architetture GPU simili.

Per rendere l’idea, un lavoro simile lo possiamo trovare sui classici desktop PC con schede grafiche Nvidia. Queste ultime, infatti, hanno un’architettura closed come anche i suoi driver. I driver nouveau sono un tentativo open source per il supporto alle schede grafiche Nvidia, ma nonostante tutto lo sforzo di reverse engineering portato avanti dalla comunity, essi non riescono minimamente ad avvicinarsi alle prestazioni e funzionalità offerte dai driver ufficiali. Fortunatamente i driver ufficiali vengono aggiornati costantemente e offrono prestazioni e funzionalità pari a quelli Windows. E’ un dispiacere che manchi un supporto del genere da parte di Apple.

“Una volta che avremo una base stabile del kernel, inizieremo a pubblicare un programma di installazione “ufficiale” che prevediamo vedrà un utilizzo più ampio tra gli avventurosi”