macOS 13 Ventura en placa Z390


Cómo instalar macOS 12 Monterey o macOS 13 Ventura en la placa base Gigabyte Z390 Aorus Elite usando OpenCore 0.8.6. Se proponen configuraciones para tener la tarjeta AMD RX 6600 como tarjeta principal y la integrada en modo sin cable o para tener la iGPU Intel como tarjeta única sin dGPU. La carpeta EFI está disponible para diferentes SMBIOS.

Hardware

  • Placa base Gigabyte Z390 Aorus Elite
  • Procesador Intel i7 9700
  • Gráficos iGPU Intel UHD 630
  • dGPU AMD Radeon RX 6600 8GB
  • Sonido Realtek ALC1220
  • Ethernet Intel I219V7
  • Wifi + BT Fenvi FV-T919 (BCM94360CD).

¿Qué funciona bien?

  • Tarjeta gráfica Radeon (VDA decoder Fully Supported)
  • Apagado, reinicio y reposo
  • Sonido (ALC1220, HDMI)
  • Puertos USB (mapa de puertos USB específico para esta placa)
  • AirDrop, iMessage.

Configuración de BIOS (versión F10h)

  • CFG Lock: Deshabilitado
  • CSM: Deshabilitado
  • VT-d: Deshabilitado
  • Fast Boot: Deshabilitado
  • OS Type: Windows 8/10 WHQL
  • Platform Power Management: deshabilitado
  • XHCI Hand-Off: Habilitado
  • Network Stack: deshabilitada
  • Wake on LAN: Deshabilitado
  • Secure Boot: deshabilitado
  • DVMT Pre-allocated: 256M o superior
  • Integrated Graphics: Deshabilitado / Habilitado (según SMBIOS).

OpenCore 0.8.6

Para que la instalación / actualización tenga éxito, se deben configurar 3 parámetros relacionados con la seguridad:

  • SecureBootModel=j160 o SecureBootModel=Default en config.plist (Apple Secure Boot j160 corresponde a MacPro7,1 y Default establece el mismo modelo que existe en SMBIOS)
  • SIP habilitado (csr-active-config=00000000 en config.plist)
  • Gatekeeper habilitado (sudo spctl –master-enable en Terminal).

Estas opciones de seguridad se pueden cambiar después de la instalación ya que no son necesarias para que Monterey / Ventura funcionen.

Nota: en las versiones más recientes de Ventura sudo spctl –master-enable (o disable) ha sido reemplazado por sudo spctl –global-enable (o disable).

SMBIOS

El modelo SMBIOS que mejor funciona en mi sistema es iMac19,1. Este modelo de Mac requiere:

  • AMD dGPU como tarjeta principal
  • Intel 630 iGPU habilitada en BIOS
  • Código iGPU para headless mode en config.plist.

También se puede utilizar SMBIOS de MacPro7,1. También funciona muy bien. Este modelo de Mac requiere:

  • AMD dGPU como tarjeta principal
  • Intel 630 iGPU deshabilitada en BIOS (estos modelos de Mac carecen de GPU integrada, sólo tienen GPU AMD)
  • RestrictEvents.kext para evitar advertencias de mala configuración de RAM
  • CPUFriend.kext: no es obligatoria, pero en mi opinión mejora la administración de energía de la CPU.

CPUFriend.kext

Aunque la CPU se detecta bien con SMBIOS de MacPro, mi impresión es que no funciona a baja frecuencia tan a menudo como con iMac 19.1. Por esta razón he generado una extensión CPUFriendDataProvider.kext desde el comando CPUFriendFriend para acompañar a CPUFriend.kext. Con estos 2 kexts (CPUFriendDataProvider.kext + CPUFriend.kext) la CPU muestra una administración de energía correcta y la frecuencia mínima baja a 800 MHz cuando el sistema estça inactivo.

SSDT, Drivers y Tools

SSDT

  • SSDT-AWAC-DISABLE: para corregir errores con el reloj del sistema en placas base Z390, B460, Z490
  • SSDT-EC-USBX: Embedded Controller ficticio en Skylake y siguientes, también corrige la alimentación USB
  • SSDT-PLUG: administración de energía en Haswell y sigioentes; para configurar el parámetro plugin-type=1 en el primer procesador
  • SSDT-PMC: compatibilidad nativa con NVRAM en sistemas que carecen de ella, por ejemplo, chipset Z390
  • SSDT-USBW: para salir del modo de suspensión con un solo toque del ratón o del teclado (este SSDT funciona conjuntamente con con USBWakeFixup.kext) >> muy probablemente no sea necesario si el dispositivo USB en DeviceProperties tiene acpi-wake-type=01.

