Cómo usar la clave ScanPolicy en OpenCore

Puesto que existen dispositivos de almacenamiento de varias clases (USB, SATA, NVMe, etc.) y también diferentes sistemas de archivos y tipos de particiones (EFI, APFS, HFS+, etc.) es útil disponer de un mecanismo para definir cuáles de esos elementos van a ser tenidos en cuenta por OpenCore (OC) de acuerdo con nuestras necesidades.

Esto se consigue con la clave ScanPolicy (Integer) que está en la sección Misc / Security del archivo config.plist y que define la política de detección de tipos de dispositivo y sistemas de archivos por parte de OC.
ScanPolicy se calcula sumando valores hexadecimales elegidos de una lista (disponible en el PDF de configuración de OC) y convirtiendo la suma total a su valor decimal que es el que debe anotarse en config.plist. OpenCore sólo mostrará en su menú (picker) como opciones de arranque los elementos definidos en ScanPolicy.

Lista completa

0x00000001 - OC_SCAN_FILE_SYSTEM_LOCK, escanea solamente sistemas de archivos conocidos definidos como parte de esta política. 0x00000002 - OC_SCAN_DEVICE_LOCK, escanea solamente dispositivos conocidos definidos como parte de esta política. 0x00000100 - OC_SCAN_ALLOW_FS_APFS, permite escanear el sistema de archivos APFS. 0x00000200 - OC_SCAN_ALLOW_FS_HFS, permite escanear el sistema de archivos HFS. 0x00000400 - OC_SCAN_ALLOW_FS_ESP, permite escanear el sistema de archivos EFI. 0x00000800 - OC_SCAN_ALLOW_FS_NTFS, permite escanear el sistema de archivos NTFS. 0x00001000 - OC_SCAN_ALLOW_FS_EXT, permite escanear el sistema de archivos EXT. 0x00010000 - OC_SCAN_ALLOW_DEVICE_SATA, permite escanear dispositivos SATA. 0x00020000 - OC_SCAN_ALLOW_DEVICE_SASEX, permite escanear dispositivos SAS y Mac NVMe. 0x00040000 - OC_SCAN_ALLOW_DEVICE_SCSI, permite escanear dispositivos SCSI. 0x00080000 - OC_SCAN_ALLOW_DEVICE_NVME, permite escanear dispositivos NVMe. 0x00100000 - OC_SCAN_ALLOW_DEVICE_ATAPI, permite escanear dispositivos de CD/DVD. 0x00200000 - OC_SCAN_ALLOW_DEVICE_USB, permite escanear dispositivos USB. 0x00400000 - OC_SCAN_ALLOW_DEVICE_FIREWIRE, permite escanear dispositivos FireWire. 0x00800000 - OC_SCAN_ALLOW_DEVICE_SDCARD, permite escanear dispositivos lectores de tarjetas. 0x01000000 - OC_SCAN_ALLOW_DEVICE_PCI, permite escanear dispositivos conectados directamente al bus PCI.
Continuar leyendo «Cómo usar la clave ScanPolicy en OpenCore»

Capturando las pantallas de la BIOS

En el año 2016 arrancó un proyecto para desarrollar un driver que sirviese para capturar la pantalla estando todavía en BIOS. El driver que surgió de este proyecto se llama CrScreenshotDxe y se utiliza en el mundo Hackintosh para tomar pantallazos desde el menú de OpenCore.

Nota: web del proyecto original y web de la versión actual en GitHub. Pero no es necesario descargarlo desde aquí porque está incluido en las versiones de OpenCore.

CrScreenshotDxe también se puede utilizar para tomar pantallazos de la BIOS pero para ello requiere insertar el driver en la imagen de la BIOS de nuestra placa base con herramientas tipo UEFITool. Es un proceso complejo y entraña el riesgo de dañar la BIOS y que el PC no arranque correctamente.

Sin embargo esta opción ha quedado obsoleta porque la mayoría de las placas base modernas vienen con esta característica incorporada. Por ejemplo, mi placa Z390 Aorus Elite viene con esta función incluida.

¿Cómo tomar pantallazos de la BIOS?

Continuar leyendo «Capturando las pantallas de la BIOS»

Cambiar de OpenCore 0.6.4 a 0.6.5

