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.

  • Eliminada la clave SMBIOS – MemoryFormFactor
  • Añadida una clave nueva de tipo booleano llamada CustomMemory
  • Añadida una clave nueva llamada PlatformNVRAM con 5 subclaves: BID, FirmwareFeatures, FirmwareMask, MLB y ROM, algunas de estas claves continúan presentes en la sección SMBIOS
  • Añadida una clave nueva llamada Memory con varias subclaves relacionadas con la memoria RAM:
    • DataWidth: ancho de banda en bits del bus, suele tener el valor de 64
    • ErrorConnection: método primario de detección o corrección de errores (ninguno, paridad, ECC…)
    • FormFactor: el tipo de módulo empleado (DIMM, SODIMM…)
    • MaxCapacity: capacidad máxima de memoria, en bytes, soportada por la placa base
    • TotalWidth: valor total del ancho del bus, en bits, incluidos los canales de corrección de errores si los hay; si no existen, el valor de TotalWidth es idéntico a DataWidth
    • Type: tipo de memoria (DDR3, DDR4…)
    • TypeDetail: información adicional sobre la memoria (Synchronous, Buffered, Unbuffered…)
    • Devices: en esta sección se describen los bancos de memoria, ocupados o no, y se especifican características de cada uno de ellos.
      • AssetTag: etiqueta de propiedad del módulo de memoria
      • BankLocator: nombre del banco de memoria en que se aloja el módulo
      • DeviceLocator: descripción de la posición del banco en la placa base
      • Manufacturer: fabricante de la memoria
      • PartNumber: código correspondiente al modelo de memoria
      • SerialNumber: número de serie de cada módulo
      • Size: tamaño en MB, 0 indica que está vacío
      • Speed: velocidad máxima de la memoria en MT/s (megatransfers por segundo).

¿Cómo saber las características de la memoria?

En el mundo Linux existe desde hace tiempo una herramienta llamada dmidecode que proporciona información sobre el hardware tal como está descrito en la BIOS según el estándar SMBIOS / DMI. Acidanthera tiene una versión específica para macOS, la versión actual es 3.2c (dmidecode-mac-3.2c.zip). Se descarga como un archivo ejecutable dmidecode que conviene copiar a la carpeta / usr / local / bin para que esté accesible en la variable PATH. Con esta herramienta obtenemos información de los parámetros SMBIOS del ordenador a través de I/O Registry. En este caso nos interesa la sección de la memoria, en concreto lo relativo a los 4 dispositivos (slots) de memoria. Para ello empleamos dmidecode con el modificador -t memory. Este código, por ejemplo, es de mi PC (se muestran solamente los datos del primer banco de memoria):

> dmidecode -t memory
# dmidecode 3.2c
Scanning I/O Registry for entry point.
SMBIOS 3.2 present.

Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 0 kB
	Error Information Handle: No Error
	Number Of Devices: 4

Memory Device
	Array Handle: 0x009D
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 8 GB
	Form Factor: DIMM
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: Corsair
	Serial Number: 200400138487908
	Asset Tag: 9876543210
	Part Number: CMK16GX4M2B3200C16
	
(sigue con la descripción de los otros 3 bancos de memoria).

Con dmidecode podemos averiguar algunos de los datos que hay que escribir en config.plist: DataWidth, ErrorConnection, FormFactor, TotalWidth, Type, TypeDetail, BankLocator, DeviceLocator, Speed, PartNumber, AssetTag y Manufacturer. El valor de MaxCapacity lo especifica el fabricante de la placa base. SerialNumber se puede ver en la etiqueta adherida a cada módulo de memoria.

Rellenar los datos de config.plist

Con los datos obtenidos desde dmidecode, las especificaciones de la placa base y la etiqueta de los módulos de memoria, se pueden rellenar correctamente los campos de config.plist. Estos serían los datos de mi sistema, has de cambiarlos por los tuyos si son diferentes.

  • DataWidth: 64 (muchas de las memorias RAM actuales son de 64 bits)
  • ErrorCorrection: 3 (ninguno)
  • FormFactor: 9 (DIMM)
  • MaxCapacity: 128 GB (137438953472 bytes)
  • TotalWidth: 64 (coincide con DataWidth)
  • Type: 26 (DDR4)
  • TypeDetail: 128 (Synchronous, bit 7)
  • AssetTag: 9876543210 (dmidecode)
  • BankLocator: BANK 0 /BANK 1 / BANK 2 / BANK 3
  • DeviceLocator: ChannelA-DIMM0 / ChannelA-DIMM1 / ChannelB-DIMM0 / ChannelB-DIMM
  • Manufacturer: Corsair
  • PartNumber: CMK16GX4M2B3200C16 (etiqueta del fabricante)
  • SerialNumber: 200400138487908 (etiqueta del fabricante)
  • Size: 8 Gb por módulo (8000 MB)
  • Speed: 3200 MT/s.

Nota: en OpenCore Reference Manual (0.6.3) [2020.10.24] están los valores que puedes emplear en estas claves.

