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 posterior ( http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x)
  • cargar extensiones de kernel autocompiladas (kexts) en OS X más reciente puede requerir cambios en la configuración del sistema a menos que tenga un certificado de firma kext y esté ejecutando 10.14 (High Sierra) o anterior.Para 10.11 (El Capitan) y posteriores arranque a la partición de recuperación y habilitar la carga de kexts sin firmar:
    csrutil enable --without kext

    o deshabilitar SIP todos juntos:

    csrutil disable

    para 10.,15 (Catalina) y posteriores también necesita deshabilitar el requisito de reinicio (también desde la partición de recuperación):

    spctl kext-consent disable

    si está ejecutando 10.10 (Yosemite) hay una opción boot-args para permitir la carga de kexts sin firmar. Ejecute lo siguiente y reinicie:

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

Building VirtualBox

  1. cambie al directorio raíz de las fuentes y ejecute el script configure:
    ./configure --disable-hardening

    puede configurar manualmente la arquitectura de destino con target target-arch=x86 o amd64, si ocurren algunos problemas relacionados con la arquitectura.,

Si encuentra todo lo que necesita, creará un archivo llamado !AutoConfig.kmk que contiene rutas a las diversas herramientas en su sistema. Además, creará un script de configuración de entorno llamado env.sh. este paso solo tiene que hacerse una vez (si algo cambia en la configuración de la herramienta de compilación, es posible que tenga que repetirlo, pero tenga en cuenta que ambos archivos de salida se sobrescribirán).

  1. siempre que desee construir VirtualBox, debe abrir un shell y obtener el script de configuración del entorno generado env.sh, i. e., do
    . ./env.sh
  1. para compilar el tipo
    kmk

    el valor predeterminado es una compilación de lanzamiento, si desea hacer una compilación de depuración o perfil agregue BUILD_TYPE=debug o BUILD_TYPE=profile como argumento para kmk o exportarlo como una variable de entorno en su shell.

Ejecutar VirtualBox

  1. cargar todos los módulos de Extensión del kernel. Estos se pueden encontrar en out / darwin.x86 / release / dist junto con un pequeño script (loadall.sh) para cargarlos. Ejecute y asegúrese de que los módulos se cargan correctamente.
  2. Enter out / darwin.x86 / release / dist / VirtualBox.,app / Contents / MacOS/.
  3. Ejecutar ./VirtualBox

creación de paquetes OSE para distribución

nunca deshabilite el endurecimiento (consulte la sección anterior) al crear paquetes para redistribución.

El endurecimiento necesita algunos pasos adicionales de configuración y posteriores a la compilación. El Directorio de instalación predeterminado de VirtualBox es/Applications / VirtualBox.app/. Si te gusta cambiar eso, por ejemplo en / Applications / OpenSource / VirtualBox.app/, necesita agregar lo siguiente a LocalConfig.kmk:

También puede tener sentido deshabilitar algunas de las cosas solo de desarrollo, como los casos de prueba., Agregue lo siguiente a LocalConfig.kmk:

VBOX_WITH_TESTSUITE=VBOX_WITH_TESTCASES=

a partir de VirtualBox 4.1, se crean Símbolos de depuración adicionales. Puede evitar esto agregando lo siguiente a LocalConfig.kmk:

kBuildGlobalDefaults_LD_DEBUG=

a continuación, reconstruya VirtualBox e instálelo en /Applications/OpenSource/. No hay soporte para instalar VirtualBox en un directorio de destino. Simplemente copie los archivos al destino. Ahora asegúrese de que los stubs setuid tienen los permisos correctos:

otro requisito de endurecimiento es que cada componente de Ruta del directorio padre de VirtualBox.,app / es propiedad de root y no se puede escribir en el mundo. Asegúrese de que este es el caso.

rutas relativas vs. absolutas en las bibliotecas usadas

si ve algo como el siguiente error al iniciar VirtualBox, debe cambiar las bibliotecas usadas para usar rutas absolutas.

en Mac OS X no está permitido usar bibliotecas con rutas relativas para hacer referencia a otras bibliotecas cuando el ejecutable está setuid. Puede mostrar todas las bibliotecas vinculadas con el siguiente comando:

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

a continuación, asumiendo que Qt está instalado en /Applications/VirtualBox.,app / Contents/ Frameworks/, puede cambiar la ruta usando esto:

el primer comando cambia el identificador de la biblioteca en sí. El segundo cambia las referencias a otras bibliotecas. Allí, la primera ruta es la antigua ruta referenciada, la segunda es la nueva ruta y la última ruta es el archivo a cambiar (ver man install_name_tool). Tenga en cuenta que debe repetir esto con cada biblioteca involucrada (al menos VirtualBox.dylib, QtCore, QtGui, QtNetwork, QtOpenGl).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *