Last updated: "2002/01/23 22:54:43 +0900"

小松平良樹プレゼンツ

警告!!!!!!

正しく差分を適用できなかったケースが報告されました。 おそらくこのケースでは、その個体は再起不能になったと思われます。 まだ行動を起こさない方がよいかもしれません。

20020123

次の事項を追記

  1. hibernation は大丈夫そう
  2. SODIMM の画像
  3. 512MB はやっぱり駄目そう

20020121

差分適用により出来上がったファイルの CRC 値を記載







これでどうだいブラザー?

256MB時のシステムのプロパティ

CASSIOPEIA FIVA MPC-102 でメインメモリを 256MB にしてみよう+α

CASSIOPEIA FIVA MPC-102 で、メインメモリを 256MB にする方法を述べます。 また、いままでは 64MB 分しか認識しなかった 128MB SODIMM (「CKE 改造」を 適用できない、1module_bank 構成の 128MB SODIMM) を、ひょっとすると 128MB 全容量認識できるようになるかもしれません。

ちょっと微妙な書き方をしました。 現在私が動作を確認できているのは「256MB にする」であり、「32MB + 256MB」ではありません。 本体にはじめから乗っている SDRAM は、単なる電気の無駄遣いをする ドラ息子になってしまいます。 また、128MB 1module_bank SODIMM は、私は持っていないので、動作確認ができません。

256MB 増設に関しては、私はハードウェアの変更は行いませんでした。 これは、私が調達した SODIMM では変更が必要なかったということであり、 あなたが調達する SODIMM では変更が必要かもしれません。 変更の要/不要は、SODIMM の内部構成によります。

退避領域が充分でない状態での hibernation は危険でしょう。私は試していないので、 何が起きるかはわかりません。たぶん HDD の内容を破壊するでしょう。

20020123 追記

退避領域を 1.8GB とった状態では、hibernation は正常に動作しました。 諸々の事情で、アホみたいにでかい退避領域でしか確認していません。

読み進むならば同意していただきたい事柄

この情報を参照するにあたって、次の事柄をキモに命じてください。 同意できない方は参照しないでください。

  1. 本件に関してカシオへの問い合わせは行わない
  2. MPC-102 が再起不能になる可能性がある
  3. 法律を犯す可能性がある

本件は、私が独自に解析を行い得た結果です。 本件に関連した問い合わせをカシオへ行うと、本来はまったく必要のない 問い合わせへの返答を行う必要がでてくることになります。 これは非常に迷惑な行為ですから、カシオへの問い合わせは絶対に行わないでください。

MPC-102 の FLASH ROM を書き換える必要があります。書き換えに失敗する、 あるいは書き換えた内容に不具合があった場合には、MPC-102 は二度と起動 しなくなる可能性が大有りです。起動しなくなっても、誰も直してくれません。 いや修理に出せば直してくれるかもしれませんが、新しい機械を買ったほうが リーズナブルかもしれませんよ。 それに、修理に出すのは、ある意味前段の「迷惑」に通じます。

カシオが提供しているファームウェアに変更を加えます。これは、どんな 言い訳をしようとも、** 使用許諾に明らかに反しています **。

その他、常識的なことは押さえておいてください。 ここに書いてある情報を参考にあなたが何らかのアクションをとるとしても、 それは自己責任で行ってください。私は何の責任もとりませんし、カシオは まったく無関係です。あなた以外に責任を取れる人は誰もいません。

内容は、誤りがないように努力していますが、保証はしません。 間違いに気づいた方は、こいつ馬鹿でぇへへへ。と笑わずに (いや笑ってもいいですが)、 ご指摘いただけると幸いです。

成功しても失敗しても、なんらかの feedback をいただけると嬉しいです。 私個人宛てでもよいですが、FIVA メーリングリストへの投稿をお勧めします。

「使用できる SODIMM はどこにありますか?」なんてことは聞かないでください。 私は SODIMM 販売者ではありませんから、そんなことは知りません。 私が使ったのは、Yahoo! オークションで入手したものであり、どういう経路で 販売されていたものなのか知らないのです。

「この SODIMM は使えますか?」なんて聞かれても、私はその SODIMM を持っていませんから、 質問には答えられません。使用しているデバイスと回路を教えていただければ、なんらかの アドバイスはできるかもしれませんが、そこまでわかったら、WEB でデータシートを 探して自分で判断するのが確実でしょう。

