PowerBook G4の故障とその原因その2 [PowerBook G4故障のこと]
一番町のアップスストアでアドバイスを貰ったのは「本体に付属しているリカバリディスクでハードウェアテストができます」ディスクから起動するときにオプション+Dかなんかで立ち上がると言う。「はあ、はあ」と聴いていたが、そんな何年も使わないディスクを大切に保管しておくほど先読みができるぐらいなら今頃こんな生活してない、と思ったけど今の榴岡の部屋はもちろん、横浜の家、職場の机の回り、本社の昔の部署のシェルビ、と探したがやっぱり無かった。どうやらあのディスクは2年ぐらいで蒸発して気体となったと思われる。
症状と可能なテストの結果から考えると原因は、HDDでもなし、もちろん光学ドライブや液晶でもないことは明らかなので、後はブリッジチップかメモリか、ということになるのかなあ、でもそれまで何年も動いていた半導体が故障したりするのかなあ、と思っていた。
ブリッジチップのテストは簡単ではないし、もしそれが壊れてたらボード交換しかあり得ないので最後にとっておくとして、まさかとは思いながらメモリのテストを考えた。Windowsの世界ではmemtest86というのがあるらしくてフリーのバイナリが出回っているらしい。マック用としてmemtest OS Xというのを見つけたが、ダウロードに$1.39払えと言う。別に百円ちょっとが惜しい訳ではなくてそのためにネットワークにカード番号を流すのがいやで、やめた。だいたいmemtest86はGPLなのになんでマック用はフリーじゃないの?
まあ、ええとして、それとは別にRemberというmemtestにGUIを被せたものがフリーであるのを見つけた。中身を見るとmemtestが実行形式で含まれているのでそれを落としてきた。
それをアプリケーションのフォルダに入れて、シングルユーザモードで立ち上げた。そのココロはWindowServerからなにから全部立ち上がってしまってメモリの多くが占有されている状態であまりをテストしてもしょうがないからと考えたから。Command+Sで立ち上げてさっきのmemtestを起動する。
localhost:/ root#とすると/Applications/Rember.app/Contents/Resources/memtest
ええ?文字が小さくてよく読めないけど、FAILURE!とか言ってる。だめじゃん!なんで?
まさかとは思いながら、メモリを引っこ抜いてみる。オンボードの256MBで立ち上げてもう一度memtestを起動すると問題ないと言う。ひょっとしてメモリモジュールのコネクタがへたってるとか言うことかも知れないと思って、会社の古いウィンドウズのノートパソコンからこっそりPC2700のSO-DIMM256MBを引き抜いてそれを入れて同じことをすると
げげ、なんともない!
ということでウィンドウズパソコンから引き抜いたメモリはまたこっそりと入れ直して、もとの1GBモジュールを入れて、同じことをしたらやっぱり同じ結果だった。ちょっと大きいけどそのmemtestの出力を載せると
Memtest version 4.2 (32-bit) Copyright (C) 2004 Charles Cazabon Copyright (C) 2004, 2005, 2006 Tony Scaminaci (Macintosh ports) Licensed under the GNU General Public License version 2 only Mac OS X 10.4.11 (8S165) running in single user mode Memory Page Size: 4096 System has 1 PPC processor(s) with Altivec Requested memory: 1222MB (1281785856 bytes) Available memory: 1222MB (1281785856 bytes) NOTE: Memory request is too large, reducing to acceptable value... Allocated memory: 1188MB (1245895808 bytes) at local address 0x03008000 Attempting memory lock... locked successfully Partitioning memory into 2 comparison buffers... Buffer A: 594MB (622947904 bytes) starts at local address 0x03008000 Buffer B: 594MB (622947904 bytes) starts at local address 0x2821ee40 Running 1 test sequence... (CTRL-C to quit) Test sequence 1 of 1: Running tests on full 1188MB region... Stuck Address : setting 1 of 16testing 1 of 16 FAILURE! Data mismatch at local address 0x05cb3090 Actual Data: 0x058b3090 Linear PRN : setting 1 of 16testing 1 of 16 FAILURE! Data mismatch at local address 0x05cb3090 Expected Data: 0xe746610f, Actual Data: 0xe786610f Running comparison tests using 594MB buffers... Random Value : ¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/-¥|/- FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x7fb816e6, BUFB Data: 0x7ff816e6 Compare XOR : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x1c8bb850, BUFB Data: 0x1c4bb850 Compare SUB : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0xb5909fd5, BUFB Data: 0xb4d09fd5 Compare MUL : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x46aa0733, BUFB Data: 0x19aa0733 Compare DIV : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x00800000, BUFB Data: 0x00000000 Compare OR : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x7fbf1d8a, BUFB Data: 0x7fff1d8a Compare AND : FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x77bc1808, BUFB Data: 0x77fc1808 Sequential Increment: FAILURE! Data mismatch at local BUFA address 0x063b3090, BUFB address 0x2b5c9ed0 BUFA Data: 0x0081f5f4, BUFB Data: 0x00c1f5f4 Solid Bits : setting 1 of 64testing 1 of 64 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0xffbfffff, BUFB Data: 0xffffffff Block Sequential : setting 1 of 256testing 1 of 256 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x00800000, BUFB Data: 0x00000000 Checkerboard : setting 1 of 64testing 1 of 64 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x55955555, BUFB Data: 0x55555555 Bit Spread : setting 1 of 64testing 1 of 64 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x00800005, BUFB Data: 0x00000005 Bit Flip : setting 1 of 256testing 1 of 256 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0xffbffffe, BUFB Data: 0xfffffffe Walking Ones : setting 1 of 64testing 1 of 64 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0xffbffffe, BUFB Data: 0xfffffffe Walking Zeroes : setting 1 of 64testing 1 of 64 FAILURE! Data mismatch at local BUFA address 0x05cb3090, BUFB address 0x2aec9ed0 BUFA Data: 0x00800001, BUFB Data: 0x00000001 *** Address Test Failed *** One or more DIMM address lines are non-functional. Execution time: 108 seconds.
折り返ってちょっと読み辛いけど、どうやら2カ所の離れたアドレスにバッファをとって両方に同じものを書いてそれを比較しているらしい。ようするにどんなテストをやっても同じアドレスでエラーが起こってると言ってる。なんかよくわからんけど、アドレス0x05cb3090と0x2aec9ed0に書いた32ビットの内容を比較すると上から10ビット目と11ビット目がおかしいと言う結果みたい。1GBを超える1245895808 bytesをテストしてたった2ビットの少なくとも一方が反転してる。そんな五十億分の1のエラーぐらい大目に見ろよ、と言いたくなってしまうけど、どうやらこれが原因らしい。ほんまやろか?!
コメント 0