Apple Silicon
Co se dozvíte v článku
Před čtyřmi lety se společnost Apple odvrátila od procesorů Intel a uvedla čipsety pro své desktopové a přenosné počítače postavené na architektuře ARM a vycházející z jejích mobilních čipsetů. Označila je jako řadu M a od té doby uvedla již čtyři generace těchto čipsetů: M1 až M4.
Tyto čipsety od začátku zaujaly bezkonkurenčním poměrem výkon/spotřeba, kterým předběhla konkurenci o několik let. Qualcomm začal nabízet srovnatelný čipset pro notebooky teprve letos a generace procesorů od Intelu, která se vyrovná čipsetům od společnosti Apple alespoň ve výdrži, se na trh teprve dostává.
Projekt Asahi Linux
Linuxová komunita na sebe nenechala dlouho čekat a už na přelomu let 2020 a 2021 založil španělský vývojář Hector Martin projekt Asahi Linux, který si dal za cíl portovat Linux na počítače s novými procesory M. Sám měl předchozí zkušenosti s portováním Linuxu na uzavřená zařízení. Napsal první open-source ovladač pro Microsoft Kinect a portoval Linux na PlayStation 4.
Hector Martin zvolil cestu crowdfoundingu a v momentě, kdy měl zajištěných dostatek příspěvků, začal se projektu věnovat naplno. Krátce nato se k němu přidala Alyssa Rosenzweigová, která měla zkušenosti ze společnosti Collabora s vývojem ovladačů pro rodinu grafických karet Mali. Jejím cílem bylo vyvinout pomocí reverzního inženýrství linuxový ovladač pro grafickou část čipsetu.
Postupně se k nim přidalo dalších zhruba deset stálých vývojářů. Mezi nimi i Čech Martin Povišer, který pracoval na zvukovém ovladači. Vývoj je financovaný příspěvky z komunity jednotlivým vývojářům. Hector Martin má aktuálně necelých 600 platících podporovatelů na Patreonu a zhruba 450 na GitHubu.
Fedora Asahi Remix
Cílem projektu Asahi Linux je vytvořit podporu pro počítače s Apple siliconem obecně, vše se snaží poctivě upstreamovat. Došli ale k závěru, že finální produkt nechtějí nechat jen na distribucích, ale že je třeba nabídnout systém, který bude obsahovat nejposlednější změny v podpoře, bude upravený pro běh na tomto hardwaru, bude prostě vlajkovým systémem projektu.
Ze začátku byl Asahi Linux postavený na Arch Linuxu, ale později se Hector Martin rozhodl přejít na Fedoru a vytvořit Fedora Asahi Remix. Ten není nic jiného než Fedora pro ARM64, která má vlastní jádro sestavené s velikostí stránky 16 kB, protože takovou používá Apple silicon, zatímco sestavení linuxových distribucí pro ARM mají standardně velikost stránky 4 kB. Kromě toho jsou přidány repozitáře z Copru, do kterých vývojáři Asahi Linuxu posílají nejnovější změny, aby je měli uživatelé okamžitě a nemuseli čekat, až se k nim dostanou přes upstream a Fedoru.
Dále Remix přidává upravený software, který řeší konkrétní potřeby uživatelů nebo obchází omezení, která Linux na ARMu momentálně má. Steam je např. zabalený do emulátoru.
Výchozím desktopovým prostředím Fedora Asahi Remixu je KDE Plasma, ale vývojáři také plně podporují GNOME. Ostatní desktopová prostředí zpravidla fungují také, ale nejsou projektem podporovaná.
Nemusíte nutně použít Fedora Asahi Linux. Existují i další projekty, které se snaží nabídnout systém pro Apple silicon postavený na jiných distribucích. Fedora Asahi Remix ale pochází přímo od autorů, dostanou se k vám vylepšení a opravy nejrychleji a budete mít k dispozici plno vychytávek, s kterými přišla komunita kolem Asahi Linuxu.
Podporovaný hardware
Jak jsem psal v úvodu článku, Apple už uvedl čtyři generace čipsetů řady M, Asahi Linux ale aktuálně podporuje pouze dvě: M1 a M2. Když byla uvedená generace M3, padlo rozhodnutí se dál zaměřovat na dotažení předchozích generací a počkat, až vyjde Mac Mini s M3, protože to je jediný model, který se dá rozumně integrovat do buildovací a testovací infrastruktury. Nyní už je jasné, že Mini s M3 nebude a vývojáři vědí, že už není na co čekat a budou se muset obejít i bez něj. Nedá se ale očekávat, že M3 bude podporovaný v brzké době. Změny ve fungování hardwaru jsou docela významné.
Poznámka: Společnost Apple podle všeho vyvíjí linuxové ovladače pro svůj hardware pro interní účely. Pravidelně totiž hledá vývojáře, kteří mají pracovat na linuxových ovladačích pro Apple silicon. Spekuluje se, že pro vývoj, testování a ladění hardwaru používá díky jeho flexibilitě právě Linux. Pro Linux tedy existují ovladače přímo od výrobce, ale vzhledem k tomu, že nejsou dostupné, musí je komunita psát celé znovu.
Přesný seznam toho, co je u jednotlivých modelů podporované, naleznete na wiki projektu. Na následujících řádcích se zaměřím na ty nejpodstatnější věci.
GPU
Každý, kdo zná příběh open-source ovladače Nouveau a jeho letité stíhání proprietárních ovladačů od Nvidie a výkonnostní zaostávání, byl překvapený, jak rychle dokázal Asahi Linux dostat grafické ovladače do použitelného stavu. Odvedli výbornou práci, ale oproti vývojářům Nouveau ji měli taky notně ulehčenou.
GPU na Apple siliconu totiž obsahuje koprocesor ASC, který sám pokrývá celou řadu věcí, které by jinak musel řešit ovladač: power management, časování příkazů, obnova z chyb… Vývojáři Asahi Linuxu byli díky tomu schopní relativně rychle napsat ovladač, který je, co se týče grafického výkonu a spotřeby, srovnatelný s originálním ovladačem z macOS. Jen pro zajímavost jeho kernelová část byl prvním ovladačem v Linuxu napsaným v Rustu.
Dnes grafický ovladač podporuje OpenGL 4.6 a OpenGL ES 3.2. Relativní novinkou je také to, že verze pro M1 splňuje certifikaci pro Vulkan 1.3 a je tak prvním ovladačem na tomto hardwaru, který to dokáže.
Za zmínku také stojí, že vývojáři Asahi Linuxu už nepodporují X11. S ním sice ještě můžou komponenty Asahi Linuxu fungovat, ale jakékoliv problémy vývojáři už neřeší s tím, že X11 je na odchodu a oni se chtějí naplno zaměřit na Wayland.
Konektory
Asahi Linux dlouho nepodporoval žádný z grafických výstupů. Uživatelé to řešili připojováním externích monitorů přes DisplayLink. Zhruba před rokem přibyla podpora pro výstup přes HDMI, nejdříve byl podporovaný jen obraz, nedávno přibyl i zvuk. Konektory USB-C zatím běží jen v režimu USB 3. Thunderbolt není podporovaný, DP Alt Mode taky ne. Naopak funguje 3,5mm jack, čtečky SD karet a ethernetové porty v modelech, které je mají.
Zvuk
O tom, jak Hector Martin vyvíjel ovladač pro reproduktory, se dopodrobna rozepisoval na svém účtu na Mastodonu a bylo to velmi zajímavé číst. Notebookové reproduktory dnes nejsou jednoduchá zařízení, do kterých pošlete zvuk a hotovo. Mají několik částí, které se ovládají samostatně a musíte je sladit, navíc pro každý model jinak. Reproduktor tím můžete taky jednoduše poškodit. Než se Hector naučil reproduktory správně balancovat, několik jich zničil.
Samotný zvuk kalibroval za pomoci externího mikrofonu a během toho narazil i na chyby v originálním ovladači. Podle něj je výsledný zvuk v Linuxu nyní lepší než ten v macOS: je bez chyb v reprodukci a zní věrněji. Zvuk v macOS je laděný více na efekt.
Vestavěný mikrofon však stále nefunguje.
Webkamera
Webkamera funguje. Jen jsem u aplikace Snapshot narazil na to, že vybrala špatné zařízení a zobrazovala výstup z infračervené kamery, ne té standardní. Pro zajímavost ukázka od Eileen Yoon, jak vypadá surový výstup z webkamery Macbooku a jaký je výsledný obraz po postprocessingu:
Wi-Fi a Bluetooth
Wi-Fi a Bluetooth byly v Asahi Linuxu už od raných dob. Přece jenom bez nich by byl život s notebookem dost obtížný. Nedá se říct, že by se vývojáři setkali s něčím zcela novým. Apple používá modul od Broadcomu. Ten v M1 Pro se konkrétně hlásí jako BRCM4387.
Musím říct, že spolehlivostí Wi-Fi a Bluetooth jsem byl příjemně překvapený. Nikdy jsem s nimi neměl problém, fungují naprosto bez chyby. Ovladače jsou v jádře, takže člověk ani nemusí podstupovat martyrium s jejich instalací, jak jsme byli zvyklí u starších modelů od Broadcomu.
Klávesnice, touchpad, TouchID
Klávesnice funguje bez problémů včetně všech multimediálních a funkčních kláves. Stejně tak to je s touchpadem, který má Apple pořád nejlepší a funguje na výbornou i v Linuxu. Naopak TouchID nefunguje. Vývojáři Asahi Linuxu sice tvrdí, že nevidí nic, co by jim mělo v implementaci budoucí podpory TouchID bránit, ale tipuju, že tohle přijde na řadu až jako poslední.
Proč Linux na Apple siliconu?
Hodně lidí se ptá, proč vlastně instalovat Linux přímo na Apple silicon, když můžou používat systém optimalizovaný přímo od výrobce a Linux mít ve virtuálním stroji. Těch důvodů může být více. Někdo prostě chce Linux, je na něj zvyklý a je to pro něj nezbytná podmínka, ale zároveň chce bezkonkurenční poměr výkon/spotřeba, který mají aktuální macbooky.
Znám vývojáře, kteří používají Asahi Linux, protože pracují na projektech, kde je ARM cílová architektura, a macbooky jsou pro ně výkonné buildovací stroje. Ukazuje se, že Linux může být v operacích, které se používají při buildování, podstatně rychlejší. Hector Martin uvádí pár takových příkladů (v komentářích je dlouhá diskuse o tom, proč by tomu tak mohlo být). Sám jsem to nějak exaktně nesrovnával. Když jsem se o to pokoušel, ukázalo se, že není jednoduché najít software, který by se sestavoval identicky na Linuxu a macOS, aby výsledky byly srovnatelné.
Dalším důvodem jsou pro některé lidi funkce, které jsou v macOS softwarově omezené. Systém třeba neumožňoval vnořenou virtualizaci. Od verze macOS 15.0 už ji umí, ale pouze na M3 a novějších. V Linuxu funguje i se staršími generacemi.
V příštím článku se podíváme na instalaci a zkušenosti s provozem.