macOS Catalina 10.15.6 en la placa Z390 Aorus Elite

Instalar macOS Catalina en la placa Gigabyte Z390 Aorus Élite + procesador i3 9100 Coffee Lake + tarjeta gráfica AMD Radeon RX 580 + tarjeta WIFI y Bluetooth fenvi FV-T919 + Clover r5121 + AppleALC, IntelMausiEthernet, Lilu, USBPorts, VirtualSMC, XHCI-unsupported y WhateverGreen. Inspirado por hilo iniciado por kasix y completado por joanserramiret en tonymacx86.

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
  • Procesador de 9ª generación Intel i3 9100
  • Ventilador CPU 120 mm Nox Hummer H-212
  • Memoria RAM Corsair Vengeance LPX 3200 MHz 16 GB (2 x 8)
  • 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 SSD Samsung EVO 860.

¿Qué funciona bien?

Prácticamente todo lo que he probado:
– Radeon RX 580: 3 puertos DP y 1 puerto HDMI, salida a 2 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 el disco SSD
– AirDrop, Sidecar, etc.

¿Qué no funciona bien?

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

Configuración de UEFI (versión F9)

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.).

  • 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: Activado
  • Legacy USB Support: Enabled
  • Network Stack : Disabled
  • CSM : Disabled
  • Secure Boot : Disabled
  • Fast Boot : Disabled
  • OS Type: Other OS
  • Wake on LAN : Disabled
  • Integrated Graphics : Disabled
  • Initial Display Output : PCIe 1 Slot
  • DVMT Pre-Allocated : 256M or higher.

Carpeta EFI para Clover (memoria USB de instalación y disco SSD con Catalina)

SSDT

Varios archivos SSDT.aml en EFI/CLOVER/ACPI/patched.

SSDT-DTPG.aml (módulo de soporte para los otros SSDT)
SSDT-EC.aml (permite cargas más intensas por USB)
SSDT-UIAC.aml (asignación de puertos USB)
SSDT-USBX.aml (asignación de puertos USB)
SSDT-PMC.aml obtenido desde OpenCore para tener NVRAM nativa en placas con chipset Z390
SSDT-Z390-RP21-SLOT4-TB3HP.aml (conexión y desconexión en caliente de dispositivos Thunderbolt) se puede omitir.

Drivers en EFI/CLOVER/drivers/UEFI

ApfsDriverLoader.efi
AudioDxe.efi
DataHubDxe.efi
FSInject.efi
VBoxHfs.efi
SMCHelper.efi
OcQuirks.efi *
OpenRuntime.efi *
OcQuirks.plist *.

* ver el apartado OC Quirks al final del artículo.

Extensiones en EFI/CLOVER/kexts/Other

AppleALC.kext
IntelMausi.kext
Lilu.kext
USBPorts.kext
VirtualSMC.kext
WhateverGreen.kext
XHCI-unsupported.kext.

NOTA 1: la extensión USBPorts.kext junto con 3 archivos aml en la carpeta patched (SSDT-EC.aml, SSDT-UIAC.aml y SSDT-USBX.aml) fueron generados por joanserramiret con la configuración de puertos USB para esta placa base de manera que no se supere el límite definido por macOS de 15 puertos. Su configuración deja los puertos USB de esta forma:

  • Habilitados todos los puertos USB2 que no forman parte de un puerto USB3 (1 interno para BT + 4 traseros que están juntos + 2 en el frente)
  • Habilitados los puertos USB2 que forman parte de los 2 puertos USB3.1 rojos traseros
  • Deshabilitados 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 azules traseros no reconocen los dispositivos USB2.

NOTA 2: Se requiere XHCI-unsupported.kext para chipsets XHC cuyo ID de dispositivo no esté incluido en macOS. Dependiendo del controlador USB de tu placa, puede ser necesario instalar alguna extensión adiconal:

  • 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 conID 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

Archivo Config.plist

Las opciones diferenciales son:

Acpi> DSDT: change HECI to IMEI / change SAT0 to SATA
Acpi > Fixes: FixShutdown
Acpi > Drop OEM_DSM
Acpi > Drop Tables > DMAR / MATS
Acpi > SSDT > PluginType seleccionado (Plugin Type number en blanco)
Acpi > Halt Enabler / FixHeaders

Boot > Boot Arguments > slide=0 / darkwake=8 / dart=0

Devices > USB > Inject / FixOwnership / HighCurrent
Devices > Audio > Inject 11(o 13 o 15)

Kernel and Kext Patches > Apple RTC y KernelXCPM seleccionados
Kernel and Kext Patches > KextsToPatch > Name: com.apple.driver.AppleAHCIPort / Find: 40600200 / Replace: 00000000 / Comment: SATA hot plug
Kernel and Kext Patches > KextsToPatch > Name: com.apple.driver.AppleAHCIPort / Find: 45787465 726E616C / Replace: 496E7465 726E616C / SATA orange icons

SMBIOS > iMac19,1

System Parameters > Inject Kexts: Yes / Inject System ID: seleccionado

Quirks > marca las casillas AvoidRuntimeDefrag – DevirtualiseMmio – EnableSafeModeSlide – ForceExitBootServices – ProtectUefiServices – ProvideConsoleGopEnable – ProvideCustomSlide – SetupVirtualMap – SyncRuntimePermissions y asigna a ProvideMaxSlide el valor 0. *

Cambia a true DevirtualiseMmio y ProtectUefiServices en el archivo OcQuirks.plist (recomendado en placas con chipset Z390).

* ver el apartado OC Quirks al final del artículo.

Instalación de macOS Catalina

Hay numerosas publicaciones con instrucciones por lo que me limitaré a comentar solamente algunos detalles específicos.

  • La memoria USB de instalación ha de tener esquema de particiones GUID para que la UEFI de la placa pueda arrancar desde ella.
  • He preparado el USB con el método createinstallmedia + la aplicación «Instalar macOS Catalina» en la carpeta Aplicaciones
  • El dispositivo es USB 3 y, conectado al puerto frontal USB 3, realiza la tarea con bastante rapidez
  • He utilizado Clover r5121 que actualmente es la versión más reciente.
  • La carpeta EFI del USB de instalación puede ser la misma que la del disco duro con 2 diferencias: Acpi > SSDT > PluginType deseleccionado y Acpi > Boot dejar en blanco Default Boot Volume y Timeout -1 (para que no arranque ningún volumen automáticamente desde el menú de Clover).
  • Para montar la partición EFI (del disco o del dispositivo USB) he recurrido a Clover Configurator que hace esta tarea muy sencilla o a la línea de comandos (diskutil), averiguando primero qué nº de disco y partición es la EFI (diskutil list) y mostrándola después (mountdisk):
sudo diskutil list
sudo diskutil mountdisk /dev/disk2s3

Tarjeta gráfica

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 y el único puerto HDMI, puede enviar la imagen simultáneamente a 2 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).

Respecto a la descodificación por hardware de vídeos H264 y HEVC, la herramienta Hackintool y la aplicación VideoProc informan de que no está soportada aunque la reproducción de archivos de ambos tipos con tasas de hasta 20 mbps es correcta por lo que sospecho que en realidad codifica bien. Para que la descodificación por hardware aparezca como soportada en las aplicaciones comentadas ha de estar habilitada la tarjeta integrada Intel Graphics 630 aunque sea desconectada (utilizando la tarjeta RX 580 como primaria enviando imagen a la pantalla).

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. Nota: Clover > Devices > Audio > Inject 11 o 13 o 15. He probado layouts diferentes y estos 3 son los que mejor parecen funcionar bien, tal vez 13 y 15 con un sonido ligeramente mejor.

Algunos usuarios han comentado que el sistema no carga AppleALC y no tienen sonido a pesar de tener las extensiones en EFI/CLOVER/kexts/Other. En estos casos puede dar resultado instalar AppleALC y Lilu en /Library/Extensions regenerando después la caché de extensiones con Hackintool (forma muy cómoda de hacerlo) o con este comando de Terminal:

