macOS Big Sur en Z390 Aorus Elite con OpenCore

Instalar macOS Big Sur 11.0.1 en la placa Gigabyte Z390 Aorus Elite + procesador i7 9700 Coffee Lake R + tarjeta gráfica AMD Radeon RX 580 + tarjeta WIFI y Bluetooth fenvi FV-T919 + OPENCORE 0.6.4 + AppleALC, IntelMausi, Lilu, USBMap, USBWakeFixup, VirtualSMC, XHCI-unsupported y WhateverGreen

Hardware

  • Placa base Gigabyte Z390 Aorus Élite: soporte para procesadores Intel de generaciones 8 y 9, audio Realtek ALC1220, Ethernet Intel I219V, 4 ranuras PCI-E, puertos USB 2, 3 y 3.1, tarjeta gráfica integrada Intel UHD Graphics 630 y conectores para disco M.2
  • Procesador de 9ª generación Intel i7 9700
  • Ventilador CPU 120 mm Nox Hummer H-312
  • Memoria RAM Corsair Vengeance LPX 3200 MHz 32 GB (2 x 16)
  • Tarjeta gráfica AMD Radeon RX 580 8 GB
  • Tarjeta Wifi y Bluetooth Fenvi FV-T919
  • Fuente de alimentación Mars Gaming MPII850 (850 W)
  • Disco M.2 Western Digital Black SN750 NVMe.

¿Qué funciona bien?

Prácticamente todo lo que he probado:
– Radeon RX 580: 3 puertos DP, 1 puerto DVI y 1 puerto HDMI, salida a 3 pantallas simultáneamente
– Apagado, reinicio y reposo
– Sonido integrado y salida de sonido HDMI
– Puertos USB (2, 3 y 3.1)
– Activación de TRIM para discos SSD y M.2.
– Airdrop, Mensajes, Sidecar…

¿Qué no funciona bien?

Tarjeta gráfica integrada Intel UHD Graphics 630: ver más adelante.

Configuración de UEFI (versión F10g)

Anoto solamente las opciones significativas, hay otras muchas opciones que no influyen en macOS y que puedes configurar a tu gusto (por ejemplo los LEDs de iluminación de la placa, etc.).

  • CFG Lock: Disabled
  • XMP Profile : Auto / Profile 1 / Enabled (eXtreme Memory Profile, utilizo memoria de 3200 MHz y sin este perfil funciona a 2600)
  • Platform Power Management: Disabled
  • VT-d: Desactivado
  • XHCI Hand-Off: Desactivado
  • Legacy USB Support: Enabled
  • Network Stack : Disabled
  • CSM : Disabled
  • Secure Boot : Disabled
  • Fast Boot : Disabled
  • OS Type: Windows 8/10 WHQL
  • Wake on LAN : Disabled
  • Integrated Graphics : Disabled / Enabled
  • Initial Display Output : PCIe 1 Slot
  • DVMT Pre-Allocated : 256M or higher.

OpenCore 0.6.4

He utilizado OpenCore 0.6.4 que tiene mejoras para Big Sur, entre ellas el regreso a la opción SecureBootModel=Default en vez de Disable y DmgLoading=Signed en vez de Any en el archivo config.plist (Misc > Security). Estas opciones devuelven a macOS la capacidad Secure Boot que no sólo lo hace más seguro sino que además lo asemeja más a un Mac real con las ventajas a nivel de funcionamiento y actualizaciones futuras.

He descargado Big Sur 11.0.1 directamente desde la App Store en un sistema con macOS Catalina y he actualizado este mismo sistema, con 3 reinicios durante el proceso, sin incidentes de ningún tipo. Recuerda copiar la aplicación Install macOS Big Sur.app desde la carpeta Aplicaciones a otro sitio porque desaparece al terminar la instalación y tendrías que volver a descargarla.

Como cosa curiosa, al terminar el paso 1 de la instalación la opción del menú OpenCore que continúa con el paso 2 se denomina MacintoshHD pero en el reinicio posterior toma correctamente el nombre del disco destino de la instalación.

Carpeta EFI para OpenCore

La estructura de la carpeta EFI, la misma que he utilizado en macOS Catalina.

