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 lub nowszy (http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x)
- załadowanie samodzielnie zbudowanych rozszerzeń jądra (kexts) NA nowszym OS X może wymagać zmian w konfiguracji systemu, chyba że masz certyfikat podpisywania kext i jest uruchomiony 10.14 (High Sierra) lub wcześniej.Dla wersji 10.11 (El Capitan), a później Uruchom partycję odzyskiwania i włącz Ładowanie niepodpisanych kextów:
csrutil enable --without kext
lub wyłącz wszystkie SIP razem:
csrutil disable
dla 10.,15 (Catalina) i później musisz również wyłączyć wymóg ponownego uruchomienia (również z partycji odzyskiwania):
spctl kext-consent disable
jeśli używasz wersji 10.10 (Yosemite), istnieje opcja boot-args umożliwiająca ładowanie niepodpisanych kextów. Uruchom następujące i uruchom ponownie:
sudo nvram boot-args="kext-dev-mode=1"
Building VirtualBox
- zmień katalog główny źródeł i uruchom skrypt configure:
./configure --disable-hardening
możesz ręcznie ustawić docelową architekturę za pomocą –target-arch=x86 lub amd64, jeśli wystąpią problemy związane z architekturą.,
jeśli znajdzie wszystko, czego potrzebuje, utworzy plik o nazwie !AutoConfig.kmk zawierający ścieżki do różnych narzędzi w systemie. Stworzy również skrypt konfiguracji środowiska o nazwie env.sh. ten krok musi być wykonany tylko raz (jeśli coś się zmieni w konfiguracji narzędzia do budowania, być może będziesz musiał to powtórzyć, ale pamiętaj, że oba pliki wyjściowe zostaną nadpisane).
- gdy chcesz zbudować VirtualBox, musisz otworzyć powłokę i pobrać wygenerowany skrypt konfiguracji środowiska env.sh, tj., do
. ./env.sh
- to build type
kmk
domyślną wartością jest budowanie release, jeśli chcesz wykonać debugowanie lub budowanie profilu, Dodaj BUILD_TYPE=debug lub BUILD_TYPE=profile jako argument do kmk lub wyeksportuj go jako zmienną środowiskową w swojej powłoce.
uruchamianie Virtualboxa
- załaduj wszystkie moduły rozszerzeń jądra. Można je znaleźć w out / darwin.x86 / release/dist wraz z małym skryptem (loadall.sh), aby je załadować. Wykonaj i upewnij się, że moduły ładują się pomyślnie.
- Enter out/darwin.x86 / release/dist / VirtualBox.,app / Contents / MacOS/.
- Run ./VirtualBox
budowanie pakietów OSE do dystrybucji
nigdy nie wyłączaj hartowania (patrz poprzednia sekcja) podczas tworzenia pakietów do redystrybucji.
Utwardzanie wymaga dodatkowej konfiguracji i post-build ' u. Domyślnym katalogiem instalacyjnym VirtualBox jest / Applications / VirtualBox.app/ Jeśli chcesz to zmienić, powiedzmy w /Applications/OpenSource / VirtualBox.app/, musisz dodać następujące do LocalConfig.kmk:
może mieć również sens wyłączenie niektórych rzeczy tylko dla programistów, takich jak przypadki testowe., Dodaj następujące do LocalConfig.kmk:
VBOX_WITH_TESTSUITE=VBOX_WITH_TESTCASES=
począwszy od VirtualBox 4.1, tworzone są dodatkowe symbole debugowania. Możesz temu zapobiec, dodając następujące elementy do LocalConfig.kmk:
kBuildGlobalDefaults_LD_DEBUG=
następnie Przebuduj VirtualBox i zainstaluj go w /Applications/OpenSource/. Nie ma żadnego wsparcia dla instalacji VirtualBox w katalogu docelowym. Wystarczy skopiować pliki do miejsca docelowego. Teraz upewnij się, że stuby setuid mają odpowiednie uprawnienia:
kolejnym wymogiem hartowania jest to, że każdy komponent path katalogu nadrzędnego VirtualBox.,app / jest własnością roota i nie można go zapisać na świecie. Upewnij się, że tak jest.
ścieżki względne i bezwzględne w używanych bibliotekach
Jeśli podczas uruchamiania VirtualBox pojawi się następujący błąd, musisz zmienić używane biblioteki, aby używać ścieżek bezwzględnych.
w systemie Mac OS X nie wolno używać bibliotek ze ścieżkami względnymi do odwoływania się do innych bibliotek, gdy plik wykonywalny jest setuid. Możesz wyświetlić wszystkie połączone biblioteki za pomocą następującego polecenia:
otool -L /Applications/VirtualBox.app/Contents/MacOS/VirtualBox.dylib
Next, zakładając, że Qt jest zainstalowany w/Applications / VirtualBox.,app / Contents / Framework/, możesz zmienić ścieżkę używając tego:
pierwsze polecenie zmienia identyfikator samej biblioteki. Drugi zmienia odniesienia do innych bibliotek. Tam pierwsza ścieżka jest starą ścieżką, druga jest nową ścieżką, a ostatnia jest plikiem do zmiany (zobacz man install_name_tool). Uwaga, musisz to powtórzyć z każdą biblioteką (przynajmniej VirtualBox.dylib, QtCore, QtGui, QtNetwork, QtOpenGl).