Introdução do tradutor
Há algum tempo , Habré já escreveu sobre o projeto Asahi Linux .
Resumindo, esta Ă© uma tentativa de rodar o Linux em um novo Mac com arquitetura M1.
2 meses se passaram desde o inĂcio do projeto, e os desenvolvedores prepararam um relatĂłrio sobre o trabalho realizado , que, alĂ©m da lista de feitos e nĂŁo feitos, permite que vocĂŞ fique um pouco imbuĂdo da essĂŞncia do trabalho de a mistura de um engenheiro de sistema e um mecanismo reverso.
Eles escreveram um relatório bastante extenso, então sua tradução aparecerá em partes.
RelatĂłrio de progresso
Tenho o prazer de apresentar a vocês o primeiro relatório de progresso do Asahi Linux! Nestes relatórios, à imagem e semelhança do playbook Dolphin , falaremos mensalmente sobre o que se passa connosco.
Adicionar suporte Linux a um novo SoC não é uma tarefa fácil. Espero que esses relatórios dêem uma ideia de quanto é necessário para fazer o Linux rodar em um novo dispositivo.
Inicialmente, planejava fazer dois relatórios diferentes para janeiro e fevereiro, mas o desenvolvimento está ocorrendo em um ritmo tão acelerado que decidi fazer um relatório para os dois meses.
Pequena caixa sobre terminologia
Neste relatório, você encontrará os termos AArch64, ARM64 e ARMv8-A.
AArch64 é um conjunto de instruções ARM de 64 bits;
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 , ?
, , , . “ ?” 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. , !
< >