── BOOT
│   └── BOOTx64.efi
└── OC
    ├── ACPI
    │   ├── SSDT-EC-USBX.aml
    │   ├── SSDT-PLUG.aml
    │   ├── SSDT-PMC.aml
    │   └── SSDT-USBW.aml
    ├── Bootstrap
    │   └── Bootstrap.efi
    ├── Drivers
    │   ├── HfsPlus.efi
    │   ├── OpenCanopy.efi
    │   └── OpenRuntime.efi
    ├── Kexts
    │   ├── AppleALC.kext
    │   ├── IntelMausi.kext
    │   ├── Lilu.kext
    │   ├── USBMap.kext
    │   ├── USBWakeFixup.kext
    │   ├── VirtualSMC.kext
    │   ├── WhateverGreen.kext
    │   └── XHCI-unsupported.kext
    ├── OpenCore.efi
    ├── Resources
    │   ├── Audio
    │   ├── Font
    │   ├── Image
    │   └── Label
    ├── Tools
    │   ├── OpenShell.efi
    └── config.plist

SSDT

Los archivos SSDT tienes estas funciones:
– SSDT-EC-USBX-DESKTOP: crea un falso Embedded Controller en Skylake y posteriores y en sistemas AMD, también configura correctamente la energía de los puertos USB
– SSDT-PMC.aml: para tener NVRAM nativa en placas con chipset Z390
– SSDT-PLUG: CPU Power Management en Haswell y posteriores, no es necesario en AMD; configura el parámetro plugin-type=1 en el primer procesador
– SSDT-USBW.aml: junto con la extensión USBWakeFixup.kext corrige el comportamiento en el que es necesario dar más de 1 toque en teclados o ratones USB para salir del reposo.

KEXTS

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

* La extensión USBMap.kext ha sido generada siguiendo las instrucciones de este artículo, asignando los puertos USB de esta placa base de manera que no se supere el límite definido por macOS de 15 puertos. He dejado los puertos USB de esta forma:

  • Habilitados todos los puertos USB2 que no forman parte de un puerto USB3 (1 interno para BT + 2 frontales que dependen de 1 hub USB2, 4 traseros que dependen de otro hub USB2)
  • Deshabilitados los puertos USB2 que forman parte de los 2 puertos USB3.1 rojos traseros
  • Habilitados los puertos USB2 que forman parte de los 4 puertos USB3 azules traseros
  • Habilitados todos los puertos USB3 excepto el interno para conexión USB tipo C.
    Resumen: los puertos rojos traseros no reconocen los dispositivos USB2.

** Se requiere XHCI-unsupported.kext para chipsets XHC cuyo ID de dispositivo no sea reconocido por macOS. Dependiendo del controlador USB de tu placa, puede ser necesario instalar alguna extensión adicional:

  • 8086:8CB1 en macOS 10.11.1 o inferior: XHCI-9-series.kext
  • 8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED: XHCI-unsupported.kext
  • 8086:1E31, 8086:8C31, 8086:8CB1, 8086:8D31, 8086:9C31, 8086:9CB1: FakePCIID.kext + FakePCIID_XHCIMux.kext.

Esta placa (en general las placas con chipset Z390) lleva el controlador USB 3.1 con ID de dispositivo A36D por lo que se requiere el kext XHCI-unsupported. Puedes verificar el ID de tu dispositivo en

/System/Library/Extensions/IOUSBHostFamily.kext/Contents/Plugins/AppleUSBXHCIPCI.kext/Contents/Info.plist

Config.plist

CFG Lock

Yo tengo CFG desbloqueado (CFG Unlocked) en BIOS por lo que no necesito marcar los parches del kernel AppleCpuPmCfgLock y AppleXcpmCfgLock (Kernel / Quirks) que son imprescindibles para arrancar macOS en los Hackintosh con CFG bloqueado (CFG Locked). Si tú lo tienes bloqueado, es imperativo seleccionar esos 2 parches. Puedes leer más sobre ello aquí.

SMBIOS

