Hackintosh en AMD Zen

Escrito el y tuvo 0 comentarios

Esta guia es compatible con OpenCore 0.6.6

En esta guía les trataré de explicar de forma sencilla, la creación de un dispositivo USB booteable para poder instalar macOS en un equipo con procesador AMD Zen; Dicha guía puede realizarse tanto en Windows, Linux o macOS.

El proceso requiere conocimientos en informática y que tan bien conoces los componentes de tu PC.

Graficas Nvidia

Si tienes una grafica Nvidia por favor considera estos puntos:

  • Las GTX 1000 e inferiores solo pueden ser utilizadas en macOS High Sierra
  • Las RTX 2000 en adelante no son soportadas en macOS
  • Las series 600 / 700 tienen soporte nativo, por ende es posible utilizar versiones superiores a High Sierra

Graficas AMD

En el caso de las GPU AMD la mayoría son soportadas de forma nativa, excepto las APU y casos especiales como la AMD RX 550.


Configuración de OpenCore


Preparativos

Es necesario tener descargados e instalados los siguientes elementos:

Lo primero será extraer los archivos, luego entrar a la carpeta OpenCore/Docs/, copiamos el archivo Sample.plist, luego lo movemos a OpenCore/X64/EFI/OC/ y lo renombramos como config.plist

Estructura básica de OpenCore

Ya teniendo el archivo en su lugar, lo abrimos (Xcode o ProperTree) y comenzaremos a editarlo.

En el caso de Linux, ejecutar a ProperTree desde terminal mediante el comando python3 ./ProperTree.command


Edición del config.plist

Lo que viene a continuación es un proceso que puede volverse tedioso, pero simple de entender si seguimos detenidamente las instrucciones.

NOTA: Entrar al siguiente enlace para hacer un poco más relajante el proceso (Solo funciona con ProperTree), luego regresan para continuar.


ACPI

En este apartado solo necesitaremos agregar la opción SSDT-EC-USBX-DESKTOP en la sección add. Para que no sea frustrante la edición, simplemente utilicen uno de los grupos de opciones y cambian los datos por los que están a continuación:

Comment: SSDT-EC-USBX-DESKTOP
Enabled: Yes
Path: SSDT-EC-USBX-DESKTOP.aml

Agregando el ítem 0

Luego de haberlo editado, bajan el archivo SSDT-EC-USBX-DESKTOP.aml y lo copian a la carpeta OpenCore/EFI/OC/ACPI.

En el dado caso de tener una motherboard con chipset A520 / B550, deberán de descargar adicionalmente el archivo SSDT-CPUR.aml y realizar el mismo proceso:

Comment: SSDT-CPUR
Enabled: Yes
Path: SSDT-CPUR.aml


Booter

En este apartado nos ubicaremos en la sección Quirks y editamos las siguientes opciones:

  • DevirtualizeMmio: False / No (Si tienes un TRx40 activa esta opción)
  • EnableWriteUnprotector: False / No
  • RebuildAppleMemoryMap: True / Yes
  • SetupVirtualMap: True / Yes (Deshabilitar si se tiene una placa B550, A520, TRx40) (Deshabilitar si las placas B450/X470/X570 están actualizadas para soportar los Zen 3+)
  • SyncRuntimePermissions: True / Yes
Edición de Quirks en Booter

DeviceProperties

En este apartado lo único que vamos hacer es eliminar la opción PciRoot(0x0)/Pci(0x1b,0x0) que se encuentra en la sección add, ya que no contamos con un procesador Intel con gráficos integrados.

DeviceProperties con el elemento eliminado

Kernel

Y llegamos a uno de los apartados que puede generar mucho trabajo.

ADD

En esta sección agregaremos todos los Kext necesarios para hacer funcionar nuestro sistema.

Para esta sección necesitaremos descargar los siguientes Kext:

NOTA: en el dado caso que necesiten otros Kext de red, visiten el siguiente enlace.

Estos archivos van ubicados en el directorio

Estos archivos van ubicados en el directorio OpenCore/X64/EFI/OC/Kexts

Carpeta Kexts

Ahora comenzaremos a editar la sección add, a modo que quede como la imagen que esta a continuación:

Estructura basica de add en el apartado de Kernel

Los Kext tiene un orden que no puede ser modificado. Lilu, VirtualSMC, WhateverGreen, Apple ALC y el Kext de red.

No todos los Kext tienen el archivo Contents, por ende hay que revisarlo para ver si existe o no.

NOTA: Revisar que el valor Enabled este en Yes para que funcione el Kext.

Emulate

En esta seccion solo activaremos la siguiente opcion:

  • DummyPowerManagement: True / Yes
Edición de Emulate

Path

Esta sección la borraremos y la reemplazaremos por los patch para AMD. Para ello tendremos que abrir el archivo /AMD_Vanilla-opencore/17h_19h/patches.plist

Copy/paste

Quirks

En esta sección solo habilitaremos cuatro opciones:

  • PanicNoKextDump: True / Yes
  • PowerTimeoutKernelPanic: True / Yes
  • XhciPortLimit: True / Yes
Edicion de Quirks en el apartado de Kernel

Misc

Y en este apartado no vamos hacer tantos cambios como la anterior.

Debug

  • AppleDebug: True / Yes
  • ApplePanic: True / Yes
  • DisableWatchDog: True / Yes
  • Target: 67

Security

  • AllowNvramReset: True / Yes
  • AllowSetDefault: True / Yes
  • BlacklistAppleUpdate: True / Yes
  • ScanPolicy: 0
  • SecureBootModel: Default (cambiar a Disabled si se esta utilizando una GPU Nvidia)
  • Vault: Optional