「ファームウェア (BIOS) はどうやって更新するのですか?」なんてことは聞かないでください。 その方法を知らない方が、本 WEB ページの情報を実行するのは危険過ぎます。

皆様の常識的な行動を期待します。

上記の事柄に同意できない場合には、これより以下の情報は参照しないよう お願いいたします。

RAM 増設の関連情報

ああ、本節だけは、上記の「ぐだぐだ」に同意していない場合に参照しても、問題はないですね。 また、基礎知識となりますので、読み進めようという方も理解しておくべきだと思います。

すでに知られた +128MB の方法は、fumiaki さんの WEB ページが詳しいです。 fumiaki さんの WEB ページで述べられている方法は、「CKE 改造」と表現します。 私のここの WEB ページで後に述べる方法と比較すると、「CKE 改造」の方が、 危険は少ないと思います。 危険をおかしたくない方は、「CKE 改造」で +128MB を実現することをお勧めします。

また、後に述べる 256MB 化を行う際、準備した SODIMM が 2 module_bank の場合には、 やはり「CKE 改造」が必要になると思います。「思います」というのは、私自身が 動作を確認した SODIMM は、1module_bank であり、2module_bank での動作確認は していないからです。

「CKE 改造」は、次のリンクからどうぞ。

fumiaki さんの WEB ページ

fumiaki さんがまとめられた方法では、総容量 128MB、2 module_bank の SODIMM を使用します。 手元に総容量 128MB、1 module_bank の SODIMM がある方は、この方法は使用できません。

ここの WEB ページで後に述べる方法は、1module_bank でも 2module_bank でも、おそらく +128MB として使用できると思います。私は 128MB, 1 module_bank の SODIMM を持っていないので、 検証はできていません。また、128MB, 2module_bank の SODIMM は、「CKE 改造」で 全容量を認識しますから、本 WEB ページの情報はお呼びではありません。

私が動作確認を行った環境

SODIMM の内部構造と「CKE 改造」の 要/不要、BIOS に当てる patch の対応、 ならびに動作確認の 済/未 は、次の通りです。

No.

SODIMM

CKE改造

patch

動作確認

1 256MB, 1module_bank (内部構造 256MB*1) 不要 256.COM
2 256MB, 2module_bank (内部構造 128MB*2) 256.COM
3 +128MB, 1module_bank (内部構造 128MB*1) 不要 128.COM
4 +128MB, 2module_bank (内部構造 64MB*2) 128.COM

256MB と表示しているのは、本体にもともとある 32MB は無効にします。無効にしないと 異常動作してしまいました。

+128MB と表示しているのは、本体にもともとある 32MB に 128MB が加算されます。

私が動作を確認しているのは 1, 4 です。

ここで、4 は、他の条件と意味合いが異なります。 BIOS に patch を当てずとも、「CKE 改造」でSODIMM の全容量を認識しますから。 しかし、128.COM が正しく動くということを意味します。 おそらくは、128.COM を適用することにより、「CKE 改造」を 適用できなかった (無意味だった) 3 の SODIMM が、128MB として使えるようになると 予想しています。

なぜ大容量の SODIMM を認識しないのか

容量が 64MB を超える SODIMM を FIVA にさした場合、なぜ正常に認識しなかったのか?

fiva-ML での情報や私の調査によると、2つの問題があったことがわかりました。

  1. SODIMM の 2bank 目の /CKE が正常に動作していない
  2. 「動的容量判断」が正しい容量を取得しない

第一の問題は、fumiaki さんがまとめられた情報の通りです。

第二の問題について述べておきます。 FIVA の BIOS は、メモリコントローラの初期化時に、実装されている RAM の容量を、 なんとかうまいことをして判断します。おそらく最近の PC (と BIOS) であれば、 「SPD」と呼ばれる DIMM 上の情報を取得して (SO)DIMM の容量を判断するのですが、 FIVA の BIOS は SPD は見ていないようです。 そのため、ちょっと複雑な方法で RAM の容量を判断しています。この「ちょっと複雑な 方法」の中で、正しい容量を得ていないようです。

簡単に触れておくと、FIVA の BIOS が認識する SODIMM の容量は、どうやら 次のようになるようです。

内部構成

容量

総容量128MB以上, 2module_bank (64MB以上*2) 128MB
総容量64MB以上, 1module_bank (64MB以上*1) 64MB