Hay 2 posibles SMBIOS que funcionan bien en mi PC:

  • iMac19,1: cuando la iGPU está habilitada en BIOS sin cable al monitor (headless mode) y la dGPU es la tarjeta principal
  • iMacPro1,1: cuando la iGPU está deshabilitada en BIOS y la dGPU es la única tarjeta activa.

En la carpeta EFi que adjunto como ZIP hay 2 archivos config.plist, config-imacpro.plist y config-imac.plist, y en la carpeta Kexts hay 2 archivos USBMap.kext, USBMap-imacpro.kext y USBMap-imac.kext. La extensión USBMap lleva una referencia interna al modelo de Mac utilizado en SMBIOS, por ello hay 2 archivos diferentes, para coincidir con el modelo elegido.
Recuerda cambiar el nombre de los archivos que utilices a config.plist y USBMap.kext, para que puedas probar las 2 SMBIOS por separado. Recuerda también que, si usas iMacPro1,1. tienes que deshabilitar la iGPU en BIOS.

Booter / Quirks

AvoidRuntimeDefrag / DevirtualiseMmio / EnableSafeModeSlide / EnableWriteUnprotector / ProtectUefiServices / ProvideCustomSlide / RebuildAppleMemoryMap / SetupVirtualMap / SyncRuntimePermissions en True. El resto en False.

DeviceProperties

<key>PciRoot(0x0)/Pci(0x14,0x0)</key>
<dict>
     <key>acpi-wake-type</key>
     <data>AQ==</data>
<dict>

Para que macOS salga bien del reposo desde dispositivos USB (teclado y ratón).

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
     <key>AAPL,ig-platform-id</key>
     <data>AwCRPg==</data>
</dict>

Para que la iGPU sea bien reconocida por macOS y funcione como tarjeta secundaria sin cable al monitor.

Kernel / Patch

Tengo 2 parches, el que habilita TRIM para discos SSD (incluidos NVMe) y el que habilta la conexión y desconexión de discos SATA en caliente (a condición de tener la opción activada en BIOS).

Kernel / Quircks

CustomSMBIOSGuid / DisableLinkeditJettison / PanicNoKextDump / PowerTimeoutKernelPanic en True. El resto en False.

Misc / Boot

Si utilizas el driver OpenCanopy para que el menú de OpenCore se muestre en modo gráfico, PickerMode ha de ser External. Sin OpenCanopy el menú se muestra en modo texto y en PickerMode conviene poner Builtin.

NVRAM / 7C436110-AB2A-4BBB-A880-FE41995C9F82

En boot-args solamente necesitas poner el layout-id del sonido (ej: alcid=7, 11 también funciona bien) y, si deseas que macOS arranque mostrando mensajes de texto en lugar de la manzana y la barra de progreso, añadir -v.

PlatformInfo

Relleno solamente el apartado Generic con los datos del modelo de SMBIOS elegido (iMac19,1 o iMacPro1,1).

Windows 10 desde OpenCore

Si arrancas Windows 10 desde OpenCore con la configuración predeterminada puede haber problemas porque OpenCore pasa a Windows los datos SMBIOS y ACPI que hemos configurado para macOS. Algunos usuarios incluso han visto el mensaje de que Windows no está activado. La herramienta MSINFO32 en Windows 10 con la configuración por defecto de OpenCore muestra estos datos (entre otros):

  • Nombre del sistema operativo: Microsoft Windows 10 Pro
  • Fabricante del sistema: Acidanthera
  • Modelo del sistema: iMac19,1
  • Fabricante de la placa base: Acidanthera
  • Producto de la placa base: Mac-AA95B1DDAB278B95.

Para evitarlo y que OpenCore no le pase a Windows estos datos hay que configurar 2 claves de config.plist:
– Kernel / Quirks / CustomSMBIOSGuid como True (por defecto es False)
– PlatformInfo / UpdateSMBIOSMode como Custom (por defecto es Create).
Para que funcione hay que aplicar parches a AppleSmbios.kext y AppleACPIPlatform.kext pero CustomSMBIOSGuid, si está activado (True), se encarga de aplicar esos parches en el arranque.

