Linuxvärlden tar ännu ett steg närmare full kompatibilitet med Apples hårdvara. Nu är Device Tree-filer för M2 Pro, Max och Ultra på väg in i den officiella Linux-kärnan. Bakom insatsen står Asahi Linux-utvecklare som, trots bakslag och hårt motstånd, fortsätter att bana väg för att pingviner världen över ska kunna köra Linux sömlöst på Apples senaste datorer.

Arbetet med att få Apples nyare kretsar att fungera fullt ut i Linuxmiljö går framåt. Trots vissa bakslag för Asahi Linux-projektet – bland annat att en av de mest profilerade utvecklarna, Alyssa Rosenzweig, nyligen lämnat projektet – fortsätter teamet att driva på för att deras kod ska bli en del av den officiella Linux-kärnan.
I veckan skickade utvecklaren Janne Grunau in ett större paket med 37 patchar till Linux-kärnans sändlista. Syftet är att lägga till stöd för Apples M2 Pro, Max och Ultra genom de så kallade Device Tree-filerna, en nödvändig pusselbit för att hårdvaran ska kunna kommunicera med operativsystemet.
M2-familjen bygger vidare på samma design som tidigare M1-kretsar, och mycket av arbetet kan återanvändas. M2 Pro beskrivs som en nedskalad variant av M2 Max, medan M2 Ultra i praktiken är två ihopkopplade Max-kretsar. Genom justeringar i device tree – bland annat särskilda offsetar för minnesadresser och dubbla systemnoder – kan Linux förstå hur de olika chipen är organiserade.
För vanliga användare innebär detta att Linuxstödet för nyare Mac-datorer blir mer robust. Redan idag fungerar M2-baserade datorer med Asahi Linux, men utan dessa patchar finns stödet bara i projektets egen version, inte i den officiella Linuxkärnan.
En detalj återstår dock: PCI Express-stödet för Mac Pro med M2 saknas fortfarande. Två tekniska hinder gör att den delen ännu inte är redo för upstream, och därmed får just den maskinen vänta på full funktionalitet i Linux.
Faktaruta: Apple M2 Pro / Max / Ultra i Linux-kärnan
Läget just nu (30 aug 2025): 37 patchar är inskickade till Linux-kärnans sändlista för att upstreama Device Tree-filer (DT) för Apple M2 Pro (t6020), M2 Max (t6021) och M2 Ultra (t6022). Asahi Linux stöder redan dessa i sin egen distribution, men målet här är full mainline-integration.
Varför Device Tree?
- DT beskriver hårdvaran för kärnan: noder för bussar, enheter, klockor, avbrott, minnesområden m.m.
- Apple Silicon använder DT (inte ACPI) i Linux-världen, så korrekt DT är nyckeln till stabil boot, drivrutinsbindning och strömhantering.
- Upstream-DT betyder att vanliga distro-kärnor (Debian, Fedora, Arch m.fl.) kan boota Macar utan specialpatchar.
SoC-arkitekturen i korthet
t6020
(M2 Pro) = nedskaladt6021
(M2 Max). DT för Pro inkluderar Max och inaktiverar saknade block.t6022
(M2 Ultra) = två sammankoppladet6021
-kretsar (multi-die). Representeras i DT med två toppnivå-soc
-noder.- MMIO-offsets: Andra kretsens register får en konstant offset via DT-
ranges
för att separera adresserna. - Avbrott: Interrupt-kontrollern är multi-die-medveten. DT anger die-tillhörighet i avbrottsdefinitionerna.
- Återanvändning: Enhetsmallar från M1-familjen är SoC-agnostiska och kan återbrukas med smärre justeringar (t.ex.
pinctrl
ochgpio
-nummer). - Filer: SoC-specifika
*.dtsi
för t602{0,1,2} inkluderas av maskin-.dts
för respektive Mac-modell.
Boot-kedjan på Apple Silicon (översikt)
iBoot
(Apple) →m1n1
(Asahi trampoline/hypervisor) → ev.U-Boot
→Linux
+.dtb
m1n1
förser Linux med rätt DT och gör lågnivåinit (t.ex. PPL, cache/TLB, Apple-särdrag) hanterbara för kärnan.
Vad ingår i patchserien?
- Nya DT-filer för M2 Pro/Max/Ultra-baserade maskiner med struktur enligt
t600x
-familjen. - Definitioner av bussar, timers, klockträd, I/O-kontrollers och noder för kritiska periferi-block.
- Makrobaserade inkluderingar för att hålla nodetiketter unika mellan die 0/1 i M2 Ultra.
Vad ingår inte ännu?
- PCIe för Mac Pro (M2): Uteblir i denna omgång p.g.a. två kvarstående problem. Upstream-aktivering dröjer tills de är lösta.
Konsekvenser för användare
- Bättre out-of-the-box-stöd i vanliga distributioner när patcharna väl landar i mainline.
- Färre specialkärnor och snabbare uppströmsfixar (säkerhet, stabilitet, energi, prestanda).
Begrepp & “teknisk pornografi”
DT
/DTS
/DTSI
: Källor som kompileras tillDTB
och beskriver hårdvarugrafen.MMIO
&ranges
: Kartläggning av registerutrymmen; offsets separerar die 0/1 i Ultra.pinctrl
/GPIO
: Pinmux och I/O-linjeindex; mindre skillnader mellan M1↔M2 justeras i DT.- Multi-die interrupt: Avbrottsdomäner taggas per die; kontrollern routar korrekt oberoende av fysisk placering.
- SoC-agnostiska mallar: Drivrutiner matchar via
compatible
-strängar; gemensamma noder förenklar underhåll. - Upstreaming: Kod går från projektträd (Asahi) → LKML-granskning →
soc
/arm64
/dt
-träd → Linus’ mainline.
Berörda maskiner (exempel)
Macar med M2 Pro/Max/Ultra (t.ex. MacBook Pro-modeller, Mac Studio och Mac Pro med M2). Exakta maskin-.dts
pekar mot respektive t602x.dtsi
.
asahi@linux:~$