Estructura editada de Misc

NVRAM

En este apartado se editaran unos cuantos elementos en diferentes secciones, pero dependiendo de nuestro hardware tendrá algunas variaciones.

Add

4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

UIScale

CondiciónValor
Si el monitor es 1080p – 2K<01>
Si el monitor es igual o superior a 4K – UHD<02>

7C436110-AB2A-4BBB-A880-FE41995C9F82

boot-ags

VariaciónValor
-v keepsyms=1 debug=0x100 npci=0x2000 alcid=1Cualquier GPU AMD que soporte a Mojave+
-v keepsyms=1 debug=0x100 npci=0x2000 alcid=1 agdpmod=pikeraSi se está utilizando una GPU AMD Navi
-v keepsyms=1 debug=0x100 npci=0x2000 alcid=1 nvda_drv_vrl=1Habilita los drivers web Nvidia con GPU (High Sierra)

El valor alcid=1 varía dependiendo del chipset de audio que estemos utilizando (casi siempre el valor 1 funciona sin problemas), para conocer el valor que se necesita, revisa la siguiente lista.

csr-active-config: Por razones de seguridad el mejor valor es 00000000.

prev-lag:kbd formato de teclado para OpenCore, por defecto viene configurado en ruso. Para activar el idioma español cambiamos el valor data a string y escribimos es:8

prev-lag:kbd en string

Después hacer los cambios, regresamos el valor a data:

prev:lag:kbd en data

NOTA: Por si no les funciona este método en la sección pre-lag:kbd escriban en tipo data el valor 65733a38 y en el dado caso que tengan un teclado ingles estadounidense el valor es 656e2d55533a30

Delete

7C436110-AB2A-4BBB-A880-FE41995C9F82

Debemos de estar seguros que el valor de Item 0 sea boot-args

WriteFlash: True / Yes

Ejemplo NVRAM editado para una PC AMD con gráfica Polaris

PlatformInfo

En este apartado solo editaremos la sección Generic para agregar una SMBIOS que se adapte a nuestro equipo. Para ello abrimos el archivo GenSMBIOS que esta en la carpeta /GenSMBIOS-master.

Advertencia: hacer una copia de seguridad del config.plist por si algo sale mal en el proceso que viene a continuación.

GenSMBIOS

Ya abierta la aplicación seleccionamos la opción 1, luego seleccionamos la opción 2 para editar nuestro config.plist (arrastramos el archivo a la ventana de la aplicación) y terminamos con la opción 3 para seleccionar un modelo que se aproxime más a nuestro hardware.

Para los procesadores AMD Zen tenemos cuatro modelos diferentes:

ModeloHardware
iMac19,1AMD RX Polaris y GPU recientes (Catalina y versiones superiores)
iMacPro1,1AMD RX Polaris y GPU recientes (Este SMBIOS es el mas adecuado para los recién llegados)
MacPro7,1AMD RX Polaris y GPU recientes (este modelo es exclusivo para Catalina y versiones superiores)
MacPro6,1AMD R5/R7/R9 y GPU antiguas
iMac14,2Nvidia Kepler hasta Pascal

El mejor modelo para los que tengan un ecosistema AMD completo es el iMacPro1,1.

Ya elegido el modelo, simplemente lo escribimos en la aplicación y si todo salio bien les mostrará el siguiente mensaje:

SMBIOS agregado de forma exitosa al config.plist

Para estar seguros, abrimos el config.plist y revisamos la sección Generic:

Sección Generic

En dado caso que no se pueda editar el config.plist de forma automática, simplemente se agregan los datos de forma manual a la seccion Generic:

Valor generadoSeccion
TypeSystemProductName
SerialSystemSerialNumber
Broad SerialMLB
SmUUIDSystemUUID
Tabla de valores para los campos de generic

En el caso de la sección ROM, lo llenaremos con nuestra dirección MAC de la PC y para hacerlo simplemente borramos los dos puntos entre cada par de números. Ej: c0:7e:bf:c3:af:ff > c07ebfc3afff


UEFI

Y por último configuramos el apartado UEFI.

Drivers

En esta sección deben de estar activados dos drivers:

  • OpenHfsPlus.efi
  • OpenRuntime.efi

Estos archivos van ubicados en el directorio OpenCore/X64/EFI/OC/Drivers

Ejemplo del apartado Drivers

Ya con esto tendremos listo a OpenCore para poder iniciar macOS en nuestra memoria USB y asi poder instalarlo.

Es recomendable tener un disco duro/SSD secundario para instalar a macOS.


Creación de dispositivo USB booteable

Para mas información visitar el siguiente enlace.

NOTA: No bootear la USB hasta que hayan terminado de configurar la UEFI


Configuración de la UEFI

Antes de comenzar a instalar, hay que preparar la UEFI de la PC y para ello hay que editar las siguientes configuraciones:

  • Fastboot: Deshabilitado
  • CSM (Compatibility Support Module): Deshabilitado
  • Modo UEFI: Habilitado
  • Above 4G decoding: Habilitado (Si se puede habilitar esta opción, eliminar el argumento npci=0x2000 que está en NVRAM > boot-ags)

NOTA: recomiendo tener deshabilitado el Above 4G decoding si realizaran un dual boot junto a Windows 10.


Post-Instalación

Para instalar a OpenCore en el almacenamiento de la PC y resolver algunos problemas. Pueden visitar el siguiente enlace.


Si tienes preguntas o dudas puedes dejar tu comentario en el foro de SystemInside o en el grupo de Telegram.

La guía lleva mucho tiempo y estudio para elaborarla. Si deseas puedes invitarme a un café mientras estoy redactando 🙂