Prerequisites on Mac OS X
- 10.10.x (Yosemite) or later running on Intel hardware (PowerPC hardware is not supported nor is building an X11 variant).
Then perform the following command:
sudo port install libidl acpica yasm subversion doxygen texlive texlive-latex-extra texlive-fonts-extra x86_64-elf-gcc
Doxygen, texlive* and x86_64-elf-gcc are optional (first two for documentation, latter for the validation kit).
- Qt/Mac 5.,6 oder höher (http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x)
- Das Laden von selbst erstellten Kernelerweiterungen (kexts) unter neueren OS X erfordert möglicherweise Änderungen an der Systemkonfiguration, es sei denn, Sie verfügen über ein Kext-Signaturzertifikat und führen 10.14 (High Sierra) oder früher aus.Starten Sie für 10.11 (El Capitan) und höher auf die Wiederherstellungspartition und aktivieren Sie entweder das Laden von nicht signierten Kexts:
csrutil enable --without kext
oder deaktivieren Sie SIP alle zusammen:
csrutil disable
Für 10.,15 (Catalina) und später müssen Sie auch die Neustartanforderung deaktivieren (auch von der Wiederherstellungspartition):
spctl kext-consent disable
Wenn Sie 10.10 (Yosemite) ausführen, gibt es eine Boot-args-Option zum Laden von nicht signierten Kexts. Führen Sie Folgendes aus und starten Sie neu:
sudo nvram boot-args="kext-dev-mode=1"
VirtualBox erstellen
- Wechseln Sie in das Stammverzeichnis der Quellen und führen Sie das Konfigurationsskript aus:
./configure --disable-hardening
Sie können die Zielarchitektur manuell mit –target-arch=x86 oder amd64 festlegen, wenn architekturbezogene Probleme auftreten.,
Wenn es alles findet, was es braucht, wird es eine Datei namens erstellen !AutoConfig.kmk enthält Pfade zu den verschiedenen Tools auf Ihrem System. Außerdem wird ein Umgebungs-Setup-Skript namens erstellt env.sh. Dieser Schritt muss nur einmal ausgeführt werden (wenn sich in Ihrem Build-Tool-Setup etwas ändert, müssen Sie ihn möglicherweise wiederholen, aber beachten Sie, dass beide Ausgabedateien überschrieben werden).
- Wann immer Sie VirtualBox erstellen möchten, müssen Sie eine Shell öffnen und das generierte Setup-Skript für die Umgebung beziehen env.sh, i., tun
. ./env.sh
- build-Typ
kmk
Der Standardwert ist, um ein release zu erstellen, sollten Sie dies tun möchten, eine debug-oder Profil erstellen hinzufügen BUILD_TYPE=debug-oder BUILD_TYPE=Profil als argument kmk oder exportieren Sie es als Umgebungsvariable in der shell.
Ausführen von VirtualBox
- Laden Sie alle Kernel-Erweiterungsmodule. Diese finden Sie in out/darwin.x86 / release / dist zusammen mit einem kleinen Skript (loadall.sh) um sie zu laden. Führen Sie aus und stellen Sie sicher, dass die Module erfolgreich geladen werden.
- Geben Sie die out/darwin.x86/release/dist/VirtualBox.,app / Inhalt / macOS/.
- Ausführen ./ VirtualBox
Erstellen von OSE-Paketen für die Verteilung
Deaktivieren Sie niemals das Härten (siehe vorherigen Abschnitt), wenn Sie Pakete für die Umverteilung erstellen.
Das Härten erfordert einige zusätzliche Konfigurations-und Post-Build-Schritte. Das Standardinstallationsverzeichnis von VirtualBox ist /Applications / VirtualBox.App/. Wenn Sie das ändern möchten, sagen Sie in /Applications/OpenSource / VirtualBox.app/, Sie müssen der LocalConfig Folgendes hinzufügen.kmk:
Es kann auch sinnvoll sein, einige der Entwicklung nur Sachen zu deaktivieren, wie Testfälle., Fügen Sie LocalConfig Folgendes hinzu.kmk:
VBOX_WITH_TESTSUITE=VBOX_WITH_TESTCASES=
Ab VirtualBox 4.1 werden zusätzliche Debug-Symbole erstellt. Sie können dies verhindern,indem Sie LocalConfig Folgendes hinzufügen.kmk:
kBuildGlobalDefaults_LD_DEBUG=
Erstellen Sie VirtualBox neu und installieren Sie es in /Applications/OpenSource/. Es gibt keine Unterstützung für die Installation von VirtualBox in einem Zielverzeichnis. Kopieren Sie einfach die Dateien an das Ziel. Stellen Sie nun sicher, dass die Setuid-Stubs über die richtigen Berechtigungen verfügen:
Eine weitere Anforderung zum Härten ist, dass jede Pfadkomponente des übergeordneten Verzeichnisses von VirtualBox.,app/ ist im Besitz von root-und nicht-Welt beschreibbar. Stellen Sie sicher, dass dies der Fall ist.
Relative vs. absolute Pfade in den verwendeten Bibliotheken
Wenn beim Starten von VirtualBox der folgende Fehler angezeigt wird, müssen Sie die verwendeten Bibliotheken ändern, um absolute Pfade zu verwenden.
Unter Mac OS X ist es nicht erlaubt, Bibliotheken mit relativen Pfaden zum Verweisen auf andere Bibliotheken zu verwenden, wenn die ausführbare Datei setuid ist. Sie können alle verknüpften Bibliotheken mit dem folgenden Befehl anzeigen:
otool -L /Applications/VirtualBox.app/Contents/MacOS/VirtualBox.dylib
Weiter, vorausgesetzt, Qt ist in /Applications/VirtualBox installiert.,app / Contents/ Frameworks/, Sie können den Pfad ändern, indem Sie Folgendes verwenden:
Der erste Befehl ändert die Kennung der Bibliothek selbst. Die zweite ändert Verweise auf andere Bibliotheken. Dort ist der erste Pfad der alte referenzierte Pfad, der zweite ist der neue Pfad und der letzte Pfad ist die zu ändernde Datei (siehe man install_name_tool). Beachten Sie, dass Sie dies mit jeder beteiligten Bibliothek (mindestens VirtualBox) wiederholen müssen.dylib, QtCore, QtGui, QtNetwork, QtOpenGl).