Linux fĂŒr macOS M1: Was das Asahi Linux-Team von Januar bis Februar 2021 getan hat

EinfĂŒhrung des Übersetzers

Vor einiger Zeit schrieb HabrĂ© bereits ĂŒber das Asahi Linux-Projekt .





Kurz gesagt, dies ist ein Versuch, Linux auf einem neuen Mac mit M1-Architektur auszufĂŒhren.





Seit Beginn des Projekts sind 2 Monate vergangen, und die Entwickler haben einen Bericht ĂŒber die geleistete Arbeit erstellt , der es Ihnen zusĂ€tzlich zu der Liste der erledigten und nicht erledigten Arbeiten ermöglicht, sich ein wenig mit dem Wesen der Arbeit von zu beschĂ€ftigen die Mischung aus einem Systemingenieur und einem RĂŒckwĂ€rtsmotor.





Sie haben einen ziemlich großen Bericht geschrieben, so dass seine Übersetzung in Teilen erscheinen wird.





Fortschrittsbericht

Ich freue mich, Ihnen den ersten Fortschrittsbericht zu Asahi Linux prĂ€sentieren zu können! In diesen Berichten werden wir nach dem Bild und der Ähnlichkeit des Dolphin-Spielbuchs monatlich darĂŒber sprechen, was mit uns passiert.





Das HinzufĂŒgen von Linux-UnterstĂŒtzung zu einem neuen SoC ist keine leichte Aufgabe. Ich hoffe, diese Berichte geben Ihnen einen Eindruck davon, wie viel Zeit erforderlich ist, um Linux auf einem brandneuen GerĂ€t zum Laufen zu bringen.





UrsprĂŒnglich hatte ich vor, zwei verschiedene Berichte fĂŒr Januar und Februar zu erstellen, aber die Entwicklung schreitet so schnell voran, dass ich mich entschied, fĂŒr beide Monate einen Bericht zu erstellen.





Kleine Box zur Terminologie

In diesem Bericht werden Sie auf die Begriffe AArch64, ARM64 und ARMv8-A stoßen.





AArch64 ist ein 64-Bit-ARM-Befehlssatz.





ARM64 â€“ Linux 64- ARM.





ARMv8-A  ARM, AArch64.





, , , “64- ARM”.





Asahi Linux , : Apple Apple Silicon .





, , -, :  kmutil configure-boot , -Apple .





, ,   – !





Apple Silicon Mac- , . , embedded (, Android , , iOS ), . , Apple , Intel Mac, .





, , Apple Silicon Mac- ? GUI , Boot Picker , ?





, , SSD, .





, , , . “ ?” Apple, .





Apple Silicon Mac .   iOS , , .





64- ARM : UEFI + ACPI( Windows Linux) ARM64 Linux boot protocol + DeviceTree  ( , U-Boot ). Asahi Linux, , , Apple Silicon Mac.





UEFI&ACPI , ARM . UEFI Forum. x86 , , ARM SoC, . , SoC , , . ACPI – , ACPI embedded , Windows. .





embedded ARM Linux DeviceTree, . , Android. DeviceTree , ACPI, , , ACPI .





DeviceTree , Linux, , , Linux. , Asahi Linux DeviceTree.





, Apple DeviceTree Apple Silicon, Apple Device Tree! ? : DeviceTree OpenFirmware, PowerPC, .





, , ADT embedded Linux , , : DeviceTree, , . , , . Linux macOS PowerPC Mac-, , Linux Apple ARM. , , Linux- Apple-, .





, Apple device tree, , , m1n1 – Apple Silicon . – Apple , , Linux.





m1n1 Linux (cat m1n1.macho initrd.bin devicetree.dtb Image.gz > m1n1-kernel.macho



), Mac kmutil



, Linux. Linux m1n1, :  





  • , .. chicken bit,





  • , iBoot ( Apple) : , framebuffer(, )





  • MMU. , , .





  • Apple Asahi Linux :)





  • watchdog timer. -, , .





  • , : Linux, DeviceTree () initramfs radmisk , , .





  • , chicken bits, spin-table ( - ), Linux.





  • ADT (Apple Device Tree) DeviceTree. , iBoot : , framebuffer, Linux random generator, . m1n1 , spin-table cmd .





  • Linux, - , .





, spin-table? Linux on ARM DeviceTree. , , : spin-table PSCI.





Spin-table – CPU (spinning). , Linux (), , . . : , . . , , - .





PSCI () – ARM ( ) . , EL3 (secure firmware or TrustZone), VM , EL2 ( EL1).





, ARM . , protection ring:  https://en.wikipedia.org/wiki/Protection_ring





-, , , . ring 0   , 1-2 , 3 – .





ARM :





, .  





, EL2 EL3 – ARMv8 CPU, , M1 EL3 . EL2 , VM Linux , Linux EL2, .





PSCI , .





, PSCI . , power management,   , . ( !).





, .





, , , devicetree, , UEFI!





ARM64 UEFI+DeviceTree, “ ”, GRUB . , m1n1 , ?





, , U-Boot. U-Boot Linux – U-Boot m1n1 – UEFI GRUB Linux.





, , Asahi Linux :





m1n1-> U-boot -> GRUB -> Linux





Apple-specific , :





  • SecureROM M1 SoC iBoot1 NOR flash .





  • iBoot1 SSD, , – Asahi Linux / m1n1 iBoot1





  • iBoot2, , , firmware , apple device tree, Mach-O ( m1n1)





  • m1n1 ADT, Linux (Flattened Device Tree), U-boot





  • U-boot, SSD, UEFI, devicetree m1n1





  • GRUB UEFI , , . , , grub-mkconfig /etc/default/grub.





  • -, Linux , DeviceTree, m1n1.





! -, embedded ( UEFI , ).





DragonBoard410c (Qualcomm ):





PBL->SBL->QSEE->QHEE->LK->U-boot->GRUB->Linux





, iBoot2 ( Apple, ), “macOS” iBoot2 , , mac ( macOS ). , , , , .





Linux m1n1, Mark Kettenis U-Boot OpenBSD.





, m1n1 , Linux. , !





< >








All Articles