sudo spctl --master-disable;sudo mount -uw /;killall Finder;sudo chown -v -R root:wheel /System/Library/Extensions;sudo touch /System/Library/Extensions;sudo chmod -v -R 755 /Library/Extensions;sudo chown -v -R root:wheel /Library/Extensions;sudo touch /Library/Extensions;sudo kextcache -i /

Lo que hace este comando es desactivar Gatekeeper, montar el disco de sistema en modo lectura/escritura, reparar permisos en las carpetas de extensiones y regenerar la caché. Pero todo eso lo hace Hackintool con menos trabajo por nuestra parte.

Ethernet

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

Wifi y Bluetooth

Utilizo una tarjeta mini PCI-E 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.

Discos

Samsung EVO 860 SSD. Es un disco de estado sólido con referencias de funcionar bien en los Mac. En mi caso funciona bien, con velocidad de lectura de 430 y de escritura de 250. He probado SSD más rápidos pero han dado problemas para instalar Catalina, en cambio con los EVO 860 todo ha funcionado perfectamente.

Gráfica integrada

Para que funcione hay que:

1. Habilitarla en la placa como primaria: Initial Display Output IGFX en lugar de PCIe 1 Slot (en realidad este es el paso final después de modificar config.plist)

2. Añadir en config.plist: Boot > Boot Arguments > igfxonln=1

3. Aplicar un parche con datos de la tarjeta (vídeo y audio) en config.plist: Devices > Properties. Resulta más sencillo hacerlo sobre el archivo config.plist en modo texto que desde Clover Configurator. Con el archivo abierto como texto busca las líneas

<key>Audio</key>
	<dict>
		<key>ResetHDA</key>
		<false/>
		<key>Inject</key>
		<integer>11</integer>
	</dict>

Inmediatamente por encima de ellas pega este texto:

<key>Properties</key>
	<dict>
		<key>PciRoot(0x0)/Pci(0x1F,0x3)</key>
		<dict>
			<key>layout-id</key>
			<data>CwAAAA==</data>
			<key>model</key>
			<string>Cannon Lake HDMI</string>
			<key>hda-gfx</key>
			<string>onboard-2</string>
			<key>AAPL,slot-name</key>
			<string>Internal@0,31,3</string>
			<key>device_type</key>
			<string>Audio device</string>
		</dict>
		<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
		<dict>
			<key>framebuffer-con0-busid</key>
			<data>AAAAAA==</data>
			<key>framebuffer-con0-type</key>
			<data>AAgAAA==</data>
			<key>framebuffer-con2-flags</key>
			<data>xwMAAA==</data>
			<key>model</key>
			<string>Intel UHD Graphics 630</string>
			<key>framebuffer-con1-busid</key>
			<data>AAAAAA==</data>
			<key>device-id</key>
			<data>kT4AAA==</data>
			<key>framebuffer-con2-type</key>
			<data>AAgAAA==</data>
			<key>framebuffer-con2-busid</key>
			<data>BAAAAA==</data>
			<key>device_type</key>
			<string>Display controller</string>
			<key>hda-gfx</key>
			<string>onboard-1</string>
			<key>framebuffer-patch-enable</key>
			<data>AQAAAA==</data>
			<key>framebuffer-con1-type</key>
			<data>AAgAAA==</data>
			<key>AAPL,slot-name</key>
			<string>Internal@0,2,0</string>
			<key>AAPL,ig-platform-id</key>
			<data>BwCbPg==</data>
			<key>framebuffer-con2-enable</key>
			<data>AQAAAA==</data>
			<key>framebuffer-con1-enable</key>
			<data>AQAAAA==</data>
			<key>framebuffer-con0-enable</key>
			<data>AQAAAA==</data>
		</dict>
	</dict>

Pero el sistema presenta un kernel panic al salir del modo de reposo: reinicio después de unos pocos segundos. Este comportamiento ocurre si el cable que sale del puerto HDMI de la placa base (único puerto de la gráfica integrada en esta placa) se conecta con un puerto DisplayPort en el monitor. Si la placa se conecta directamente con otro puerto HDMI (monitor o TV) el fallo no se produce y el sistema sale del reposo con normalidad.