Estos son los datos mostrados por la herramienta MSINFO32 en Windows 10 con la configuración de OpenCore propuesta:

  • Nombre del sistema operativo: Microsoft Windows 10 Pro
  • Fabricante del sistema: Gigabyte Technology Co.
  • Modelo del sistema: Z390 Aorus Elite
  • Fabricante de la placa base: Gigabyte Technology Co.
  • Producto de la placa base: Z390 Aorus Elite-CF.

USB de instalación

Conviene recrear el USB de instalación con esta versión de Big Sur. La carpeta EFI en el USB puede ser la misma que usas en el disco Big Sur. Estos son los únicos cambios que hago para el USB:

  • Quitar el driver OpenCanopy.efi para que el menú de OpenCore se muestre en modo texto.
  • Misc / Boot / PickerMode = Builtin (con OpenCanopy y con menú gráfico aquí se usa External, sin OpenCanopy y con menú texto aquí se usa Builtin).
  • NVRAM / Add / 7C436110-AB2A-4BBB-A880-FE41995C9F82 / boot-args = -v (para ver comandos de texto durante el arranque y localizar más fácilmente el motivo si el arranque se detiene).

AMD RX 580

Aunque mi tarjeta RX 580 es un modelo de la marca XFX, conocida por utilizar VBios personalizadas y dar problemas en macOS, en mi caso parece funcionar bien con Lilu y WhatEverGreen. En el arranque del sistema operativo no muestra artefactos, funcionan los 3 puertos DP, el puerto DVI y el puerto HDMI, puede enviar la imagen simultáneamente a 3 pantallas (no he probado con más) con las opciones habituales de duplicación, envía sonido además de imagen a una TV por HDMI, durante la instalación del sistema operativo funciona correctamente a condición de tener Lilu y WhatEverGreen en el dispositivo USB, etc. Puntuaciones obtenidas en GeekBench 5:
– Metal 50100
– openCL 44100.
Como comparación, la tarjeta integrada alcanza 4800 en Metal.

Sonido

Esta placa incorpora el chip Realtek ALC1220 que necesita de la extensión AppleALC para funcionar. AppleALC a su vez es plugin de Lilu por lo que ambas han de estar bien instaladas. He probado varios layout-id y 11-13-15 son los que mejor parecen funcionar.

Ethernet

Esta placa lleva el chip Intel I219V que funciona bien con la extensión IntelMausi.

Wifi y Bluetooth

Utilizo una tarjeta mini PCIe Fenvi FV T-919 que lleva ambos chips, wifi y bluetooth. Esta tarjeta funciona perfectamente en macOS sin necesitar nada aparte de colocarla en la placa porque es reconocida como Airport Extreme y Bluetooth Apple. Tiene su propio artículo.

Disco M.2

He instalado Big Sur en un disco M.2, el modelo WD Black SN750 NVMe (conexión PCIe) con disipador integrado, su comportamiento es excelente y su precio es aceptable. Respecto a los discos M.2, la placa Z390 Aorus Elite tiene 2 conectores:
– M2A: junto a la CPU y la RAM, admite discos más largos (hasta 110mm) y, si el disco insertado es PCIe (como es mi caso), no anula ningún canal SATA
– M2M: junto a la pila, admite discos hasta 80mm de largo y, si tiene un disco insertado (sea PCIe o SATA), anula los canales SATA4 y SATA5.
Del manual de la placa base:

Gráfica integrada Intel UHD Graphics 630

Tiene su propio artículo.

Nota final

Big Sur funciona muy bien, el aspecto gráfico es claramente mejor que en Catalina y la velocidad de trabajo es excelente.

Los autores de OpenCore tienen en Dortania un artículo titulado What’s new in macOS 11, Big Sur! que merece la pena leer, es un texto excelente para conocer algunos de los cambios internos de Big Sur, las dificultades que han tenido que superar para que OpenCore funcione correctamente, indicaciones para reparar algunos fallos que pueden surgir e incluso unos comentarios sobre el futuro del mundo Hackintosh ahora que Apple ha lanzado los primeros ordenadores con procesador de familia ARM. Muy recomendable.

Puedes descargar mi carpeta EFI desde aquí.

07/02/2020: EFI actualizada a OpenCore 0.6.6, puedes descargar la carpeta desde aquí.

Deja un comentario