Descarga de ram en macbook

Quiero compartir mi experiencia actualizando mi MacBook6.1 A1342 (ampliando la memoria a 8GB, instalando SSD) y resolviendo una serie de problemas asociados con la instalación del sistema en una nueva unidad y lidiando con problemas de incompatibilidad de RAM.

Al principio, puede parecer que actualizar el hierro viejo es una tarea trivial: debería haber muchos artículos en Internet en Internet, y hay toneladas de repuestos baratos en el mercado para ello. Pero no todo es tan simple en la práctica. Los problemas comenzaron en la tienda en la etapa de selección de componentes.

Antecedentes


Por una cantidad simbólica que compré de las manos de una MacBook, esta es mi primera computadora portátil de esta compañía, inicialmente la tomé para "familiarizarme" con los productos de la compañía. Inmediatamente después de la compra, resultó que la computadora es muy lenta para nuestros días, no estaba lista para tal conocimiento. Por consejo de un amigo, decidí actualizar. Descubrí que dentro de la unidad SATA de 2.5 pulgadas y 2 tiras DDR3 204pin SO-DIMM 1066MHz, oficialmente admite un máximo de 4 Gb en una ranura. Se eligió una unidad SSD de 250 Gb en la tienda (no hay problema con la elección: cualquier SATA 2.5 "servirá, el rango es amplio en cualquier gusto).

Pero con RAM, no todo es tan simple. Oficialmente, este modelo de MacBook admite la RAM de 1066MHz, no estaba disponible y, por pedido, una barra cuesta alrededor de 4000 rublos. Al mismo tiempo, 4Gb 1600MHz estaba disponible a un precio de aproximadamente 2000 rublos. Tomó un más rápido, basado en la compatibilidad con versiones anteriores. No comenzó En la tienda, logré recoger un módulo de memoria con el que se inició el sistema (AMD R334G1339S1S) y me fui feliz a casa, sin olvidar pedir el segundo. Y para que la segunda ranura no esté vacía, active temporalmente la barra nativa de 1 Gb allí.

Debo decir que, decepcionado por la lentitud de macOS, instalé Windows 7 en toda la partición y no hice una copia de seguridad del sistema. ¡No repita mi error!

Esto termina la letra y comienza a bailar con una pandereta.

Instale macOS en una unidad en blanco


Dos personas tienen una Mac en mi aldea: la primera es mía, y la segunda es con ese matón tuerto que tiene miedo a toda la aldea. De los medios disponibles: unidad flash de 8 Gb, una segunda computadora portátil con Windows 7 a bordo, una línea de Internet dedicada.

Hay muchos artículos en Internet sobre cómo hacer una unidad flash macOS de arranque directamente en macOS. Cómo hacer una unidad flash USB de arranque con macOS High Sierra desde Windows no es mucho y todos están muy por debajo de la salida después de las formas de hacerlo en macOS. Ya comencé a buscar imágenes de unidades flash en el formato .img .iso .bin y otros, pero ¡ay! Tal vez en algún lugar de los rastreadores de torrentes bloqueados están, pero no lo encontré. Pero encontré la utilidad BDU ( Boot Disk Utility ), con la que puede descargar los archivos necesarios directamente desde la AppStore y escribir en la unidad flash USB. El programa es simple, hay una instrucción detallada con imágenes en el sitio web oficial, por lo que no me detendré en esta etapa. Solo puedo decir que no es necesario dividir la unidad flash USB en 2 particiones y descargar Clover, simplemente descargue la imagen RecoveryHD y escríbala en la sección de la unidad flash USB.

A continuación, inicie desde la unidad flash (al inicio, presione Alt y mantenga presionado hasta que aparezca el menú). En la utilidad de disco, formatee el disco (elegí GUID, APFS). Nos conectamos a Internet a través de WiFi o cable e iniciamos la instalación. Si todo está bien, el sistema mismo se descargará de Internet y se instalará en una computadora.

Problemas de compatibilidad de hierro


La segunda barra llegó bastante rápido, antes de que tuviera tiempo de disfrutar de la nueva unidad SSD y 4 + 1 Gb de RAM. Instalé la RAM, se mostraron unos 8 Gb en Acerca de esta Mac y comencé a atormentar el sistema con tareas difíciles. Aproximadamente 1-2 veces al día, la computadora comenzó a reiniciarse. Errores como kernel_panic en todas las aplicaciones desde Xcode a un simple TextEdit. Llegó al punto en que las aplicaciones de AppStore dejaron de descargarse. El primer pensamiento es que la RAM está rota. Conduje Memtest, todo está en orden. La reinstalación desde la unidad flash creada en la BDU termina en falla (error verificado, error de suma de verificación y otros errores). Tuve que ir lejos para una unidad flash de instalación fuera de línea creada directamente en macOS (desde Windows esto es difícil de hacer). Pero incluso esto no salvó.

Noté que la memoria opera a una frecuencia de 1333MHz. Porque No hay BIOS en la amapola, tuvimos que bajar la frecuencia activando la barra nativa paralela de 1Gb a 1066 MHz. ¡Y ayudó! El sistema no se bloquea, todo funciona bien desde la AppStore. ¿Pero qué hay de la segunda barra?

Romper todo el Internet, encontró 2 formas de resolver el problema:

  1. Una actualización de EFI de un MacBookPro similar, pero no es un hecho que no morirá en absoluto y, como resultado, escribirá en About This Mac que es Pro;
  2. Cambie la frecuencia de memoria máxima permitida en el bloque SPD de la memoria en uno de los corchetes, luego EFI la seleccionará automáticamente.

Descarga de RAM 1333MHz-1066MHz MacBook


Elegí la segunda opción, porque El riesgo de matar una barra de dos es más barato para mí. Además, posibles problemas en el futuro debido a la identificación incorrecta de la placa por parte del sistema. Deje que EFI actualice la propia Apple. Para la descarga, necesita un disco de Linux en vivo (utilicé el disco de instalación de Ubuntu 16.04.2)

Plan de acción:

1. Elimine el volcado de la memoria SPD EEPROM;
2. Encuentre y reduzca la frecuencia del bus de 1333MHz a 1066MHz;
3. Recuento CRC;
4. Registre los valores recibidos nuevamente en la EEPROM.

Si tiene $ 16 adicionales, simplemente puede comprar Thaiphoon Burner y hacer todas las operaciones en él. Si no, bombee la rectitud de las manos. Vamos!

Eliminar el basurero

Arrancamos en Ubuntu, ejecutamos el terminal, luego haremos todo bajo la raíz. Instalar herramientas i2c, cargar controladores:

sudo -I #add-apt-repository universe #apt-get update #apt-get -y install i2c-tools #modprobe eeprom #modprobe i2c-smbus #modprobe i2c-dev #modprobe i2c-nforce2 

Veamos qué neumáticos tenemos:

 #i2cdetect -l i2c-3 i2c nvkm-0000:02:00.0-aux-0008 I2C adapter i2c-1 i2c nvkm-0000:02:00.0-bus-0002 I2C adapter i2c-8 smbus SMBus nForce2 adapter at 2140 SMBus adapter i2c-6 i2c nvkm-0000:02:00.0-aux-000b I2C adapter i2c-4 i2c nvkm-0000:02:00.0-aux-0009 I2C adapter i2c-2 i2c nvkm-0000:02:00.0-bus-0003 I2C adapter i2c-0 i2c nvkm-0000:02:00.0-bus-0000 I2C adapter i2c-9 smbus SMBus nForce2 adapter at 2100 SMBus adapter i2c-7 i2c 0000:02:00.0 I2C adapter i2c-5 i2c nvkm-0000:02:00.0-aux-000a I2C adapter 

¿Dígame en los comentarios cómo encontrar inequívocamente en esta lista dónde se cuelga la RAM? Anteriormente utilicé la versión gratuita de Thaiphoon Burner, así que sé a dónde voy.

Entonces, en el octavo bus se cuelga el adaptador SMBus nForce2 en 2140. Veamos qué hay dentro:

 #i2cdetect -y 8 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- 

Aquí UU UU, estas son dos de mis barras, una de ellas con 1 Gb y la otra con 4 Gb. Direcciones 0x50 y 0x51. Cuál es dónde, puede determinarse por el volcado de cada uno, según el número de serie, por ejemplo, o el año de fabricación. Ya miré esta información de antemano en Thaiphoon Burner, es por eso que inmediatamente miramos el dispositivo a 0x51. Vamos a volcar la memoria de los primeros 256 bytes, esto es SPD EEPROM:

 #i2cdump -f -r 0x00-0xff -y 8 0x51 b 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef 00: 92 11 0b 03 03 19 00 09 03 52 01 08 0c 00 3c 00 ??????.??R???.<. 10: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01 ixi0i? ?.?<<.??? 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 05 00 ............???. 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 80 01 44 00 00 00 00 00 00 4f 5d .....??D......O] 80: 52 33 33 34 47 31 33 33 39 53 31 53 00 00 00 00 R334G1339S1S.... 90: 00 00 00 00 80 01 00 00 00 00 00 00 00 00 00 00 ....??.......... a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 

Frecuencia del bus

A continuación, hacemos todo en la mente / bloc de notas, ¡pero en ningún caso no escribimos en la EEPROM!
Transferí cuidadosamente el volcado resultante a un documento de texto. Habiendo leído el JEDEC Standard No. 21-C, descubrimos que el parámetro deseado está en el 12º byte (es decir, con un desplazamiento de 0x0C), y la frecuencia de 1066MHz (de hecho, la media frecuencia de 533MHz está escrita en la documentación) corresponde a 15 (es decir, 0x0F). Lo arreglamos en un cuaderno y seguimos adelante.

Suma de control CRC

Esto es un poco más complicado, CRC se considera para los primeros 126 bytes o para 117 bytes. Esto está determinado por el bit alto del primer byte. Tengo este valor 0x92, bit alto = 1, que corresponde a CRC Coverege 0-116. El valor CRC en sí mismo se calcula usando la fórmula polinomial estándar CRC-CCIT 16bit 0x1021. Usé la calculadora en línea CRC, donde todo está perfectamente insertado y contado directamente con texto. Es importante tener en cuenta que los bytes CRC después del conteo se escriben en orden inverso en la EEPROM en los bytes 126 y 127. En mi caso, la calculadora en línea contó CRC 0x5047, escribiré 0x47 en EEPROM, luego 0x50.

Escribir en EEPROM

Antes de continuar, vale la pena revisar todo de nuevo: lea JEDEC, evalúe los riesgos, intente calcular el CRC de los módulos de trabajo ya, para perfeccionar la habilidad. ¡En caso de error, la memoria morirá! Por supuesto, puede confundirse, conectarse al programador y restaurar el SPD desde la copia de seguridad (¿lo hizo?). Entonces continuemos.

En mi caso, necesito escribir (dirección = valor):

0x0C = 0x0F (frecuencia de 12 bytes)
0x7E = 0x47 (126 byte de CRC.2)
0x7F = 0x50 (127o byte de CRC.1)

 #i2cset -f -y 8 0x51 0x0C 0x0F #i2cset -f -y 8 0x51 0x7E 0x47 #i2cset -f -y 8 0x51 0x7F 0x50 

Compruebe si los valores están escritos:

 #i2cdump -f -r 0x00-0xff -y 8 0x51 b 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef 00: 92 11 0b 03 03 19 00 09 03 52 01 08 0f 00 3c 00 ??????.??R???.<. 10: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01 ixi0i? ?.?<<.??? 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 05 00 ............???. 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 80 01 44 00 00 00 00 00 00 47 50 .....??D......GP 80: 52 33 33 34 47 31 33 33 39 53 31 53 00 00 00 00 R334G1339S1S.... 90: 00 00 00 00 80 01 00 00 00 00 00 00 00 00 00 00 ....??.......... a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 

Aparentemente, todo fue grabado correctamente. Por si acaso, volvemos a verificar y reiniciamos. Si la computadora se enciende y toda la memoria está disponible, ¡felicidades! Eliminamos la barra nativa de 1 Gb, colocamos el segundo (no parpadeado) y verificamos la frecuencia de la memoria - 1066MHz.

Si la memoria no se ha actualizado, significa Protección contra escritura. Puede intentar desbloquear la utilidad con Thaiphoon Burner, ya sea soldando una resistencia a una de las patas de la memoria (el tema de un artículo separado), o intentando flashear otra barra.

Espero que este artículo sea útil para alguien. Escribió principalmente para sí mismo, para no volver a buscar toda la información en diferentes lugares.

Cuando se usaron materiales de escritura

Source: https://habr.com/ru/post/es413099/


All Articles