Drivers

  • HfsPlus.efi: para reconocer dispositivos HFS+
  • OpenRuntime.efi: controlador esencial para ejecutar macOS
  • OpenCanopy.efi: menú selector gráfico con temas
  • CrScreenshotDxe.efi: capturas de pantalla en OpenCore.

Tools

  • OpenShell.efi: shell UEFI para realizar tareas de línea de comandos desde OpenCore.

config.plist

Algunas configuraciones remarcables:

  • DeviceProperties >> Add >> PciRoot(0x0)/Pci(0x14,0x0): acpi-wake-type como data con valor 01, para mejorar la activación desde el modo de suspensión
  • Misc >> Boot >> PickerAttributes=144 para habilitar Flavours
  • NVRAM> 7C436110-AB2A-4BBB-A880-FE41995C9F82> boot-args: alcid=7 agdpmod=pikera (agdpmod=pikera no es necesario con tarjetas RX 580 u otros modelos Polaris, sólo con las tarjetas RX 6600 y las series Navi)
  • Misc >> Security >> AllowToggleSip=True para mostrar en el menú selector la herramienta ToggleSIP que permite cambiar fácilmente entre SIP habilitado y SIP deshabilitado para el arranque actual.

Intel UHD 630 headless mode

  • iGPU y dGPU deben estar habilitadas en BIOS con la dGPU como tarjeta principal
  • No debe haber ningún cable entre el puerto HDMI de la iGPU y cualquier tipo de pantalla
  • Lilu y WhatEverGreen bien instaladas
  • SMBIOS iMac19.1.

Hay que añadir en DeviceProperties >> Add:

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
    <key>AAPL,ig-platform-id</key>
    <data>AwCRPg==</data>
    <key>device-id</key>
    <data>mz4AAA==</data>
    <key>enable-metal</key>
    <data>AQAAAA==</data>
    <key>igfxfw</key>
    <data>AgAAAA==</data>
    <key>force-online</key>
    <data>AQAAAA==</data>
    <key>rps-control</key>
    <data>AQAAAA==</data>
</dict>

Este código tiene valores de datos en Base64, en los editores de archivos plist se pueden ver como hexadecimales, por ejemplo AwCRPg== en Base64 (AAPL,ig-platform-id) es 0300913E en hexadecimal.

Para verificar si la función VDA Decoder está habilitada, puedes obtener la aplicación Hackintool (Fully Supported o Failed en la primera pestaña Sistema).

Notas:

  • AAPL,ig-platform-id=07009B3E es obligatoria
  • device-id=9B3E000 para que la iGPU se vea como Intel UHD Graphics 630 en lugar de Kabylake Unknown
  • enable-metal=01 para habilitar Metal 3 en Ventura
  • force-online=01 para forzar la activación de todas las pantallas (obligatorio)
  • igfxfw=02 para forzar la carga del firmware Apple GuC (mejora el rendimiento de la iGPU)
  • rps-control=01 para habilitar el parche de control RPS (mejora el rendimiento de iGPU).

Intel UHD 630 como GPU principal

Si no tienes una tarjeta gráfica externa y necesitas usar la iGPU como tarjeta única has de configurar SMBIOS de iMac19,1 SMBIOS con código en config.plist para parchear el framebuffer y otras propiedades de forma que la iGPU sea bien detectada:

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
    <key>AAPL,ig-platform-id</key>
    <data>BwCbPg==</data>
    <key>device-id</key>
    <data>mz4AAA==</data>
    <key>device_type</key>
    <string>VGA compatible controller</string>
    <key>enable-hdmi20</key>
    <data>AQAAAA==</data>
    <key>enable-metal</key>
    <data>AQAAAA==</data>
    <key>framebuffer-con0-busid</key>
    <data>AAAAAA==</data>
    <key>framebuffer-con0-enable</key>
    <data>AQAAAA==</data>
    <key>framebuffer-con0-pipe</key>
    <data>EgAAAA==</data>
    <key>framebuffer-con1-busid</key>
    <data>AAAAAA==</data>
    <key>framebuffer-con1-enable</key>
    <data>AQAAAA==</data>
    <key>framebuffer-con1-pipe</key>
    <data>EgAAAA==</data>
    <key>framebuffer-con2-busid</key>
    <data>BAAAAA==</data>
    <key>framebuffer-con2-enable</key>
    <data>AQAAAA==</data>
    <key>framebuffer-con2-pipe</key>
    <data>EgAAAA==</data>
    <key>framebuffer-con2-type</key>
    <data>AAgAAA==</data>
    <key>framebuffer-patch-enable</key>
    <data>AQAAAA==</data>
    <key>framebuffer-stolenmem</key>
    <data>AAAwAQ==</data>
    <key>hda-gfx</key>
    <string>onboard-1</string>
    <key>igfxfw</key>
    <data>AgAAAA==</data>
    <key>force-online</key>
    <data>AQAAAA==</data>
    <key>rps-control</key>
    <data>AQAAAA==</data>
