Hackintosh en AMD Zen

Escrito el y tuvo 0 comentarios

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.

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

NOTA: para los que desean hacer el proceso desde Linux, visitar el siguiente enlace.


Creación de memoria USB booteable

Lo primero sera bajar la aplicación gibMacOS, luego descomprimimos y ejecutamos el archivo con el mismo nombre.

gibMacOS

Ya abierta la aplicación seleccionamos la opción Toggle Recovery-Only. Luego seleccionamos la versión que deseamos instalar. En el caso que tengamos un equipo FULL AMD (CPU + GPU) seleccionamos Catalina y si es un equipo AMD Ryzen + Nvidia seleccionamos High Sierra (para saber si la gráfica Nvidia es compatible con macOS visita el siguiente enlace).

NOTA: en el dado caso que desees instalar a High Sierra y no aparezca en la lista; Seleccionen la opción Change Max-OS Versión, luego escriban 10.13.

Una vez seleccionada la versión, la aplicación comenzara a descargar los archivos necesarios.

Descarga de macOS

Ya descargados los archivos, cerramos la ventana y buscamos la aplicación MakeInstall (con privilegios de administrador).

Ya abierta seleccionamos la memoria USB en donde meteremos el instalador de macOS.

Nos advertirá que el dispositivo sera borrada por completo

Luego de haber configurado el dispositivo, la aplicación nos pedirá la ubicación del archivo recovery update pkg el cual esta ubicado en la carpeta \gibMacOS-master\macOS Downloads\publicrelease\

Ya teniendo la ubicación del archivo, la digitamos en la aplicación.

El proceso puede tardar varios minutos

Luego de haber terminado el proceso, cerramos la aplicación y comenzamos a configurar el Bootloader. En el caso del Hackintosh con AMD nos toca utilizar a OpenCore.


Configuración de OpenCore


Preparativos

Es necesario descargar los siguientes archivos para realizar la configuración:

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

Estructura básica de OpenCore

Ya teniendo el archivo en su lugar, lo abrimos y comenzaremos a editarlo.


Edición del config.plist

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


ACPI

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

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

Edicion del Item 0

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


Booter

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

  • RebuildAppleMemoryMap: Yes
  • SyncRuntimePermissions: 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 OpenCore/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.

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/patches.plist

Copy/paste

Quirks

En esta sección solo habilitaremos cuatro opciones:

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

Misc

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

Debug

  • AppleDebug: Yes
  • DisableWatchDog: Yes
  • Target: 67

Security

  • AllowNvramReset: Yes
  • AllowSetDefault: Yes
  • ScanPolicy: 0
  • Vault: Optional
Estructura editada de Misc

NVRAM

En este apartado se editaran solo tres 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 Maxwell y Pascal
(macOS 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

ValorEfecto
00000000SIP activado por completo
03000000Permitir utilizar kexts sin firmar y escribir en ubicaciones protegidas
E7030000SIP desactivado completo

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

Delete

7C436110-AB2A-4BBB-A880-FE41995C9F82

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

WriteFlash: 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
iMacPro1,1AMD RX Polaris y GPU recientes
MacPro7,1AMD RX Polaris y GPU recientes (este modelo es exclusivo para macOS 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 seccion 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 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.

APFS

En esta sección solo revisaremos que estén activados los siguientes valores:

  • EnableJumpstart: Yes
  • HideVerbose: Yes

Drivers

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

  • HfsPlus.efi
  • OpenRuntime.efi

NOTA: Bajar el driver HfsPlus.efi ya que no viene por defecto en OpenCore y copiarlo a la carpeta /OpenCore/EFI/OC/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.


Pasos finales

Ya teniendo configurado a OpenCore, movemos la carpeta EFI a la partición FAT32 de 200 MB que ha creado MakeInstall en la memoria USB.

NOTA: Si hay archivos en esa partición, bórrenlos todos.

Estructura de archivos en la memoria USB

Ahora solo queda reiniciar y configurar nuestra BIOS/UEFI para poder instalar macOS.


Configuración de la BIOS/UEFI

Antes de comenzar a instalar hay que configurar nuestra BIOS/UEFI para habilitar y deshabilitar las siguientes opciones:

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


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

En el foro encontraran mas elementos «post-instalación» para afinar el funcionamiento del sistema.

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