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 o versioni successive (http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x)
  • Il caricamento di estensioni del kernel autocostruite (kexts) su OS X più recenti può richiedere modifiche alla configurazione del sistema a meno che non si disponga di un certificato di firma kext e sia in esecuzione 10.14 (High Sierra) o versioni precedenti.Per 10.11 (El Capitan) e versioni successive avviare la partizione di ripristino e abilitare il caricamento di kexts non firmati:
    csrutil enable --without kext

    o disabilitare SIP tutti insieme:

    csrutil disable

    Per 10.,15 (Catalina) e versioni successive è inoltre necessario disabilitare il requisito di riavvio (anche dalla partizione di ripristino):

    spctl kext-consent disable

    Se si esegue 10.10 (Yosemite) esiste un’opzione boot-args per consentire il caricamento di kexts non firmati. Eseguire le seguenti operazioni e il riavvio:

    sudo nvram boot-args="kext-dev-mode=1"

Edificio VirtualBox

  1. passare alla directory radice delle fonti ed eseguire lo script di configurazione:
    ./configure --disable-hardening

    È possibile impostare manualmente la destinazione di architettura –target-arch=x86 o amd64, se alcune architettura relativi problemi.,

Se trova tutto ciò di cui ha bisogno, creerà un file chiamato !AutoConfig.kmk contenente percorsi per i vari strumenti sul sistema. Inoltre, creerà uno script di installazione dell’ambiente chiamato env.sh. Questo passaggio deve essere fatto solo una volta (se qualcosa cambia nella configurazione dello strumento di compilazione, potrebbe essere necessario ripeterlo ma tenere presente che entrambi i file di output verranno sovrascritti).

  1. Ogni volta che si desidera creare VirtualBox, è necessario aprire una shell e generare lo script di installazione dell’ambiente generato env.sh i.e., fare
    . ./env.sh
  1. Per creare il tipo
    kmk

    L’impostazione predefinita è una release build, se si desidera eseguire una build di debug o di profilo aggiungere BUILD_TYPE=debug o BUILD_TYPE=profile come argomento per kmk o esportarlo come variabile di ambiente nella shell.

Eseguire VirtualBox

  1. Caricare tutti i moduli di estensione del kernel. Questi possono essere trovati in out / darwin.x86 / release / dist insieme a un piccolo script (loadall.sh) per caricarli. Esegui e assicurati che i moduli vengano caricati correttamente.
  2. Entrare fuori / darwin.x86 / release / dist / VirtualBox.,app / Contenuto/macOS/.
  3. Esegui ./ VirtualBox

Creazione di pacchetti O per la distribuzione

Non disabilitare mai l’indurimento (vedere la sezione precedente) quando si creano pacchetti per la ridistribuzione.

L’indurimento richiede alcune fasi aggiuntive di configurazione e post-build. La directory di installazione predefinita di VirtualBox è / Applications / VirtualBox.app/. Se ti piace cambiarlo, dì in / Applications / OpenSource / VirtualBox.app/, è necessario aggiungere quanto segue al LocalConfig.kmk:

Potrebbe anche avere senso disabilitare alcune delle cose di sviluppo, come i casi di test., Aggiungi quanto segue a LocalConfig.kmk:

VBOX_WITH_TESTSUITE=VBOX_WITH_TESTCASES=

A partire da VirtualBox 4.1, vengono creati simboli di debug aggiuntivi. È possibile impedirlo aggiungendo quanto segue a LocalConfig.kmk:

kBuildGlobalDefaults_LD_DEBUG=

Avanti ricostruisci VirtualBox e installalo in/Applications/OpenSource/. Non esiste alcun supporto per l’installazione di VirtualBox in una directory di destinazione. Basta copiare i file nella destinazione. Ora assicurati che gli stub setuid abbiano le autorizzazioni corrette:

Un altro requisito di hardening è che ogni componente del percorso della directory padre di VirtualBox.,app / è di proprietà di root e non mondo scrivibile. Assicurarsi che questo è il caso.

Percorsi relativi rispetto assoluti nelle librerie utilizzate

Se si vede qualcosa come il seguente errore all’avvio di VirtualBox è necessario modificare le librerie utilizzate per utilizzare i percorsi assoluti.

Su Mac OS X non è consentito utilizzare librerie con percorsi relativi per fare riferimento ad altre librerie quando l’eseguibile è setuid. È possibile visualizzare tutte le librerie collegate con il seguente comando:

otool -L /Applications/VirtualBox.app/Contents/MacOS/VirtualBox.dylib

Avanti, supponendo che Qt sia installato in / Applications / VirtualBox.,app / Contents / Frameworks/, puoi cambiare il percorso usando questo:

Il primo comando cambia l’identificatore della libreria stessa. Il secondo modifica i riferimenti ad altre librerie. Lì, il primo percorso è il vecchio percorso di riferimento, il secondo è il nuovo percorso e l’ultimo percorso è il file da modificare (vedi man install_name_tool). Nota, è necessario ripetere questo con ogni libreria coinvolta (almeno VirtualBox.per maggiori informazioni:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *