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

  1. 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).

  1. gdy chcesz zbudować VirtualBox, musisz otworzyć powłokę i pobrać wygenerowany skrypt konfiguracji środowiska env.sh, tj., do
    . ./env.sh
  1. 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

  1. 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.
  2. Enter out/darwin.x86 / release/dist / VirtualBox.,app / Contents / MacOS/.
  3. 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).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *