Downclocking ram di macbook

Saya ingin berbagi pengalaman meningkatkan MacBook6.1 A1342 saya (memperluas memori menjadi 8GB, menginstal SSD) dan memecahkan sejumlah masalah yang terkait dengan menginstal sistem pada drive baru dan berurusan dengan gangguan RAM yang tidak kompatibel.

Pada awalnya, mungkin tampak bahwa memperbaiki besi tua adalah tugas yang sepele: harus ada banyak artikel di Internet di Internet, dan ada banyak suku cadang murah di pasaran untuk itu. Tetapi tidak semuanya begitu sederhana dalam praktiknya. Masalah dimulai di toko pada tahap pemilihan komponen

Latar belakang


Untuk jumlah simbolis saya dibeli dari tangan MacBook, ini adalah laptop pertama saya dari perusahaan ini, awalnya saya membawanya untuk "berkenalan" dengan produk-produk perusahaan. Segera setelah pembelian, ternyata komputer sangat lambat untuk hari-hari kami, saya tidak siap untuk seorang kenalan seperti itu. Atas saran seorang teman saya memutuskan untuk memutakhirkan. Saya mengetahui bahwa di dalam drive SATA 2,5 inci dan 2 strip DDR3 204pin SO-DIMM 1066MHz, drive ini secara resmi mendukung maksimum 4Gb dalam satu slot. Drive SSD 250Gb dipilih di toko (tidak ada masalah dengan pilihan: SATA 2.5 "apa pun akan dilakukan, jangkauannya lebar rasa apa saja).

Tetapi dengan RAM, tidak semuanya begitu sederhana. Secara resmi, model MacBook ini mendukung RAM 1066MHz, itu tidak tersedia, dan sesuai pesanan, satu batang berharga sekitar 4000 rubel. Pada saat yang sama, 4Gb 1600MHz tersedia dengan harga sekitar 2000 rubel. Mengambil yang lebih cepat, berdasarkan kompatibilitas ke belakang. Itu tidak dimulai. Di toko, saya berhasil menemukan satu modul memori yang dengannya sistem dimulai (AMD R334G1339S1S) dan saya pulang dengan senang, tidak lupa memesan yang kedua. Dan agar slot kedua tidak kosong, untuk sementara menyalakan bilah 1Gb asli di sana.

Saya harus mengatakan bahwa kecewa dengan macOS yang lambat, saya menginstal Windows 7 pada seluruh partisi dan tidak membuat cadangan sistem - jangan ulangi kesalahan saya!

Ini mengakhiri lirik dan mulai menari dengan rebana.

Instal macOS pada disk kosong


Dua orang punya Mac di desaku: yang pertama milikku, dan yang kedua dengan penjahat bermata satu yang membuat seluruh desa ketakutan. Dari sarana yang tersedia: 8Gb flash drive, laptop kedua dengan Windows 7 on board, jalur Internet khusus.

Ada banyak artikel di Internet tentang cara membuat boot drive macOS langsung bootable di macOS. Cara membuat USB flash drive bootable dengan macOS High Sierra dari Windows tidak terlalu banyak dan semuanya ternyata jauh di bawah dalam output setelah cara melakukannya di macOS. Saya sudah mulai mencari gambar-gambar flash drive dalam format .img .iso .bin dan lainnya, tetapi sayangnya! Mungkin di suatu tempat di pelacak torrent terkunci mereka, tapi saya tidak menemukannya. Tetapi saya menemukan utilitas BDU ( Boot Disk Utility ), yang dengannya Anda dapat mengunduh file yang diperlukan langsung dari AppStore dan menulis ke USB flash drive. Programnya sederhana, ada instruksi detail dengan gambar di situs resminya, jadi saya tidak akan berhenti pada tahap ini. Saya hanya dapat mengatakan bahwa tidak perlu membagi USB flash drive menjadi 2 partisi dan mengunduh Clover, cukup unduh gambar RecoveryHD dan tulis ke bagian USB flash drive.

Selanjutnya, boot dari flash drive (saat startup, tekan Alt dan tahan sampai menu muncul). Dalam utilitas disk, format disk (Saya memilih GUID, APFS). Kami terhubung ke Internet melalui WiFi atau kabel dan memulai instalasi. Jika semuanya baik-baik saja, maka sistem itu sendiri akan mengunduh dari Internet dan menginstal di komputer.

Masalah kompatibilitas besi


Bilah kedua datang cukup cepat, sebelum saya sempat menikmati drive SSD baru dan 4 + 1 Gb RAM. Saya menginstal RAM, sekitar 8Gb ditampilkan di About This Mac dan saya mulai menyiksa sistem dengan tugas-tugas sulit. Sekitar 1-2 kali sehari, komputer mulai melakukan reboot. Kesalahan seperti kernel_panic di semua aplikasi dari Xcode ke TextEdit sederhana. Itu sampai pada titik bahwa aplikasi dari AppStore berhenti mengunduh. Pikiran pertama adalah bahwa RAM rusak. Saya mengendarai Memtest - semuanya beres. Instalasi ulang dari flash drive yang dibuat di BDU berakhir dengan kegagalan (kesalahan diverifikasi, kesalahan checksum dan kesalahan lainnya). Saya harus pergi jauh untuk instalasi flash drive offline yang dibuat langsung di macOS (dari bawah Windows ini sulit dilakukan). Tetapi bahkan ini tidak menyelamatkan.

Saya perhatikan bahwa memori beroperasi pada frekuensi 1333MHz. Karena Tidak ada BIOS di poppy, kami harus menurunkan frekuensi dengan menyalakan bilah asli 1Gb 1066 MHz paralel. Dan itu membantu! Sistem tidak macet, semuanya berfungsi dengan baik dari AppStore. Tapi bagaimana dengan bar kedua?

Hancurkan seluruh Internet, temukan 2 cara untuk menyelesaikan masalah:

  1. Pembaruan EFI dari MacBookPro yang serupa, tetapi bukan fakta bahwa ia tidak akan mati sama sekali dan sebagai hasilnya akan menulis di About This Mac bahwa itu adalah Pro;
  2. Ubah frekuensi memori maksimum yang diijinkan dalam blok SPD memori itu sendiri di salah satu tanda kurung, maka EFI akan memilihnya secara otomatis.

Downclocking RAM 1333MHz-1066MHz MacBook


Saya memilih opsi kedua, karena risiko membunuh satu batang dua lebih murah bagi saya. Plus, kemungkinan masalah di masa depan karena identifikasi board yang salah oleh sistem. Biarkan EFI memperbarui Apple sendiri. Untuk downlocking, Anda memerlukan disk Linux langsung (saya menggunakan disk instalasi Ubuntu 16.04.2)

Rencana aksi:

1. Hapus dump dari memori SPD EEPROM;
2. Temukan dan kurangi frekuensi bus dari 1333MHz ke 1066MHz;
3. Menceritakan kembali CRC;
4. Catat nilai yang diterima kembali ke EEPROM.

Jika Anda memiliki tambahan $ 16, maka Anda bisa membeli Thaiphoon Burner dan melakukan semua operasi di dalamnya. Jika tidak, maka pompa kelenturan tangan. Ayo pergi!

Hapus tempat sampah

Kita boot ke Ubuntu, jalankan terminal, lalu kita akan melakukan semuanya di bawah root. Instal i2c-tools, muat driver:

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 

Mari kita lihat ban apa yang kita miliki:

 #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 

Beri tahu saya di komentar bagaimana menemukan di daftar ini tempat RAM hang? Saya sebelumnya menggunakan versi gratis Thaiphoon Burner, jadi saya tahu ke mana saya akan pergi.

Jadi, pada bus ke 8 SMBus nForce2 adapter di 2140 hang. Mari kita lihat apa yang ada di dalamnya:

 #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: -- -- -- -- -- -- -- -- 

Di sini UU UU ini adalah dua bilah saya, salah satunya di 1Gb, yang lain di 4Gb. Alamat 0x50 dan 0x51. Yang mana di mana, dapat ditentukan oleh dump masing-masing, berdasarkan nomor seri, misalnya, atau tahun pembuatan. Saya sudah melihat informasi ini sebelumnya di Thaiphoon Burner, itu sebabnya kami segera melihat perangkat di 0x51. Mari kita buang memori 256 byte pertama - ini adalah 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 ................ 

Frekuensi bus

Selanjutnya, kami melakukan semua yang ada dalam pikiran / notepad, tetapi dalam hal apapun jangan menulis di EEPROM!
Dengan hati-hati saya memindahkan dump yang dihasilkan ke dokumen teks. Setelah membaca No. Standar JEDEC 21-C, kami menemukan bahwa parameter yang diinginkan ada di byte ke-12 (mis., Dengan offset 0x0C), dan frekuensi 1066MHz (pada kenyataannya, frekuensi setengah-frekuensi 533MHz ditulis dalam dokumentasi) sesuai dengan 15 (yaitu, 0x0F). Kami memperbaiki di buku catatan dan melanjutkan.

Checksum CRC

Ini sedikit lebih rumit, CRC dianggap untuk 126 byte pertama, atau untuk 117 byte. Ini ditentukan oleh bit tinggi dari byte pertama. Saya memiliki nilai ini 0x92, bit tinggi = 1, yang sesuai dengan CRC Coverege 0-116. Nilai CRC itu sendiri dihitung menggunakan rumus polinomial 0x1021 16C1021 standar CRC-CCIT. Saya menggunakan kalkulator online CRC, di mana semuanya dimasukkan dengan sempurna dan dihitung langsung dengan teks. Penting untuk dicatat bahwa byte CRC setelah penghitungan ditulis dalam urutan terbalik di EEPROM dalam byte ke-126 dan ke-127. Dalam kasus saya, kalkulator online menghitung CRC 0x5047, saya akan menulis 0x47 di EEPROM, kemudian 0x50.

Menulis ke EEPROM

Sebelum melanjutkan, ada baiknya memeriksa semuanya lagi: baca JEDEC, nilai risiko, coba hitung CRC dari modul yang sudah bekerja untuk mengasah keterampilan. Jika terjadi kesalahan, memori akan mati! Anda dapat, tentu saja, menjadi bingung, terhubung ke programmer dan mengembalikan SPD dari cadangan (Anda melakukannya?). Kalau begitu mari kita lanjutkan.

Dalam kasus saya, saya perlu menulis (address = value):

0x0C = 0x0F (frekuensi byte ke-12)
0x7E = 0x47 (byte 126 CRC.2)
0x7F = 0x50 (byte ke-CRC.1)

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

Periksa apakah nilainya ditulis:

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

Ternyata, semuanya terekam dengan benar. Untuk jaga-jaga, kami memeriksa ulang dan reboot. Jika komputer menyala dan semua memori tersedia - selamat! Kami menghapus bilah 1Gb asli, meletakkan yang kedua (tidak di-flash) dan memeriksa frekuensi memori - 1066MHz.

Jika memori belum di-flash, itu berarti Write Protect. Anda dapat mencoba membuka kunci utilitas dengan Thaiphoon Burner, baik dengan menyolder resistor ke salah satu kaki memori (topik artikel terpisah), atau dengan mencoba mem-flash bar lain.

Semoga artikel ini bermanfaat bagi seseorang. Dia menulis terutama untuk dirinya sendiri, agar tidak mencari lagi semua informasi di tempat yang berbeda.

Saat bahan tulisan digunakan

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


All Articles