Actualmente la única manera de tener la gráfica integrada conectada a otro puerto que no sea HDMI es reemplazando la propiedad «hda-gfx» por «no-hda-gfx» en el código mostrado más arriba. Estas 2 líneas

<key>hda-gfx</key>
<string>onboard-2</string>

han de ser reemplazadas por

<key>No-hda-gfx</key>
<data>AAAAAAAAAAA=</data>

Después de este cambio se pierde la salida de sonido por HDMI pero también desaparece el kernel panic al regresar del reposo.

En resumen:

  • Intel HDMI a monitor DisplayPort> tiene salida de audio por HDMI pero también kernel panic al salir del reposo
  • Intel HDMI a televisión HDMI> tiene salida de audio por HDMI y el reposo funciona bien
  • Intel HDMI a monitor DisplayPort con «no-hda-gfx»> el reposo funciona bien pero se pierde la salida de audio por HDMI.

Nota: basado en el hilo titulado «[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)» iniciado por CaseySJ en tonymacx86. Gracias también a deeveedee por su ayuda.

Con la tarjeta integrada como principal, el sistema muestra las 2 gráficas habilitadas y permite tener una pantalla conectada a la Intel 630 por HDMI y otra pantalla diferente conectada a la RX 580 por DP o HDMI, en este caso la pantalla primaria es la de la Intel y la otra sólo funciona a partir del momento del arranque en que se carga el driver gráfico pero, una vez que el sistema está en en marcha, las pantallas permiten opciones de duplicación como si dependiesen de una única tarjeta.

Evolución a Oc Quirks

OC Quirks es un driver EFI para Clover que reemplaza AptioMemoryFix y todas las variantes OsxAptioFix. Soporta el modelo quirks de OpenCore. AptioMemoryFix ha evolucionado poco en la etapa más reciente y en cierta manera se está quedando obsoleto. Probablemente las versiones siguientes de Clover dejen de instalar AptioMemoryFix y cambien a OC Quirks que sí está evolucionando y recibiendo mejoras frecuentes. Puedes leer sobre esto en la web del grupo de trabajo: ReddestDream.

Migrar nuestra instalación desde AptioMemoryFix hacia OC Quirks es relativamente sencillo:

  • descarga la versión más reciente de OC Quirks (busca en Releases, la versión actual es la 23)
  • ten a mano un dispositivo USB que arranque macOS correctamente para utilizarlo en caso de fallo
  • monta la partición EFI del disco
  • borra AptioMemoryFix y cualquier otra variante de OsxAptioFix
  • añade OcQuirks.efi, OpenRuntime.efi y OcQuirks.plist a la carpeta drivers/UEFI de Clover
  • cambia a true DevirtualiseMmio y ProtectUefiServices en el archivo OcQuirks.plist (recomendado en placas con chipset Z390)
  • en el archivo config.plist de Clover / Quirks marca las casillas AvoidRuntimeDefrag – DevirtualiseMmio – EnableSafeModeSlide – ForceExitBootServices – ProtectUefiServices – ProvideConsoleGopEnable – ProvideCustomSlide – SetupVirtualMap – SyncRuntimePermissions y asigna a ProvideMaxSlide el valor 0.
  • Reinicia el PC.

Puedes descargar mi carpeta EFI con OC Quirks desde aquí.

Kernel Panic con BIOS F10c si la tarjeta gráfica integrada está habilitada

La placa Z390 Aorus Elite viene con BIOS F9 con la que se ha escrito el texto de este artículo.

Hace unos días actualicé a la versión actual que es F10c y, desde entonces, he sufrido un kernel panic con el símbolo de prohibido al pasar del menú de Clover a la pantalla de arranque de macOS si la tarjeta integrada estaba habilitada en BIOS. Esto sucedía independientemente de si la tarjeta estaba configurada en Clover (de forma completa para salida hacia monitor o en modo sin cable para codificación) o no.
Volviendo a BIOS F9, el sistema ha vuelto a funcionar como antes y el kernel panic ha desaparecido. Puedo tener la tarjeta habilitada o deshabilitada nuevamente en BIOS sin problemas.

Deja un comentario