BIOS 側の事情としてはこの表のようになります。 ここで「第一の問題」があるために、2moule_bank の SODIMM は 1module_bank と してしか動作していませんでした。そのため、64MB しか認識しなかったのです。 これを「CKE 改造」によって正しく 2module_bank とすることにより、128MB として認識 するようになっていたのです。

1module_bank の SODIMM は、容量が 64MB を超えていても、64MB 分としてしか認識しません。 2module_bank の SODIMM も、128MB までしか認識しません。 これを正しく認識させる (本当は「正しく」ではなく、256MB/128MB 決め打ちにする) のが、 本 WEB ページの目的です。

本来であれば、「動的容量判断」で正しい容量を取得するような変更を加えるべきなのですが、 それは私には危険だったので、「256MB 決め打ち (+256MB ではない)」「+128MB 決め打ち」 という、比較的単純な変更でお茶を濁しました。 そのため、patch が一つではなく、SODIMM の容量によって別々になっています。

調達すべきハードウェアとファームウェア

256MB を認識させたい場合には 256MB の、+128MB を認識させたい場合には 128MB の SODIMM が当然必要になります。これらはなんとかして調達してみて ください。low-height でないと SODIMM スロットに物理的に収まらない、 というのは、まああえて書かなくてもわかっていることとは思いますが。 256MB でスロットに収まる SODIMM の入手性がどんなもんかは、私は知りません。 なんとなく、ちょっと入手しづらいような感じはしています (あんまり根拠はない)。

20020123 追記

私が使った SODIMM は、次の画像の通りです。

SODIMM256MB

SODIMM スロットの口からは入れることができなかったので、マザーボードを筐体から 外して実装しました。

SODIMM256MB拡大

こんなシールが貼ってありました。入手の参考になりますかねえ? 使用されている SDRAM デバイスは、画像の通り、Winbond の W982508BH-75 です。

ここでちょっとヒント。 256MB, 1 module_bank の SODIMM であれば、将来「亀の子増設」を行うことにより、 512MB として使用できるようになるかもしれません。 2 module_bank であれば、「亀の子増設」は不可能なハズです。

でも「亀の子」で 512MB が実現できるかどうかはちょっとわかりません。というのは、 いま動作確認できているのが「32MB+256MB」ではなく「256MB」であることと関連があります。

20020123 追記

512MB はやっぱり駄目みたいですねえ。GXm のデータシートを見ての上の記述だったのですが、 GXLV のソレでは、"not supported" らしいです。fumiaki さん、ご指摘ありがとうございます。

128MB, 1 module_bank の SODIMM であれば、「亀の子増設」により、256MB の SODIMM と して使えるような気がしています。 128MB, 2module_bank の SODIMM であれば、「CKE 改造」ですでに全容量を認識している でしょうし、将来の「亀の子」も不可能なハズなので、ちょっとお呼びではないですね。

カシオが提供するファームウェアを書き換えて使用します。「F12j146B.exe」 というファイル名、バージョンは「1.4.6」とされている BIOS のアーカイブファイルを、 カシオのサポート WEB ページからダウンロードしてください。

ハードウェアの改造

2module_bank の SODIMM を調達した方は、その SODIMM はきっと 256MB なのですよね。 「CKE 改造」を行わないと、ハードウェアの制限によって、総容量の半分までしか認識できません。

128MB SODIMM を調達した方は、その SODIMM はきっと 1module_bank なのですよね。 その場合は「CKE 改造」は必要ありません (無意味です)。

必要な方は、ここで予め「CKE 改造」をしてしまってもよいと思いますが、念のため、「CKE 改造」 しない状態で動くかどうか、確認しておくのがよいかもしれません。 しかし、fiva-ML 上や「にちゃんねる」で、+128MB 増設の「CKE 改造」の際に 「CKE 改造をしない場合は全然認識しなかったけど、改造したら正常に全容量認識した」という 情報もありました。どんな手順で作業を進めるのがよいのかは、ちょっとよくわかりません。

256MB 認識させてみよう

まず、256MB を認識させてみましょうかね。

REL146JK.BIN に対して、次の差分を反映させます。

256MB 用差分 256.lzh

差分ファイルは、amapro ワキチ さんの WSP version 1.50 を使用し、自己展開形式として 作成しました。amapro ワキチ さんに感謝。 また、なんか *.COM をアップロードできなかったので、lha で圧縮してみました。 吉崎さんに感謝。

256.lzh を展開して 256.COM を得てください。