</dict>

AMD RX 6600 en Ventura con SMBIOS de MacPro o iMacPro

Las tarjetas AMD de la serie Navi funcionan bien en Ventura cuando se usa SMBIOS de iMac con agdpmod=pikera en boot args como la única configuración requerida. Pero al usar SMBIOS de MacPro o iMacPro muchos usuarios informan de pantalla negra. La forma más sencilla de solucionar esto es agregar en DeviceProperties de config.plist código que configura el framebuffer Henbury para cada uno de los 4 puertos de esta GPU.

De forma predeterminada, se carga el framebuffer Radeon (ATY,Radeon). Pero en AMDRadeonX6000Framebuffer.kext >> Contents >> Info.plist podemos ver que AMDRadeonNavi23Controller tiene ATY,Henbury como framebuffer y las tarjetas de la serie 6600 son Navi 23. Por eso se elige este framebuffer.

El parche se agrega de esta manera:

<key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Henbury</string>
                <key>@1,name</key>
                <string>ATY,Henbury</string>
                <key>@2,name</key>
                <string>ATY,Henbury</string>
                <key>@3,name</key>
                <string>ATY,Henbury</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Notas:

  • La ruta PCI a la GPU puede ser la misma en tu sistema pero es conveniente verificarla con Hackintool (aplicación) o gfxutil (utilidad de terminal).
  • Esto no es necesario para Monterey.
  • Esto no es necesario para RX 580.

Si fuera necesario para otras tarjetas Navi, los framebuffers son diferentes para cada familia:

  • 5500 ATY, Python
  • 5700 ATY, Sumador
  • 6600 ATY,Henbury
  • 6800 ATY, Belknap
  • 6900 ATY,Carswell

Método alternativo para evitar la pantalla negra con SMBIOS MacPro o iMacPro en Ventura sin parche Henbury

Aunque el parche Henbury soluciona este problema, tiene como efecto colateral una disminución evidente de las puntuaciones de GeekBench 5.

El uso de SSDT-BRG0.aml corrige la pantalla negra en Ventura con modelos SMBIOS que carecen de iGPU. Este SSDT permite definir un dispositivo pci-bridge que falta añadiendo un dispositivo BRG0 del que cuelgan la dGPU y el sonido dependiente de ella. Con este SSDT el parche Henbury ya no es necesario. Con SSDT-BRG0 se obtienen las puntuaciones esperadas en GeekBench 5.

SSDT-BRG0:

/*
 * This table provides an example of creating a missing ACPI device
 * to ensure early DeviceProperty application. In this example
 * a GPU device is created for a platform having an extra PCI
 * bridge in the path - PCI0.PEG0.PEGP.BRG0.GFX0:
 * PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
 * Such tables are particularly relevant for macOS 11.0 and newer.
 */
 
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

    Scope (\_SB.PCI0.PEG0.PEGP)
    {
        Device (BRG0)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }

            Device (HDAU)
            {
                Name (_ADR, One)  // _ADR: Address
            }
        }
    }
}

Asegúrate de la ruta PCI a tu dGPU, la mía es /PCI0@0/PEG0@1/PEGP@0/GFX0@0 por lo que el SSDT tiene estas 2 líneas:

External (SB.PCI0.PEG0.PEGP, DeviceObj)
Scope (_SB.PCI0.PEG0.PEGP)

Modifica el SSDT (si es necesario) para ajustarlo a tu sistema.

¿Cómo verificar la ruta PCI?

  • utilidad gfxutil en Terminal, busca la línea que contiene GFX0 al final
  • Hackintool >> pestaña PCIe >> ratón sobre la línea Navi 23 >> copy IOReg path.

Existen algunas configuraciones más avanzadas del SSDT como por ejemplo SSDT-VEGA.aml que, además de crear dispositivos, lo hace imitando la manera en que están configurados los Mac (dispositivos EGP0 y EGP1 en lugar de BRG0). SSDT-VEGA presenta las mismas ventajas que SSDT-BRG0: parche Henbury innecesario y puntuaciones normales en GeekBench 5. También requiere la comprobación de la ruta PCI a tu tarjeta gráfica. En el código de ejemplo mantengo la misma ruta que en el SSDT anterior.

