iMac (27-inch, Mid 2011)のGPUが故障
年に1〜2回ですが、古いOS(High Sierra)じゃないと走らないプラグインのためだけに使っていたiMacがグラボの不調でとうとうお亡くなりに...
この機種(GPUがAMD Radeon 6970Mのもの)はリコールの対象になっている曰く付きの機種ですが、無償修理の期間もとっくに終っているのでどうしたものかと。
グラボを入手できないこともないけれど「えっ!」というような値段のものばかりで、中古を買う方がマシかと同じスペックのiMac(i7,Radeon6970M)を探してもタマは少ないしこれまた高いし。
そうこうしているうちにデータの納品日は迫りケツに火がつき始めたので、MacRumorsの有志の皆様(Thanks! @stephle)の力を借りてグラボをK3000Mに換装することに。K3000Mにした理由は換装できるグラボで最も安価に済みそうだったから(某フリマサイトで3000円位、元々はFUJITSU CELSIUS H920に付いていたもののようです)。
そこで、ちょっと躓きそうだった点とターミナルでの作業記録を備忘録として残しておきたいと思います。
なお、自分もやってみるという方は MacRumorsの"2011 iMac Graphics Card Upgrade"のスレッドをよく読んで抱えるリスクを確認してください。使えなくなる機能があったり、ビデオBIOSを書き換えるので失敗のリスクもあります。それでもという方は自己責任の上でチャレンジしてください。
躓きそうだった点
- ブートROMのバージョンを87.0.0.0.0にする
そもそも起動すらしないiMacのブートROMのバージョンをどうやって確認しろという話ではあるのですが、2020/7/15にリリースされているセキュリティアップデート 2020-004 (High Sierra)がインストールされているとブートROMのバージョンが87.0.0.0.0になるようです。
当方の場合はセキュリティアップデートは必ず行なっていたので87.0.0.0.0の前提で進めましたが、セキュリティアップデートをかけていない場合は一旦は何らかの形で起動させる必要がありそう(純正のグラボを買って起動させるんじゃ意味がないんだけど)。
ビデオBIOSを書き換えるためにSDカードを起動ディスクにしたのですが、HDDを読みに行くのでどうしたものかと。これはHDDとODD(光学ドライブ)のケーブルを抜いておくことで解決。
Linuxで起動したiMacにsshで接続しNVFlashでビデオBIOSを書き込むわけですが、ifconfigやarpのコマンド打ってもダメっぽくて(追加するオプションが違ってたか?)たまたまルーターで確認は取れたから良かったものの、ルーターで確認できなかったら詰んでいたかも?
MacRumorsでは色々な対策が書かれていましたが、ODD(光学ドライブ)の温度センサーをGPUのヒートシンクにカプトンテープで固定で結果オーライのようです。今のところファンの暴走はありません。
ターミナルでの作業記録
Last login: Mon Nov 14 15:07:55 on ttys000
MBA-QP003:~ qpthe3rd$ ssh root@192.168.10.106
The authenticity of host '192.168.10.106 (192.168.10.106)' can't be established.
ECDSA key fingerprint is SHA256:WwQIh1G2LVVxOHtXfJOpr+d09XUl7pQK4pQrw2LnCkw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.106' (ECDSA) to the list of known hosts.
root@192.168.10.106's password:
Linux grml 4.19.0-1-grml-amd64 #1 SMP Debian 4.19.8-1+grml.1 (2018-12-11) x86_64
Grml - Linux for geeks
root@grml ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 259.9M 1 loop /lib/live/mount/rootfs/grml64-small.squashfs
sda 8:0 1 59.5G 0 disk
├─sda1 8:1 1 200M 0 part
└─sda2 8:2 1 59.3G 0 part /lib/live/mount/persistence/sda2
root@grml ~ # /lib/live/mount/persistence/sda2/flash
root@grml /lib/live/mount/persistence/sda2/flash # ls
AMD Backups GTX QUADRO README amdvbflash nvflash_linux
root@grml /lib/live/mount/persistence/sda2/flash # ./nvflash_linux --save Backups/Orig_k3000m.rom
NVIDIA Firmware Update Utility (Version 5.414.0)
Simplified Version For OEM Only
Adapter: Quadro K3000M (10DE,11BE,10CF,1760) H:--:NRM S:00,B:01,D:00,F:00
Identifying EEPROM...
EEPROM ID (C2,2012) : MX MX25L2005 2.7-3.6V 2048Kx1S, page
Reading adapter firmware image...
IFR Data Size : 372 bytes
IFR CRC32 : A44E386E
IFR Image Size : 512 bytes
IFR Image CRC32 : 8E24EEE2
IFR Subsystem ID : 10CF-1760
Image Size : 89088 bytes
Version : 80.04.33.00.26
~CRC32 : 5324C090
Image Hash : 6C76B1CB1733E54D1B67418B8F0A1396
Subsystem ID : 10CF-1760
Hierarchy ID : Normal Board
Chip SKU : 950
Project : 2051-0501
CDP : N/A
Build Date : 05/23/12
Modification Date : 06/06/12
UEFI Support : No
UEFI Version : N/A
UEFI Variant Id : N/A ( Unknown )
UEFI Signer(s) : Unsigned
InfoROM Version : N/A
InfoROM Backup Exist : NO
License Placeholder : Absent
GPU Mode : N/A
Saving of image completed.
root@grml /lib/live/mount/persistence/sda2/flash # cd Backups
root@grml ..e/mount/persistence/sda2/flash/Backups # ls
Original_Vbios.rom Orig_k3000m.rom
root@grml ..e/mount/persistence/sda2/flash/Backups # ..
root@grml /lib/live/mount/persistence/sda2/flash # ./nvflash_linux --protectoff
NVIDIA Firmware Update Utility (Version 5.414.0)
Simplified Version For OEM Only
Adapter: Quadro K3000M (10DE,11BE,10CF,1760) H:--:NRM S:00,B:01,D:00,F:00
Identifying EEPROM...
EEPROM ID (C2,2012) : MX MX25L2005 2.7-3.6V 2048Kx1S, page
Setting EEPROM software protect setting...
Remove EEPROM write protect complete.
root@grml /lib/live/mount/persistence/sda2/flash # ./nvflash_linux -6 QUADRO/K3000M_STE3.ROM
NVIDIA Firmware Update Utility (Version 5.414.0)
Simplified Version For OEM Only
Checking for matches between display adapter(s) and image(s)...
Adapter: Quadro K3000M (10DE,11BE,10CF,1760) H:--:NRM S:00,B:01,D:00,F:00
WARNING: Firmware image PCI Subsystem ID (1028.153F)
does not match adapter PCI Subsystem ID (10CF.1760).
Please press 'y' to confirm override of PCI Subsystem ID's: y
Overriding PCI subsystem ID mismatch
Current - Version:80.04.33.00.26 ID:10DE:11BE:10CF:1760
GK104 Board - hummel_q (Normal Board)
Replace with - Version:80.04.5A.00.01 ID:10DE:11BE:1028:153F
NVIDIA Quadro K3000M by ST3PHL3 (Normal Board)
Update display adapter firmware?
Press 'y' to confirm (any other key to abort): y
Identifying EEPROM...
EEPROM ID (C2,2012) : MX MX25L2005 2.7-3.6V 2048Kx1S, page
Storing updated firmware image...
................................................................
Verifying update...
Update successful.
Firmware image has been updated from version 80.04.33.00.26 to 80.04.5A.00.01.
A reboot is required for the update to take effect.
./nvflash_linux -6 QUADRO/K3000M_STE3.ROM 52.08s user 2.95s system 69% cpu 1:19.09 total
root@grml /lib/live/mount/persistence/sda2/flash # shutdown now
Connection to 192.168.10.106 closed by remote host.
Connection to 192.168.10.106 closed.
MBA-QP003:~ qpthe3rd$
追記;コードをちょっと見やすくするのにGoogle code-prettifyを使っているけど、気がついてみるとスクロールバーが消えているようで?少し原因究明してみたけどいまだ解決に至らず...放置中です。
コメント
コメントを投稿