iMac19,1 o iMacPro1,1 con i3 9100 y RX 580

Los componentes de mi hackintosh (Z390 Aorus Elite + i3 9100 + 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 «iMac19,1 o iMacPro1,1 con i3 9100 y RX 580»

macOS Big Sur 11.0.1 en la placa Z390 Aorus Elite

La instalación de la versión definitiva de Big Sur (11.0.1) en mi sistema (Z390 Aorus Elite + i3 9100 + RX 580 + OpenCore 0.6.4) ha resultado sencilla.

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 la beta 10 y he actualizado este mismo sistema, con 3 reinicios durante el proceso, sin incidentes de ningún tipo. También he realizado la misma actualización desde un sistema con macOS Catalina y ha funcionado igual de bien. Recuerda copiar la aplicación Install macOS Big Sur.app desde la carpeta Aplicaciones a otro sitio porque desaparece al terminar la instalación o actualización del sistema y tendrías que volver a descargarla.

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

macOS Big Sur beta en la placa Z390 Aorus Elite

Instalar macOS 11 Big Sur beta en placa base Z390 Aorus Elite con i3 9100 Coffee Lake y Radeon RX 580, utilizando OpenCore 0.6.4 como gestor de arranque.

macOS 11 Big Sur (BS en adelante) va a ser la siguiente versión del sistema operativo de los Mac. Desde la web Apple Beta Software Program se puede descargar la utilidad que activa las versiones beta públicas desde el panel Actualización de Software de Perfil del Sistema. La versión beta pública actual es la 9, compilación 20A5384c.

En mi PC la instalación de BS beta en un disco SSD independiente ha resultado relativamente fácil teniendo en cuenta la gran cantidad de cambios internos en relación con el kernel, la carga de extensiones, los mecanismos de seguridad y otras características muy importantes en lo que respecta al mundo Hackintosh. Los desarrolladores de OpenCore (OC en adelante) han publicado varias versiones, 0.6.0, 0.6.1, 0.6.2, 0.6.3 y 0.6.4, capaces de arrancar BS en los PC compatibles.

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

OpenCore 0.6.4 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 0.6.4 en la placa Z390 Aorus Elite»

OpenCore 0.6.3: nueva sección Memory

En Opencore (OC) 0.6.3, todavía en fase beta, se ha introducido un cambio en el archivo SampleCustom.plist, se ha añadido una nueva sección Memory dentro de PlatformInfo, en ella se describen una serie de parámetros de la memoria RAM tal como están definidos en la especificación SMBIOS.

Nota: artículo importante solamente para aquellos casos en que la memoria tiene errores en SMBIOS y es conveniente definir sus parámetros manualmente. La mayoría de los usuarios parten del archivo Sample.plist (en vez del archivo SampleCustom.plist) y en él está ausente la sección Memory y para ellos este artículo no es necesario. La diferencia está en la nueva clave CustomMemory que, si está en true, requiere rellenar la sección Memory pero, si está en false, permite omitir completamente esa sección.

Cambios en config.plist de OC 0.6.3

OC 0.6.3 presenta cambios significativos en sus características de funcionamiento, varios de ellos dirigidos a mejorar su integración con Big Sur. También presenta cambios en la estructura de SampleCustom.plist. Todos estos cambios están dentro de PlatformInfo.

Continuar leyendo «OpenCore 0.6.3: nueva sección Memory»

NVRAM nativa en la placa Z390 Aorus Elite

Cómo conseguir que la CMOS almacene datos básicos de configuración de macOS, como se hace en los ordenadores de Apple, en placas base modernas con chipset Intel Z390, entre otros, que carecen de esa posibilidad por diseño, mejorando el funcionamiento del Hackintosh y acercándolo más al de un verdadero Mac.

(Artículo basado en otro de los autores de OpenCore, en Dortania)

¿Qué es la NVRAM?

NVRAM (memoria de acceso aleatorio no volátil, non-volatile random access memory) es una pequeña porción de memoria que los Mac utilizan para guardar algunas configuraciones de forma que estén disponibles aunque se apague la corriente eléctrica, por ejemplo información sobre los fallos recientes del kernel, volumen del sonido, resolución de pantalla, disco de arranque seleccionado, zona horaria y otros parámetros básicos. Esta memoria se mantiene gracias a la pila eléctrica de la placa base. Si está pila es retirada o se agota, los datos almacenados y la configuración personalizada de la BIOS se pierden.

NVRAM en las placas con chipset Z390

En estas placas de diferentes fabricantes Intel ha declarado el firmware de una manera que impide que macOS pueda conocer la región del mapa de memoria UEFI en que se encuentra la NVRAM. Esto tiene consecuencias negativas, incluida la de no guardar estas configuraciones básicas entre reinicios.

Continuar leyendo «NVRAM nativa en la placa Z390 Aorus Elite»

CFG unlock con OpenCore y CFGLock.efi

Desbloquear el registro MSR 0xE2 (CFG Unlock), que por defecto viene bloqueado para escritura en muchas placas base modernas, para que macOS pueda escribir en él los estados de gestión de energía de la CPU sin necesidad de utilizar los parches del kernel AppleCpuPmCfgLock y AppleXcpmCfgLock que son imprescindibles para arrancar macOS en los Hackintosh con CFG bloqueado.

¿Qué es CFG Lock y MSR 0xE2?

CFG Lock es una configuración de la BIOS que permite escribir en un registro específico, en este caso en MSR E2 (MSR = Model Specific Register). Un MSR consiste en uno o varios registros incluidos en bloques de instrucciones utilizadas para llevar a cabo determinadas tareas en una CPU. Los MTR también sirven para controlar el acceso de la CPU a rangos de memoria. Los comandos capaces de leer y escribir en MSR funcionan con privilegios elevados (el sistema operativo, fundamentalmente).

Muchos modelos de placas base vienen de fábrica con la región MSR E2 bloqueada (se puede leer pero no escribir) y bastantes de ellas incluso ocultan esta opción en la interfaz de usuario de la BIOS. En aquellas que sí muestran la opción para bloquear o desbloquear esta variable, suele denominarse CFG Lock. CFG Lock es un bit con 2 valores, 0x1 o 0x0. Cuando es 0x1, macOS no puede escribir en esta región y son necesarios parches para el kernel.

Continuar leyendo «CFG unlock con OpenCore y CFGLock.efi»

¿Necesito SSDT-AWAC en mi Hackintosh?

Basado en el texto publicado por los autores de OpenCore titulado Fixing System Clocks dentro de la sección Getting Started With ACPI del cual en gran parte es una traducción.

Real-time clock (RTC)

Un reloj en tiempo real (RTC) es un reloj que funciona con pila o batería y que se incluye en un microchip en la placa base de un ordenador. Suele estar separado del microprocesador y se denomina «CMOS» (Complementary Metal Oxide Semiconductor). Su función es mantener una corriente cuando la placa base se apaga y/o es desconectada de la corriente eléctrica y, de esta forma, evitar que la BIOS se desconfigure cada vez que se apaga el ordenador.
Una pequeña memoria en este microchip almacena la descripción del sistema o los valores de configuración, incluidos los valores de tiempo almacenados por el RTC. Cuando encendemos el ordenador, la BIOS lee la hora actual desde la memoria en el chip con el RTC.
Aunque el término RTC normalmente se refiere a dispositivos en ordenadores y sistemas embebidos, los RTC están presentes en la mayoría de los aparatos electrónicos que necesitan guardar el tiempo exacto.

Placas base con chipset Intel series 300

Algunos fabricantes de placas base Intel, sobre todo de la serie 300 (B360, B365, H310, H370, Z370, Z390, B460, Z490, etc.) han implementado un nuevo tipo de reloj del sistema llamado AWAC (ACPI Wake Alarm Counter Clock). El problema es que macOS no sabe manejar AWAC y, en su lugar, espera encontrar el clásico RTC. Esto puede ocasionar problemas como la desconfiguración de la BIOS en cada apagado o errores importantes al arrancar el sistema operativo. La solución pasa por traer de vuelta el RTC para que macOS pueda funcionar correctamente. Esto es lo que se busca con los archivos SSDT-AWAC y SSDT-RTC0. Cada uno de ellos funciona de forma diferente:

Continuar leyendo «¿Necesito SSDT-AWAC en mi Hackintosh?»

Intel Graphics 630 headless mode en macOS

Utilizar la tarjeta gráfica integrada Intel UHD Graphics 630 Coffee Lake (procesador i3 9100) en headless mode (modo sin cable, sin conexión con monitor) para ser utilizada por macOS Catalina 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.

Nota: mi placa base es Z390 Aorus Elite que con BIOS F10c se cuelga al arrancar macOS inmediatamente después del menú de Clover cuando la tarjeta integrada está habilitada independientemente de que esté conectada a monitor o no, hay que permanecer en la versión F9 que funciona bien.

Nota: basado en el excelente artículo [GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem) de CaseySJ y en la funcionalidad Framebuffer patch de la herramienta Hackintool de headkaze.

Nota: instrucciones con Clover r5122 y OpenCore 0.6.2.

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 Graphics 630 headless mode en macOS»

Reparar la partición EFI de macOS Catalina

Reparar la partición EFI de macOS Catalina cuando desde Utilidad de Discos no es posible completar Primera Ayuda sobre el disco en el que se encuentra esa partición con el mensaje «El mapa de particiones debe repararse porque hay un problema con el sistema de archivos de la partición EFI (-69766)».

En ocasiones, después de actuar sobre la partición EFI (reinstalando Clover o modificando algún archivo en la carpeta EFI / Clover) al actuar sobre esa partición con la función Primera Ayuda de Utilidad de Discos se obtiene el mensaje de error «El mapa de particiones debe repararse porque hay un problema con el sistema de archivos de la partición EFI (-69766)».

Aparentemente el sistema funciona bien así pero, si deseas corregir este error, hay una opción drástica (reinstalar macOS) y otra simple y rápida: reparar la partición EFI desde Terminal.

Continuar leyendo «Reparar la partición EFI de macOS Catalina»