Linux para macOS M1: lo que hizo el equipo de Asahi Linux en enero-febrero de 2021 (parte 2)

Sigo traduciendo el informe del proyecto Asahi Linux.





Juguemos con hierro

m1n1 proviene de mini , una máscara mínima que desarrollé para Nintendo Wii. mini me ayudó mucho con los experimentos y como base para BootMii (para aquellos que poseen una Wii y entienden qué es qué - mini es lo que realmente se está ejecutando en la CPU ARM mientras estás en el menú BootMii).





Bien, entonces, ¿qué tiene esto que ver con el gestor de arranque Apple Silicon?





Bueno, mini era un programa pequeño y bastante simple que podía funcionar directamente con hardware y ejecutarse directamente en un sistema ARM de 32 bits sin bibliotecas u otras dependencias. Esta es una buena base para expandir la funcionalidad, por lo que la trasladamos a AArch64 y Apple Silicon, y llamamos al puerto m1n1.





Lo que resultó ser mucho más importante, m1n1 heredó una característica excelente de mini: dado que mini se lanzó en un procesador adicional que necesitaba ser controlado desde el procesador principal, tiene un RPC incorporado que se ejecuta a través del puerto serie. Esto significa que podemos controlar mini y m1n1 desde otra computadora directamente durante la operación. m1n1 permite usar scripts de Python que se ejecutan en otra máquina para manipular el hardware en la Mac m1 de destino. ¡Incluso puede hacerlo directamente desde la terminal interactiva ! Para ser honesto, esta es una herramienta bastante universal para experimentar con hardware que, por pura coincidencia, también actúa como un gestor de arranque de Linux en nuestro caso.





m1n1 Apple . , , x86 Rosetta. Apple-specific CPU . , . , , , Linux .





M1 Mac Mini m1n1 7 , , ( BSOD :) ). m1n1 , : m1n1, kmutils, .





m1n1 Apple ARM, , (, ), .





m1n1, . - , macOS . , Apple, , , , . - nouveau, nvidia gpu - Linux , .





, - , . M1 mac? :)





UART!

, . , UART , , . CPU, , .





, - RS-232 COM , . ( ) , , , .





M1 ?





, M1 , - USB-C ! , , USB-PD. USB-PD (Power delivery) Type C . USB , , , - , , , DisplayPort, , , . Type C . , ( ), DFU recovery mode, (I2C).





vdmtool: , Arduino, USB-PD PHY . , , , . : , USB-PD PHY, Type C, 1.2 UART , .





: m1 - ! , , Type C (SuperSpeed / USB3.0) macvdmtool. m1 , . API , , .





, , mac m1 - :) USB-PD , . , , , , Android . USB-PD , , , . , ! - , 1 .





, , : , 150/c. M1 , , USB , ( iPhone), USB- (CDC-ACM), . USB, Type C ( CtoA) . USB , - . - , - . m1n1, , : Type C UART USB . , , Linux, .





Agregaremos esto a m1n1 en las próximas semanas, ¡así que estad atentos!





<Continuará>








All Articles