DefinitionBlock ("", "SSDT", 2, "HACK", "VEGA", 0x00000000)
{
    External (_SB_.PCI0, DeviceObj)
    External (_SB_.PCI0.PEG0, DeviceObj)
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

    Scope (\_SB)
    {
        Scope (PCI0)
        {
            Scope (PEG0)
            {
                Scope (PEGP)
                {
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (_OSI ("Darwin"))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }
                }

                Device (EGP0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (_OSI ("Darwin"))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Device (EGP1)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Device (GFX0)
                        {
                            Name (_ADR, Zero)  // _ADR: Address
                        }

                        Device (HDAU)
                        {
                            Name (_ADR, One)  // _ADR: Address
                        }
                    }
                }
            }
        }
    }
} 

Instalación de macOS Monterey o Ventura

El proceso es casi el mismo para la instalación y para la actualización:

  • Necesitas una carpeta EFI que funcione
  • Descarga macOS desde Actualización de software o crea un instalador USB; no comento sobre la creación de un instalador USB porque hay muchos sitios con esta información.
  • Ejecuta la aplicación Install macOS Monterey / Ventura o el programa de instalación desde el USB de arranque
  • El proceso tiene 2 reinicios desde el disco Install macOS y un tercer reinicio desde el disco de destino con Monterey.

Archivos SMBIOS y config.plist

Hay ocho archivos de configuración, los que comienzan con config-12 son para Monterey y los que comienzan con config-13 son para Ventura. Se incluyen variantes para 4 posibles SMBIOS:

  • iMac19,1 con AMD dGPU + iGPU headless mode
  • iMac19,1 con iGPU como tarjeta principal sin dGPU
  • MacPro7,1 con dGPU + iGPU deshabilitada
  • iMacPro1,1 con dGPU + iGPU deshabilitada.

Lista de archivos config.plist:

  • config-12-imac-amd.plist: iMac19,1 + dGPU AMD + iGPU habilitada en BIOS
  • config-12-imac-intel.plist: iMac19,1 + iGPU habilitada en BIOS como tarjeta principal
  • config-12-imacpro.plist: iMacPro1,1 + dGPU AMD + iGPU desactivada en BIOS
  • config-12-macpro.plist: MacPro7,1 + dGPU AMD + iGPU deshabilitada en BIOS
  • config-13-imac-amd.plist: iMac19,1 + dGPU AMD + iGPU habilitada en BIOS
  • config-13-imac-intel.plist: iMac19,1 + iGPU habilitada en BIOS como tarjeta principal
  • config-13-imacpro.plist: iMacPro1,1 + dGPU AMD + iGPU desactivada en BIOS
  • config-13-macpro.plist: MacPro7,1 + dGPU AMD + iGPU deshabilitada en BIOS.

Notas

  • No olvides cambiar el nombre del archivo de configuración seleccionado a config.plist
  • Mi dGPU actual es AMD RX 6600 XT; para RX 580 y otras tarjetas Polaris quita agdpmod=pikera de boot args y no utilices el parche Henbury
  • Añade tus propios números de serie en lso datos SMBIOS.

¡Importante!

  • No olvides cambiar el nombre del archivo de configuración seleccionado a config.plist.
  • Haz ResetNVRAM la primera vez que arrancas desde una nueva EFI.
  • Presiona la barra espaciadora para mostrar las entradas auxiliares en el menú selector.

Agradecimientos

Acidanthera OpenCore y kexts
Guías Dortania OpenCore
Foro InsanelyMac
Foro tonymacx86


Enlace para descargar la carpeta EFI

2 comentarios en «macOS 13 Ventura en placa Z390»

  1. Buenos días, amigo.
    RestrictEvents.kext tiene usos muy específicos aunque en ellos consigue resultados muy notables. Estas son las principales prestaciones:

    Mac

    • añade pestaña Memoria en información de sistema en los equipos que tienen la RAM soldada
    • quita la pestaña de expansión PCI en información de sistema en equipos sin dispositivos PCI añadidos.

    Hack

    • quita avisos de RAM mal configurada al usar SMBIOS de MacPro7,1
    • quita la pestaña de expansión PCI en información de sistema al usar SMBIOS de MacPro7,1
    • permite ajustar el nombre y modelo de CPU en sistemas con CPU no Intel (AMD).

    Todos

    • quita el aviso de disco no inicializado.

    En resumen, si no se tiene SMBIOS de MacPro7,1 o CPU AMD no la veo útil.

  2. Buenos días, por aquí tengo una Gigabyte Z390 UD y he intentado encontrar lógica o información adecuada del uso o no del kext RestrictEvents.kext en todos los equipos, veo este muy a menudo instalado. Al leer la guía correspondiente, dice que su uso es para un determinado tipo de portátiles y para los MacPro7.1
    Cualquier aportación me sería de ayuda, gracias como siempre.

Deja un comentario