macOS Catalina en Z390 Aorus Elite con OpenCore

OpenCore como gestor de arranque en lugar de Clover en un PC con placa base Z390 Aorus Elite, procesador i3 9100 Coffee Lake, tarjeta gráfica RX 580 y macOS Catalina, con SMBIOS de iMacPro1,1, con la tarjeta gráfica integrada deshabilitada en BIOS y mapa de puertos USB específico para esta placa base.

Clover y OpenCore

Hoy disponemos de 2 gestores para arrancar macOS en PCs compatibles: Clover y OpenCore (OC en adelante). Clover es un proyecto maduro, iniciado en 2011 por SergeySlice, capaz de arrancar macOS, Windows y Linux en modo UEFI; actualmente parece ir por detrás de OC, proyecto reciente iniciado en 2019 por vit9696 y Download-Fritz entre otros, unidos bajo el nombre Acidanthera.

Clover es más sencillo de configurar. Las versiones nuevas son lanzadas desde la web CloverHackyColor de GitHub. Dispone de paquete instalador. Lo he utilizado en el Hackintosh desde hace 5 años y hasta ahora su funcionamiento ha sido excelente.

OC es más difícil de configurar, el nº de opciones es mayor y tiene algunas nuevas que hay que aprender. Se considera que es ligeramente más rápido que Clover y que su capacidad de inyectar extensiones o parches en el arranque es mayor. Con la ventaja añadida de que algunas de las soluciones que han aparecido recientemente vienen de los programadores de OC por lo que parece que su evolución futura está más clara que en el caso de Clover.

He cambiado de Clover a OC en mi PC con placa Z390 Aorus Elite, i3 9100 Coffee Lake, tarjeta gráfica Radeon RX 580 y macOS Catalina. La curva de aprendizaje ha sido más inclinada que en el caso de Clover pero, una vez bien configurado, su funcionamiento es muy bueno. La impresión general es que algunas cosas requieren más trabajo en OC aunque también ofrece otras posibilidades de las que Clover carece. Sin olvidar que, a día de hoy, OC permite arrancar las versiones beta de macOS Big Sur pero Clover todavía no es capaz de hacerlo.

Migrar de Clover a OC 0.6.4

Las diferencias principales que hay que tener en cuenta son:

  • La carpeta EFI-Clover-ACPI-patched ahora es EFI-OC-ACPI
  • La carpeta EFI-Clover-drivers-UEFI ahora es EFI-OC-Drivers
  • La carpeta EFI-Clover-kexts-Other ahora es EFI-OC-Kexts
  • No hay carpeta EFI-Clover-Themes pero hay una carpeta EFI-OC-Resources que contiene carpetas y archivos requeridos para mostrar el menú de OC con interfaz gráfica
  • El archivo principal de configuración se llama igual, config.plist, está en EFI-OC-config.plist y su estructura es diferente a la de Clover. Una vez construido este archivo, existe una web de los autores de OC (OpenCore Sanity Checker) donde comprobar la integridad e idoneidad de config.plist, al menos en cuanto a los parámetros de la versión específica de OC utilizada que en el momento actual es 0.6.4; el sitio oficial del proyecto se llama Dortania.

Mis archivos de Clover y de OC 0.6.4

La carpeta ACPI de OC contiene los mismos archivos SSDT que la carpeta patched de Clover:

  • SSDT-PMC.aml: NVRAM nativa en sistemas que carecen de ella, por ejemplo chipsets Z390. Es equivalente a SSDT-NVRAM.aml, ambos tienen la misma función.
  • SSDT-EC-USBX.aml: para que los puertos USB3 funcionen con la energía correcta.
  • SSDT-PLUG.aml: para configurar el parámetro plugin-type=1 en el primer procesador (gestión de la energía en la CPU).
  • SSDT-USBW.aml: para salir del reposo con un solo toque en lugar de 2 toques en ratón o teclado USB.

La carpeta Drivers difiere de la de Clover, contiene 3 archivos:

  • HfsPlus.efi: para volúmenes con sistema de archivos HFS Plus. Puedes utilizar VBoxHfs.efi en su lugar pero no los 2 juntos a la vez.
  • OpenCanopy.efi: permite tener interfaz gráfica en el menú de OC.
  • OpenRuntime.efi: requerido para activar NVRAM entre otras funciones.

La carpeta kexts también conserva las mismas extensiones que en Clover:

  • AppleALC.kext
  • IntelMausi.kext
  • Lilu.kext
  • USBMap.kext
  • USBWakeFixup.kext
  • VirtualSMC.kext
  • WhateverGreen.kext
  • XHCI-unsupported.kext.

USBMap.kext define la asignación de los puertos USB de esta placa para no superar el límite de 15 impuesto por macOS. Esta extensión solamente tiene un archivo Info.plist (Mostrar contenido del paquete-Contents) con los puertos que macOS debe cargar al arrancar y en la sección IOKitPersonalities ha de hacer referencia al tipo de Mac que hemos configurado, por ejemplo, si en SMBIOS tenemos iMacPro1,1, en esta sección también ha de aparecer este modelo (en 2 líneas diferentes); modificando este parámetro podemos utilizar el mismo mapa de puertos USB con diferentes SMBIOS.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- (claves CFBundle) -->
    <key>IOKitPersonalities</key>
    <dict>
        <key>iMacPro1,1-XHC</key>
        <dict>
            <!-- (lista de puertos USB) -->
            </dict>
            <key>model</key>
            <string>iMacPro1,1</string>
        </dict>
    </dict>
    <key>OSBundleRequired</key>
    <string>Root</string>
