Linux für macOS M1: Was das Asahi Linux-Team von Januar bis Februar 2021 getan hat (Teil 2)

Ich übersetze weiterhin den Bericht des Asahi Linux-Projekts.





Lass uns mit Eisen spielen

m1n1 stammt von mini , einem minimalen Skin, den ich für die Nintendo Wii entwickelt habe. mini hat mir bei Experimenten und als Grundlage für BootMii sehr geholfen (für diejenigen, die eine Wii besitzen und verstehen, was was ist - mini ist das, was tatsächlich auf der ARM-CPU ausgeführt wird, während Sie sich im BootMii-Menü befinden).





Okay, was hat das mit dem Apple Silicon Bootloader zu tun?





Nun, mini war ein kleines und ziemlich einfaches Programm, das direkt mit Hardware arbeiten und direkt auf einem 32-Bit-ARM-System ohne Bibliotheken oder andere Abhängigkeiten ausgeführt werden konnte. Dies ist eine gute Basis für die Erweiterung der Funktionalität, daher haben wir sie auf AArch64 und Apple Silicon portiert und den Port m1n1 genannt.





Was sich als viel wichtiger herausstellte, erbte m1n1 eine Killer-Funktion von mini: Da mini auf einem zusätzlichen Prozessor gestartet wurde, der vom Hauptprozessor gesteuert werden musste, verfügt es über einen integrierten RPC, der über die serielle Schnittstelle ausgeführt wird. Dies bedeutet, dass wir mini und m1n1 direkt während des Betriebs von einem anderen Computer aus steuern können. Mit m1n1 können Python-Skripte verwendet werden, die auf einem anderen Computer ausgeführt werden, um die Hardware auf dem Ziel-m1-Mac zu bearbeiten. Sie können es sogar direkt vom interaktiven Terminal aus tun ! Um ehrlich zu sein, ist dies eher ein universelles Werkzeug zum Experimentieren mit Hardware, das in unserem Fall zufällig auch als Linux-Bootloader fungiert.





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, .





Wir werden dies in den kommenden Wochen zu m1n1 hinzufügen, also bleibt dran!





<Fortsetzung folgt>








All Articles