Linux for macOS M1:朝日Linuxチームが2021年1月から2月に行ったこと

翻訳者の紹介

少し前に、ハブレはすでに朝日Linuxプロジェクトについて書いています。





要するに、これはM1アーキテクチャを備えた新しいMacでLinuxを実行する試みです。





プロジェクトの開始から2か月が経過し、開発者は完了した作業のレポートを作成しました。これにより、完了した作業と完了していないリストに加えて、の作業の本質を少し理解することができます。システムエンジニアとリバースエンジンの混合。





彼らはかなり大きなレポートを書いたので、その翻訳は部分的に表示されます。





経過報告

AsahiLinuxの最初の進捗レポートをお届けできることをうれしく思います。これらのレポートでは、イルカのプレイブックのイメージと肖像で、私たちに何が起こっているかについて毎月話します。





Linuxサポートを新しいSoCに追加するのは簡単な作業ではありません。これらのレポートが、Linuxを新しいデバイスで実行するのにどれだけの時間がかかるかを理解してくれることを願っています。





当初は1月と2月に2つの異なるレポートを作成する予定でしたが、開発が急速に進んでいるため、両方の月に1つのレポートを作成することにしました。





用語に関する小さなボックス

このレポートでは、AArch64、ARM64、およびARMv8-Aという用語に出くわします。





AArch64は64ビットのARM命令セットです。





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