Ya es oficial la versión 0.6.5 de OpenCore lanzada el 4 de enero de 2020. Hay cambios profundos tanto en el propio paquete como en algunas utilidades y extensiones publicadas junto a él. También hay cambios en el archivo config.plist aunque son pocos y fáciles de realizar.

Como en ocasiones anteriores, es altamente recomendable leer el artículo de vit9696 (Mykola Grymalyuk – Khronokernel) con un resumen excelente de los cambios más importantes.

Sin entrar a fondo en las múltiples modificaciones y mejoras, estas son las principales diferencias que hay que tener en cuenta.

config.plist

Pocos cambios, como ya he comentado. Se añaden 2 claves nuevas y se elimina una de las versiones anteriores.

  • Añadida la clave PickerVariant (string) en Misc – Boot: especificar set de iconos, puede ser Auto.
  • Añadida la clave SetupDelay (number) en UEFI – Audio: especificar un intervalo de tiempo en milisegundos para reconfigurar el audio, puede ser 0.
  • Eliminada la clave DeduplicateBootOrder en UEFI – Quirks, ya no es necesaria.
Continuar leyendo «Cambiar de OpenCore 0.6.4 a 0.6.5»

MacPro7,1 memory modules misconfigured

Usuarios de macOS Catalina y Big Sur que utilizan SMBIOS de MacPro7,1 reciben un aviso de error al arrancar: MEMORY MODULES MISCONFIGURED – More than the maximum supported memory is installed in your Mac. Los desarrolladores de OpenCore (OC) tienen un artículo muy completo sobre este problema Fixing MacPro7,1 Memory Errors y la forma de solucionarlo a partir de la versión 0.6.3. Yo me limitaré a traducir lo fundamental y ampliar la información de acuerdo con mi experiencia.

El modelo MacPro7,1 fue puesto a la venta en 2019 y es, hasta la fecha, el Mac más potente y modular, con una orientación claramente profesional. Lleva una CPU Intel Xeon de 8 a 28 núcleos según modelos y tarjetas gráficas AMD Radeon Pro 580X. Carece de iGPU. Aunque no parece un modelo de SMBIOS adecuado a la mayoría de los hackintosh, algunos usuarios que han montado equipos de alto rendimiento con CPU Xeon y gran cantidad de memoria RAM lo utilizan. También lo usan otros usuarios con equipos basados en CPU Intel de 9ª o 10ª generación sin tarjeta gráfica integrada.

Todavía no está del todo claro el mecanismo por el que se genera el aviso. Hasta el lanzamiento de Big Sur, el plugin de Lilu MacProMemoryNotificationDisabler.kext desarrollado por IOIIIO solucionaba el problema y el aviso dejaba de aparecer a costa de generar cierta inestabilidad en algunos sistemas. Pero esta kext no funciona en Big Sur. Lilu aplica los parches como el de esta kext en el espacio de usuario al que Big Sur no deja acceder para esta tarea por lo que ha dejado de funcionar.

Continuar leyendo «MacPro7,1 memory modules misconfigured»

macOS Big Sur en la placa Z390 Aorus Elite

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.

Continuar leyendo «macOS Big Sur en la placa Z390 Aorus Elite»

AHCI en Big Sur: Generic AHCI Controller

Big Sur ha eliminado la clase AppleIntelPchSeriesAHCI en la extensión AppleAHCIPort.kext por lo que los controladores AHCI de la familia Intel han dejado de ser reconocidos como tales y se muestran como genéricos.

A algunos usuarios les disgusta ver que el controlador Intel de una determinada familia sale como genérico aunque se trata de un inconveniente puramente cosmético que no parece interferir con el rendimiento o el comportamiento de los controladores.

Continuar leyendo «AHCI en Big Sur: Generic AHCI Controller»

OpenCore con 10.15 en la placa Z390 Aorus Elite

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.

Continuar leyendo «OpenCore con 10.15 en la placa Z390 Aorus Elite»

Intel UHD Graphics 630 Coffee Lake en macOS

Utilizar la tarjeta gráfica integrada Intel UHD Graphics 630 Coffee Lake en headless mode (modo sin cable, sin conexión con monitor) para ser utilizada por macOS Catalina y Big Sur en tareas de codificación de vídeo, llevando la imagen al monitor con Radeon RX 580, añadiendo codificación y descodificación de vídeo por hardware al sistema, o utilizarla como tarjeta principal que lleva la imagen al monitor.