</dict>
</plist>

USBWakeFixup.kext es complementaria de SSDT-USBW.aml.

La carpeta Resources contiene archivos necesarios para la interfaz gráfica del menú de OC. Interesan las carpetas Font, Label e Image. En Font están los tipos de letra para mostrar etiquetas debajo de los iconos. En Image están los iconos que OC va a utilizar para mostrar diferentes particiones y sistemas de archivos en el menú de arranque.
OpenCanopy.efi tiene un tema por defecto pero en la red hay sitios con otros temas de iconos. Chris1111, gurú del mundo Hackintosh, tiene en su sitio de GitHub unos temas para utilizar con OpenCanopy en OpenCore, a mí me gustan sobre todo 2: OC-Gold y OCApple-BlackWhite (en la imagen).

El archivo config.plist difiere del de Clover y requiere un aprendizaje específico, estas son las opciones que yo utilizo. Recuerda que son para la versión 0.6.4 de OC.

ACPI
Se añaden los archivos SSDT y se dejan los Quirks en blanco.

Booter
Se marcan estos Quirks:
AvoidRuntimeDefrag
Devirtualise Mmio
EnableSafeModeSlide

ProtectUefiServices
ProvideCustomSlide
RebuildAppleMemoryMap
SetupVirtualMap
SyncRuntimePermissions
.

DeviceProperties
En blanco. Se configura SMBIOS como iMacPro1,1, la tarjeta gráfica integrada deshabilitada en BIOS y se utiliza la tarjeta RX 580 como principal para tener codificación y descodificación de vídeo H264 y HEVC.

Kernel-Add
Se añaden las extensiones que tenemos en la carpeta kexts.

Kernel-Patch
Se añaden 2 parches: Hot plug SATA y TRIM for SSD (en la imagen se ve también el parche Orange icons pero en la carpeta EFI no está incluido).

Kernel-Scheme
FuzzyMatch seleccionado. KernelArch = x86_64 y KernelCache en Auto.

Kernel-Quirks
Se marcan estos Quirks:
CustomSMBIOSGuid
DisableLinkeditJettison
PanicNoKextDump
PowerTimeoutKernelPanic
.
Nota: mi PC tiene CFG desbloqueado (puedes leer sobre esto aquí) Si el tuyo lo tiene bloqueado, has de marcar 2 quirks más: AppleCpuPmCfgLock y AppleXcpmCfgLock.

Misc
Pestañas Boot-Debug-Security como en las imágenes.

NVRAM
OC suele crear las entradas requeridas para esta sección. En caso de que no sea así, se configura como en las imágenes. Hay 3 secciones: Add, Delete y LegacySchema.
En boot-args añade alcid=7 que es uno de los layout-id que van bien con el chip de audio, también puede ser alcid=11.
Nota: csr-active-config=67000000 equivale a SIP deshabilitado. Si deseas habilitar SIP, ha de ser csr-active-config=00000000.

PlatformInfo
Aquí se configuran los parámetros SMBIOS. Marca la casilla «Add this section to config.plist» en Generic. En la parte inferior marca todas las casillas (Automatic, UpdateDataHub, UpdateNVRAM, UpdateSMBIOS) y en UpdateSMBIOSMode selecciona Custom.

UEFI
Tiene 7 pestañas (APFS, Audio, Drivers, Input, Output, ProtocolOverrides y ReservedMemory) que se configuran como en las imágenes.
Nota: EnableJumpstart y JumpstartHotPlug han de estar seleccionados para poder arrancar desde la partición de recuperación (pestaña APFS).

En Tools pongo 2 herramientas, CleanNvram.efi y OpenShell.efi, los archivos han de estar alojados en EFI/OC/Tools.

Carpeta EFI

Puedes descargar mi carpeta EFI completa desde aquí.

2 comentarios en «macOS Catalina en Z390 Aorus Elite con OpenCore»

  1. Buenas noches,

    Tengo una placa base parecida, Gigabyte Z390 Aorus Pro. Entre tu ayuda y la del foro de Olarila, he conseguido instalar BigSur. Después de validar con Kext Updater, tengo dos errores:

    Kernel-> Add [2] descubre SMCProcessor.kext, pero su padre (VirtualSMC.kext) está colocado después o falta.
    Kernel-> Add [3] descubre SMCSuperIO.kext, pero su padre (VirtualSMC.kext) está colocado después o falta.
    ¡CheckKernel devuelve 2 errores!

    Sabes como los puedo solucionar? Por supuesto VirtualSMC.kext está instalado. No se cómo ponerlo por delante de los otros dos.

    Saludos y gracias por tu buen trabajo.

    Responder
    • Hola, Tomás. Hay 2 causas posibles (como más frecuentes).
      Las extensiones VirtualSMC y las que dependen de ella (SMCProcessor, SMCSuperIO…) han de ser de la misma versión, todas han de ser del mismo paquete descargado porque hay dependencias de ellas con VirtualSMC.
      Y en el archivo config.plist, en la sección Kernel – Add, donde tienes las diferentes kexts que vas a cargar desde OpenCore, VirtualSMC ha de estar antes que las otras SMC. Lo ideal es que en esta sección la primera kext sea siempre Lilu, después VirtualSMC y después de estas 2 ya importa menos el orden. ¿Las tienes así?
      Pero dame más información. ¿Qué versión de OpenCore estás usando?
      Si tienes dudas, manda tu archivo config.plist a eaperez arroba me punto com y lo reviso.

      Responder

Deja un comentario