Das Corellium-Entwicklungsteam hat einen Ubuntu-Port auf einem Mac Mini mit einem Apple M1-Prozessor veröffentlicht. Veröffentlichungen zum Thema erzählen nur über den Erfolg der Handwerker, geben aber keine Details preis. Ich habe mich aus eigener Erfahrung entschlossen, die Installation und Verwendung zu überprüfen. Ubuntu auf Mac Mini und beschrieb alle vorhandenen Fallstricke.
Die Autoren des Ubuntu-Ports für Mac, Corellium, befassen sich mit der Virtualisierung auf ARM64. Sie haben die Erfahrung und den Wunsch, solche gewagten Dinge zu tun.
Corellium hat zuvor an Project Sandcastle gearbeitet, mit dem Sie dank der Sicherheitsanfälligkeit checkm8 Android OS auf dem iPhone 7 installieren können. Die Installation von Android auf dem iPhone wurde seit dem iDroid Project und dem iPhone 3G nicht mehr durchgeführt. Wie das iDroid-Projekt bietet Project Sandcastle kein Betriebssystem für den täglichen Gebrauch, sondern einen massiven Open-Source-Proof-of-Concept.Solche Projekte sind aus entwicklungspolitischer Sicht sehr zeitaufwändig, für normale Benutzer schwierig zu bedienen und werden wahrscheinlich nicht von einem breiten Publikum verwendet. Trotzdem lohnt es sich, die Gelegenheit zu nutzen, um alles mit eigenen Augen zu sehen.
Was ist die Schwierigkeit
Weitere Informationen finden Sie im entsprechenden Artikel im Corellium-Blog.
Es ist kein Geheimnis, dass Apple von anerkannten Standards abweicht und häufig eigene Lösungen verwendet. Zunächst stellen wir fest, dass macOS etwas anders startet als Betriebssysteme der Windows- und * nix-Familien. Apple-Geräte verwenden iBoot als Bootloader. Es lädt einen Mach-O- Kernel , der komprimiert, signiert und in einem IMG4-Container gespeichert werden kann.
Komplexere Dinge beginnen, wenn es notwendig wird, den Rest der Prozessorkerne zu starten. Bei herkömmlichen ARM64-Prozessoren erfolgt dies über die Power State Coordination Interface (PSCI). In M1 werden andere Kerne jedoch mit einem Versatz gestartet, der im entsprechenden MMIO-Register (Memory-Mapped I / O) angegeben ist.
Aber auch das ist noch nicht alles. Apple hat einen eigenen Interrupt-Controller entwickelt, der keinem GIC-Standard (ARM Generic Interrupt Controller) entspricht. Außerdem verwenden vom Timer generierte Interrupts einen speziellen Typ von FIQ-Anforderungen (Fast Interrupt Request) anstelle von IRQs, die vom Linux-Kernel noch nicht unterstützt werden.
Für die Interaktion von Prozessorkernen untereinander werden spezielle Interrupts verwendet - Inter-Processor Interrupt (IPI), die ebenfalls in M1 mithilfe von FIQ generiert werden. Daher ist die FIQ-Unterstützung eines der wichtigsten Dinge in diesem Port.
Corellium-Mitarbeiter mussten einen eigenen Treiber für die Behandlung von Interrupts über FIQ entwickeln, einen "Wrapper" schreiben, mit dem alle Kernel ausgeführt werden konnten, und einige weitere Hardwareprobleme lösen. Erst dann konnten sie den Ubuntu-Kernel starten .
Das Starten des Kernels ist jedoch nur der Anfang. Für einen erfolgreichen Betrieb müssen Sie Eingabegeräte wie Tastatur und Maus anschließen. Es gibt drei Möglichkeiten: Verwenden Sie den USB-Host im M1-Chip (für ThunderBolt / USB Typ C), den xHCI-Host (für USB Typ A) oder Bluetooth.
Bluetooth läuft auf einem nicht standardmäßigen PCIe-ähnlichen Protokoll, sodass die Entwicklung eines benutzerdefinierten Kernelmoduls für ein unbekanntes Protokoll lange dauern kann. Corellium entschied sich für die Einrichtung von USB und konnte nach einigen Arbeitstagen die Eingabegeräte anschließen.
Zum Zeitpunkt dieses Schreibens ist der Proof-of-Concept bereits verfügbar, den Sie selbst ausprobieren können. Bitte beachten Sie, dass Sie alle weiteren Aktionen ausschließlich auf eigene Gefahr und Gefahr durchführen können.
Ubuntu installieren
Um Ubuntu verwenden zu können, benötigen wir Folgendes:
- Mac mit Apple M1-Prozessor (Mac Mini, Macbook Pro und Macbook Air werden unterstützt)
- ein Flash-Laufwerk mit einem USB-Typ-C-Anschluss mit einer Lautstärke von 16 GB oder mehr;
- USB-Tastatur und USB-Maus.
Als Flash-Laufwerk habe ich einen 32 GB großen Kingston DataTraveler microDuo 3C verwendet, der USB Typ A und USB Typ C unterstützt. Das Handbuch von Corellium besteht auf der Verwendung eines Flash-Laufwerks vom Typ C , da das Booten von Typ A zum Zeitpunkt dieses Schreibens nicht unterstützt wird. Ich habe die Maus und die Tastatur über USB Typ A angeschlossen.
Es gibt auch weniger offensichtliche Anforderungen. Zunächst muss auf Ihrem Mac Mini MacOS 11.2 oder höher ausgeführt werden. In älteren Betriebssystemversionen fehlt dem Dienstprogramm kmutil der Befehl configure-boot , der für den korrekten Austausch des Kernels erforderlich ist.
Sie müssen den Mac auch von Find My Mac lösen. Das Vorhandensein der "Bindung" ermöglicht es nicht, die Sicherheitssysteme vollständig zu deaktivieren und alle erforderlichen Befehle auszuführen.
Lassen Sie uns zunächst ein Image für das Flash-Laufwerk vorbereiten . Laden Sie das Archiv herunter und entpacken Sie es. Die Vorbereitung sollte im Mac-Terminal erfolgen, auf dem Ubuntu ausgeführt werden soll.
tar -xjvf ubuntu-20.10-preinstalled-desktop-arm64+raspi.img.bz2
Als nächstes erweitern wir das Image auf ein USB-Flash-Laufwerk:
sudo dd if=ubuntu-20.10-preinstalled-desktop-arm64+raspi.img of=/dev/rYOURUSBDISK bs=1m
Bitte beachten Sie, dass das USB-Flash-Laufwerk und nicht der Abschnitt darauf angegeben werden muss. Zum Beispiel / dev / rdisk6 . Kopieren Sie als Nächstes die Treiber in Wi-Fi:
cp -RLav /usr/share/firmware/wifi /Volumes/system-boot
Wenn Sie eine kabelgebundene Internetverbindung verwenden, können Sie ein USB-Flash-Laufwerk auf einem Computer unter Linux vorbereiten.Schließen Sie als Nächstes das USB-Flash-Laufwerk an den USB-Typ-C-Anschluss an, starten Sie das Wiederherstellungsbetriebssystem 1TR (One True Recovery) neu und öffnen Sie ein Terminal. Auf neueren Macs funktioniert dies folgendermaßen:
- Schalten Sie Ihren Mac aus.
- Halten Sie den Netzschalter gedrückt, bis der Text "Startparameter laden" angezeigt wird.
- Wählen Sie die Option "Optionen" und klicken Sie auf "Weiter".
- Öffnen Sie im oberen Menü "Dienstprogramme" - "Terminal".
Bitte beachten Sie, dass Recovery Sie beim Start nicht auffordern sollte, Ihr Betriebssystemkennwort oder Ihre Apple ID einzugeben. Wenn er dennoch fragt, müssen Sie Find My Mac in den macOS-Einstellungen deaktivieren.Installieren Sie den Ubuntu-Kernel:
bash -c "$(curl -fsSL https://downloads.corellium.info/linuxusbboot.sh)"
Skriptinhalt
#!/bin/sh
bputil -d | grep "CustomerKC" | grep -v "absent"
KC=$?
if [ $KC -eq 1 ]
then
bputil -n -k -c -a -s
csrutil disable
csrutil authenticated-root disable
fi
curl https://downloads.corellium.info/linux.macho > linux.macho
kmutil configure-boot -c linux.macho -v /Volumes/Macintosh\ HD/
echo "Kernel installed. Please reboot";
Dieses Skript überprüft die Startrichtlinien (BootPolicy) und deaktiviert bei Bedarf die MacOS-Integritätsprüfungssysteme. Das Skript lädt dann den Linux-Kernel im Mach-O-Format in das Stammverzeichnis des Systemlaufwerks und konfiguriert iBoot für den Linux-Kernel.
Während der Ausführung des Skripts werden Sie aufgefordert, ein Kennwort einzugeben, um die MacOS-Superuser-Rechte zu erhalten. Die von Ihnen ausgeführten Befehle warnen Sie auch, wenn die von Ihnen ausgeführten Aktionen die Sicherheit Ihres Mac erheblich beeinträchtigen. Aber wenn Sie Ubuntu ausführen möchten, müssen Sie dies als selbstverständlich betrachten.
Nachdem das Skript abgeschlossen ist, können Sie Ihren Mac neu starten. Anschließend wird Ubuntu 20.04 heruntergeladen.
Nutzungserfahrung
Das erste Starten von Ubuntu wird nicht sehr schnell sein. In den Download-Protokollen werden vier oder fünf Dienste "gelöscht" und sechs weitere "hängen". Das Booten von Ubuntu dauert relativ lange: einige Minuten. Darüber hinaus wird die Reaktionsfähigkeit des Betriebssystems zunächst sehr gering sein. Das Starten neuer Anwendungen, auch ohne grafische Shell, kann Minuten dauern. Dieses Problem löst sich kurz nach dem Laden von selbst.
Wie Sie sehen können, basiert das Bild auf Ubuntu für den Raspberry Pi . Daher haben die Root- und Pi-Benutzer im System das Kennwort Himbeere. Leider ist es unmöglich, mit der Screenfetch-Ausgabe einen schönen und anschaulichen Screenshot zu erstellen. Das Betriebssystem bestimmt nicht das Prozessormodell, daher enthält die Ausgabe nur gesichtsloses Unbekanntes.
Lscpu-Ausgabe
Architecture: aarch64 CPU op-mode(s): 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 1 Vendor ID: 0x61 Model: 1 Stepping: 0x1 CPU max MHz: 3204.0669 CPU min MHz: 600.0030 BogoMIPS: 48.00 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp flagm2 frint
Die Tatsache, dass dies ein Betriebssystem-Image für ein RPi ist, wird beim Versuch, Software über den Paketmanager zu installieren, deutlich. Er wird versuchen, nicht nur die vom Administrator benötigte Software zu installieren, sondern auch das Betriebssystem mit der Erstellung von initramfs für die "Himbeere" zu aktualisieren. Solche Aktionen führen trotz erfolgreicher Installation der angeforderten Software zu Fehlern in den Protokollen.
Wie erwartet enthält das Betriebssystem die minimal erforderlichen Treiber. Soundkarte, Bluetooth-Modul und Grafikbeschleuniger werden nicht unterstützt. Die meisten Systemdienstprogramme wie lspci , lsusb und lshw bieten nur sehr wenige Informationen zur Hardware.
Trotz vieler Einschränkungen habe ich mich für den Sysbench-Benchmark entschieden.
| Gerät | Berechnungen pro Sekunde |
|---|---|
| Mac Mini (Ubuntu 20.10) | 838 |
| Lenovo ThinkPad E14 (Ubuntu 20.04) | 483 |
Fazit
Die Installation alternativer Betriebssysteme auf einem Mac ist immer ein technisch anspruchsvoller Prozess. Die neuen M1-Prozessoren von Apple sind eine große Herausforderung für Enthusiasten.
Haben Sie jemals Windows oder Linux auf einem Mac verwendet?
Möchten Sie den neuen Mac Mini bei der Arbeit ausprobieren? Lassen Sie es uns kostenlos testen!
Folgen Sie einfach dem Link .