Nota: basado en la guía [GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem) de CaseySJ. Instrucciones para OpenCore.

En los Mac con tarjeta gráfica integrada (iGPU) y otra dedicada (dGPU) el sistema utiliza la integrada para codificación y descodificación de vídeo. Al construir un Hackintosh con ambos tipos de GPU podemos encontrarnos con que, aunque la dGPU sea mucho más potente que la iGPU, si esta no está bien instalada y reconocida por el sistema falla la codificación de vídeo. Cuando esto sucede pero no queremos tener la iGPU como tarjeta primaria hay que configurar la iGPU como headless mode (se llama así cuando está activa pero sin cable hacia display) para que sea la dGPU la que muestre la imagen pero la integrada esté disponible para codificar/descodificar vídeo.

Continuar leyendo «Intel UHD Graphics 630 Coffee Lake en macOS»

AMD Radeon RX 580 en macOS

Tarjeta gráfica AMD RX 580 de 8GB en macOS High Sierra (desde 10.13.6), Mojave, Catalina y Big Sur en la placa Gigabyte Z390 Aorus Elite: funcionamiento excelente con aceleración gráfica (Metal) tal como sale de la caja, sin necesidad de controladores (kexts), con 1 inconveniente cosmético en el arranque del sistema operativo (se propone solución).

He colocado la tarjeta gráfica XFX AMD Radeon RX-580 P8DFD6 8GB Triple X Edition GDDR5, 256BIT, DVI+HDMI+3DP en una placa base Z390 Aorus Elite con micro i3-9100 Coffee Lake para poder instalar 10.14 Mojave, 10.15 Catalina y 11 Big Sur porque la tarjeta que he utilizado estos últimos años, Nvidia Geforce GTX 750 1GB, impedía pasar de 10.13.6 High Sierra ya que esta fue la última versión para la que Nvidia publicó los controladores web alternativos que eran necesarios para que la tarjeta funcionase bien con aceleración gráfica.

La nueva tarjeta RX 580 necesita bastante más espacio que la antigua aunque cabe perfectamente en una caja formato ATX y requiere conector de corriente adicional. Lleva incorporados 2 grandes ventiladores que la mayor parte del tiempo están parados, al menos en mi caso. En macOS funciona perfectamente, incluso con aceleración Metal, instalándola sin controladores adicionales y sin añadir configuraciones en Clover u OpenCore. Pero presenta un inconveniente que comento a continuación.

Continuar leyendo «AMD Radeon RX 580 en macOS»

DRM en macOS: iMac19,1 o iMacPro1,1 con RX 580

Los componentes de mi hackintosh (Z390 Aorus Elite + i7 9700 + AMD RX 580) permiten utilizar SMBIOS de 2 modelos distintos de Mac: iMac19,1 e iMacPro1,1. Con ambas configuraciones el sistema puede funcionar bien, integrando la codificación y descodificación de vídeo por hardware. La diferencia entre ellas está en la capacidad de reproducir contenidos protegidos con DRM, específicamente iTunes y TV+ de Apple.

iMac19,1

Este modelo de iMac apareció durante el año 2019. Hay 3 detalles técnicos que lo asemejan mucho a mi PC:

  • procesador Intel de 9ª generación Coffee Lake Refresh
  • iGPU Intel UHD Graphics 630
  • dGPU AMD Radeon Pro 570X / 575X / 580X.

El motivo principal para elegir iMac19,1 está sobre todo en el micro que es de la misma familia que el mío con lo cual lleva incorporada también la misma iGPU. Sin olvidar que la dGPU es similar. Nos encontramos ante un Mac con 2 tarjetas gráficas.
En el Mac real la dGPU puede ser utilizada para mostrar los gráficos principales con buen rendimiento mientras la iGPU puede contribuir con tareas de codificación y descodificación de vídeo por hardware, descargando a la CPU de estas tareas. Esto es lo que se busca al recurrir a esta SMBIOS: dGPU gráficos / iGPU codificación. Para conseguirlo hay que:

Continuar leyendo «DRM en macOS: iMac19,1 o iMacPro1,1 con RX 580»