差分ファイルの適用は Windows 上の MS-DOS プロンプトか、純粋な MS-DOS プロンプト上で 行います。

  1. F12j146B.exe を実行して REL146JK.BIN を得る
  2. REL146JK.BIN があるディレクトリで 256.COM を実行する
  3. REL146JK.BIN に対して差分が適用され、256.BIN が生成される

256.COM は、その元ファイルとなる REL146JK.BIN の timestamp をチェックします。 REL146JK.BIN の timestamp は変更しないでください。 期待している timestamp は、2000/01/13, 9:26AM です。 timestamp が期待と異なる場合には、そのままでは差分適用が実行できません。

20020121 追記

差分適用に失敗した事例が報告されました。原因は不明です。 できあがった 256.BIN の CRC を確認してみてください。CRC 計算ツールは、 http://www.vector.co.jp/soft/dos/util/se000791.html で紹介されている "crc" を使いました。日下部さんありがとうございます。

私の手元でできあがった 256.BIN では、CRC は 0x61bb9521 です。"crc" の 結果が次のような感じであれば、差分適用は成功している可能性が高いです。 異なる場合には、差分適用に失敗している可能性が高いです。

D:\home\komatsu\tmp>crc 256.bin
61bb9521  262144 256.bin

もしも異なった CRC を得た場合には、参考のためにその環境 (といっても OS くらいかなあ...?) をお知らせください。 また、当然ながら、そのファイルによる BIOS の更新は行わないでください。

差分適用によって生成された 256.BIN を使って、BIOS を更新してください。 UP146JK.BAT 内の REL146JK.BIN という文字列を 256.BIN に変更して、その バッチファイルを実行すればよいでしょう。

もちろん BIOS の更新は、純粋な、しかもメモリマネージャなどを組み込んでいない、 漢字表示もされない、何も動いていない MS-DOS 上で行ってください。

256MB 時の制限事項

日ごろの行いが悪くなければ、BIOS の更新と SODIMM のインストールにより、 総RAM 容量 256MB として起動するはずです。

この状態では、本体に初めから実装されている 32MB の SDRAM は使われません。 使うと異常動作しました。原因の追求はできていません。

256MB の壁を超える勇者求むッ!!

+128MB 認識させてみよう

+128MB の場合も 256MB の場合とほとんど同じです。差分ファイルが異なるのみです。

REL146JK.BIN に対して、次の差分を反映させます。

+128MB 用差分 128.lzh

256MB の場合と同様に、WSP によって自己展開形式として作成し、lha で圧縮しました。

128.lzh を展開して 128.COM を得てください。

差分ファイルの適用は Windows 上の MS-DOS プロンプトか、純粋な MS-DOS プロンプト上で 行います。

  1. F12j146B.exe を実行して REL146JK.BIN を得る
  2. REL146JK.BIN があるディレクトリで 128.COM を実行する
  3. REL146JK.BIN に対して差分が適用され、128.BIN が生成される

128.COM も 256.COM と同様、 その元ファイルとなる REL146JK.BIN の timestamp をチェックします。 timestamp はオリジナルの状態から変更しないでください。

20020121 追記

できあがった 128.BIN の CRC を確認してみてください。 私の手元でできあがった 128.BIN では、crc は 0x79c5983d です。次のような感じであれば、 差分適用は成功している可能性が高いです。値が違うならば、差分適用に失敗しています。

D:\home\komatsu\tmp>crc 128.bin
79c5983d  262144 128.bin

もしも異なった CRC を得た場合には、参考のためにその環境 (といっても OS くらいかなあ...?) をお知らせください。 また、当然ながら、そのファイルによる BIOS の更新は行わないでください。

差分適用によって生成された 128.BIN を使って、BIOS を更新してください。 もちろん BIOS の更新は、純粋な、しかもメモリマネージャなどを組み込んでいない、 漢字表示もされない、何も動いていない MS-DOS 上で行ってください。

うまく動かないときには?

不幸にしてうまく動かなかったときには、どうしたらいいでしょうね。よくわかりません。 繰り返しになりますが、本 WEB ページの内容に関して、カシオへの問い合わせはしないように。 心配な方は、本 WEB ページの内容を実行しないでください。

おそらくは、SODIMM を外すと、本体の 32MB のみで正常に起動するハズです。 SODIMM を外した状態で、本体の 32MB を使って正常に動作することは、 私の環境では、256.BIN でも 128.BIN でも確認済みです。 でもあなたの環境でどうなるかは、わかりません。

終わりに

皆様のご健闘を。でも充分検討した上でね (オヤジだ...)。



mail