41 comentarios en «OpenCore 0.6.3: nueva sección Memory»

  1. Ahora voy a Mail pero desde ya te digo que esas velocidades son muy altas, propias de discos NVMe, mucho más elevafas que las que veo con mis SSD Sata. Al menos a nivel de disco puro no hay problema ninguno.

  2. Jajaja sí, soy gallego-asturiano, casi nada! Te escribo por mail entonces y te envío la imagen y más preguntas… jejeje.

  3. Ricardo, el enlace corto de la captura no me funciona ni en Safari ni en Chrome, mándala por email a eaperez arroba me punto com.
    «… me parece un poco trapallada»: ¿eres gallego? He escuchado esa palabra en Galicia. Me ha hecho gracia la frase 🙂
    Respecto a NVRAM. Lo que quiero decir es que, cuando cambio de carpeta EFI (supón que he estado usando una carpeta y he realizado cambios y voy a probar otra diferente) o cuando cambio de arrancar desde el disco a arrancar desde la memoria USB (si la EFI de la memoria USB es diferente en algún aspecto de la otra) es conveniente la primera vez limpiar la NVRAM para evitar que claves de la EFI anterior interfieran con la nueva. Solamente eso. Al cambiar de carpeta EFI. Este reset de NVRAM puede hacerse cuando arrancas desde disco o cuando arrancas desde USB, no es necesario hacerlo arrancando desde USB.

  4. Te mando una captura del test del disco M.2 shorturl.at/fijI0, parece ser que puede estar bien entonces.
    Sí, el TRIM en informe del sistema pone que está activado.
    Otra cosa que se me pasaba, por ahí arriba me decías que cada vez que se cambia de EFI hay que resetear la NVRAM, supongo que te refieres al principio en el reinicio, cargar el OpenCore desde el USB y hacerlo desde ahí no? Si lo hago con el USB insertado, se carga el USB, entonces el truco que hago es justo quitarlo antes de darle, dime si lo hice bien o cómo tengo que hacerlo porque me parece un poco trapallada.

  5. Vale, perfecto, mañana que tengo toda la tarde haré las pruebas y ya te voy diciendo.

  6. Empiezo por el final. No me parece una diferencia significativa la prueba de GeekBench 4. Es pura CPU, la RAM no influye aquí. Si además hay algunas cosas en tu sistema que no funcionan del todo bien (disco lento, discos no detectados…) eso puede afectar al resultado final.
    Como ejemplo, mira resultados de GeekBench 4 con i9 9900 (no sabemos el resto del hardware, sólo lo tomamos como orientación) y verás que tanto AudioGod como tú sacáis cifras muy buenas.
    GeekBench 4
    Saphire es buena marca, ha de funcionar bien en macOS. No hay tanta diferencia con Nitro, en realidad es poca y solamente la notarás con tareas muy, muy exigentes.

    Pregunta 1: disco M.2. Debería ir rápido, los M.2 suelen ser más rápidos que los SSD. ¿Has hecho alguna prueba o test? Hay uno gratuito en la App Store, Aja System Test Lite, específico de disco, hazlo (u otro que te guste más) y dime los resultados al menos en lectura y escritura secuenciales que deberían rondar o superar los 3000 MB/s con archivos grandes. CrystalDiskMark es otro software clásico para estas pruebas pero es de Windows. Las causas en caso de que vaya lento son múltiples y difíciles de localizar. ¿Tienes TRIM activado?

    Pregunta 2: discos no detectados. Supongo que los 6 discos están conectados a los SATA0 – SATA5 de la placa base. Si los no detectados están en SATA0 y/o SATA1 entonces la causa puede estar en el M.2. En muchas placas actuales, al instalar un disco de este tipo se desactiva automáticamente SATA0 (a veces SATA1 también). ¿Cuáles no detectas? ¿Son siempre los mismos, conectados a los mismos puertos SATA?

  7. Al final pillé la Sapphire Radeon RX 580 8gb y devolví la otra que era igual pero nitro, aunque esta sea menos potente por lo menos tengo más garantía, y ya te digo yo que de la otro no me acababa de fiar, como bien dice, está descatalogada y hay que pasar por caja… 280 euros… pero bueno, ahora ya está.
    Tengo varias preguntas, la primera es que me da la impresión que el disco duro no va como tiene que ir, me tarda en cargar macOS y en cerrarse al apagar, es un m.2 de Western Digital. el que recomiendan en GitHub, el SN750.
    Después, tengo 6 discos duros conectados en el hackintosh pero no me los lee todos, los tengo formateados y listos pero alguno no los reconoce, igual tengo que configurar algo en config.plist.
    Y por último, cuando paso GeekBench4 solo me da 37715 cuando a AudioGod con menos RAM le da 38381.

  8. Es cierto que comprar por Amazon es una comodidad, si la pruebas y no te gusta tienes tiempo de sobra para devolverla.
    ¿Qué marca y modelo vas a encargar? Porque yo estoy haciendo otro hackintosh que va a ser prácticamente idéntico al actual (única diferencia, CPU i9 9700 en vez de i3 9100) pero, al ir a comprar la RX 580, veo que en muchos vendedores ya no se encuentra (descatalogada) y en Amazon la más barata es XFX y las otras marcas están mucho más caras. Lo comento porque ya sabes que XFX en algunos foros no se recomienda aunque en mi PC actual es la que tengo puesta y hasta ahora ha funcionado bien y muy compatible, así que voy a volver a comprar la misma por el precio. Hay en Amazon una MSI también con precio aceptable pero esa no la cojas que el coprocesador gráfico es Nvidia, hay que mirar que el procesador y el coprocesador sean AMD, por ejemplo XFX, Gigabyte, Saphire, etc.

  9. Hola!
    Vale, te haré caso y no le daré mas importancia, pero de momento la voy a cambiar por una nueva, ya que esta era de 2ª mano y no sé, aún así no me daba buenas sensaciones… así que gasto un poco más y me hago con una nueva que por lo menos tiene 2 años de garantía y por Amazon, que cualquier cosa me la cambian sin problema.

    En cuanto vuelva a instalarlo, que estos dias ando liado, ya te voy comentando.
    Saludos!!

Deja un comentario