« デジモンアドベンチャー02 ディアボロモンの逆襲 | Main | いまさら8小隊 »

非サポート機種でOS X 10.0

PowerMac 7300~9600でOS X を動かすための手順が(http://homepage.mac.com/RyanRempel/OldWorld/Instructions.html)にある。うちでもこの手順で動かすことができたのだが、L2キャッシュが動作していないためひっじょーに重たい。この手順と必要な追加ファイルを用意してくれた、Ryan Rampel氏は、PublicBetaの時に、非サポート機種でL2キャッシュを有効にするL2ChacheConfigを作ってくれた偉い人なのだが、正式版用のアップデートでちょっと問題があって遅れているらしい。そこで、とりあえず自分専用にカーネルに直にパッチを当てることにした。 cvsでDarwinのカーネルソースを取ってきて、一部手を加えmakeする。ただし、現在のカーネルソースは、そのままではMac OS Xでコンパイルできないので、かなり面倒な作業になる。カーネルビルドの手順については説明しないので、やってみたい方はhttp://www.darwinfo.orgあたりで、Darwin-Devメーリングリストのアーカイブを読んで勉強して下さい あ、それから、このパッチはG4カード用です。G3カードの場合はパッチを当てる場所が違います。

xnu/osfmk/ppc/start.s
from line 462

init7400:	bf		firstBoot,i7400nb					; Do different if not initial boot....
			mfspr	r13,l2cr							; Get the L2CR.
            oris	r13,r13,0xB908			;	----Juan set dummy L2CR data.
            rlwinm.	r0,r13,0,l2e,l2e					; Any L2?.
			bne+	i7400hl2							; Yes....
			rlwinm	r17,r17,0,pfL2b+1,pfL2b-1			; No L2, turn off feature.
三行目のorisで始まる行が追加したもの。最初からG3以降を搭載しているMacでは、ROMが起動時にL2CRレジスタを設定するが、アップグレードカードの場合、多くはそういう事をしていないので、最初L2CRの値は0になっている。そこで、L2CRの値を読み込んだ直後に、その読み込み先のレジスタに手動でL2CRの「こうあるべき」値をセットしてやる。ここでセットしている値は、L2キャッシュ有効、L2サイズ1MB、キャッシュ/CPUスピード比1:2、ライトスルーモード、というところ。

この変更を加えたカーネルをコンパイルして、入れ替えたところ、驚く程速くなった。これなら十分実用的と言える。

|

« デジモンアドベンチャー02 ディアボロモンの逆襲 | Main | いまさら8小隊 »

「パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/10254/53285

Listed below are links to weblogs that reference 非サポート機種でOS X 10.0:

» Buy xanax with mastercard overnight delivery. [Buy xanax precrition needed.]
Buy xanax. Buy xanax online. Search results buy xanax online. Buy xanax without prescription in usa. Buy xanax no prescription. Buy xanax precrition needed. [Read More]

Tracked on 2007.09.04 at 04:51 PM

« デジモンアドベンチャー02 ディアボロモンの逆襲 | Main | いまさら8小隊 »