PC用ビデオカードのBIOSをMacPro対応64bitEFIに書き換えてみた
私のMacProはEarly2008モデルであり、基本スペックとしてはまだまだ
現役でイケルと思うのだが、なんだかんだで高速なグラボが欲しくなり
前回、Windows用のGTX560に換装していた
現在OSは10.8を使っているが、PC用でも問題なく使えているものの
やはりEFI対応ではないので、起動時のブートスクリーンが拝めない事と
多少のグレードアップを目的として、PC用グラフィックカード
HD6870のEFI化を行なってみた
これまではNvidiaだったので、今回はMacでは標準的なATI RADEONから
入手価格と性能バランスを考慮してHD6870をターゲットにした
準備したのは、XFX製の型番「HD-687A-ZDFC」
1GBのRAMとDVI×2、mini displayポート×2、HDMI×1を装備し
デュアルファンのモデルで、なかなか頼もしい感じだ(笑
とにかくMac対応のビデオカードは選択肢が少ない、今回のように
VGAカードのファームウェアを書き換えても使える意味は大きいが
リスクも高いので、どれをベースに使うかはかなり重要
PC用グラボをEFI対応へ書き換えるには、ネット上で多数の有志の方々が
情報を公開されているが、XFX製品は成功事例が多くて安心感があるのが
チョイス理由
BIOSの書き換えにあたって、各種ツールと環境が必要
今回は全てMacPro上で行える手順で書き換えた
必要なツール類は、有名な海外掲示板サイトnetkas.org forumの
カテゴリ:Rom things 内の
トピックス:make your own radeon HD 5770/5870/6870/6850 Mac ROM!
から拝借できるものがほとんどで、手順も公開されているが
わかりにくい面もあるのでまとめてみる
なお、該当サイトからツールをダウンロードするには、ユーザー登録が
必要なので、あらかじめメールアドレスを持って登録を済ませておく
準備するもの
・空き領域のあるHDD
・ATIflash(BIOS書き換えツール 投稿時のバージョンは3.99)
・FreeDOS boot CDのISOイメージ
・HD6870用EFI ROM(6870.efi.rom)
・Pythonスクリプトファイル(fixrom.py)
※EFI ROMとfixrom.pyはトピックス内で「flash.zip」として公開されて
いるものをダウンロードすると入っているものを利用しています
DOS環境を作る
ダウンロードしたFreeDOSのISOイメージを、ディスクユーティリティなり
ToastなりでCD-Rに焼いてブートCDを作成しておきます
FreeDOSで起動後は(MS-DOS)FATでフォーマットされたドライブしか
見えませんので、Macに内蔵されているHDDに空き領域(容量ではない)
がある場合(2M程度の領域で十分)は、ディスクユーティリティで
あらたなパーティションを作成して、FATでフォーマットしておきます
私の場合は、HDDの空き領域がなかった為、別に320GBのHDDを
MacProに取り付けてフォーマットしておきました
フォーマットが完了したら、ATIflash.exeを入れておきます
オリジナルBIOSを吸い出す
今回のHD6870はMacPro 2008の電源容量的にもOKのようですし
GTX560で使っていた外部電源6pin×2本をそのまま使えるので良し
まずは、オリジナルのPC用BIOSを吸い出します
作成しておいたFreeDOSのブートCDを入れてから、Macの電源を落として
HD6870を取り付けます
純正グラボとの2枚刺し環境の場合は、はずして1枚のみの環境にしてから
「C」キーを押しながら起動してFreeDOSを起動します
FreeDOSのブートメニューで「1」を押して
CD-ROM起動を選択
続いて「2」を押してSafeModeで起動します
DOSのコマンドプロンプトが立ち上がったら、「C:」を入力して
ドライブをCへ変更すると、FATフォーマットしておいたHDDが覗けます
ので、中に「atiflash.exe」があることを確認してから
atiflash -s 0 pc6870.rom 20000
を入力して、PC用のBIOSをバックアップ保存します
※「pc6870.rom」の部分は任意のファイル名です
バックアップは数秒程度で完了しますので、完了後はそのまま再起動
EFI ROMへの書き換え
再起動後は、Mac上でバックアップしたオリジナルのBIOSを
EFIファームウェアとして書き換えます
FATフォーマットしたHDDから「pc6870.rom」を自分のユーザーフォルダの
ルートへコピーし、わかりやすいように「mac6870.rom」などでリネーム
しておきます
また、同じようにユーザーフォルダーのルートへ
・6870.efi.rom
・fixrom.py
の2つのファイルをコピーします
計3つのファイルが揃ったら、ターミナルを起動し以下のコマンドを入力
blocknum=`printf %d "'\`dd if=mac6870.rom bs=1 skip=2 count=1 2>/dev/null\`"` size=$(($blocknum * 512)) dd if=6870.efi.rom of=mac6870.rom bs=$size seek=1 conv=notrunc
※「mac6870.rom」の部分は任意のファイル名です
※上記コマンドは3行まとめてコピペしても良い
続いて、以下のコマンドも入力し、ROMのインジケーターを修正します
python fixrom.py mac6870.rom mac6870.rom
これで、EFIブート可能なファームウェアへの書き換え作業は完了です
EFIファームウェアを書き戻す
書き換えが完了した、ROMファイルをFATフォーマットしたHDDへ
コピーしてから再びFreeDOSをSafeModeで起動します
DOSのコマンドプロンプトが立ち上がったら、「C:」を入力して
ドライブをCへ変更すると、FATフォーマットしておいたHDDが覗けます
ので、中に「atiflash.exe」と書き換えが完了した「mac6870.rom」の
2つのファイルがあることを確認したら
atiflash -p 0 mac6870.rom
で書き換えが完了します
私の場合これで再起動後からアップルマーク付きのブートスクリーンが
無事に拝めました
動作音も大変静かで満足です
他にも専用ツールを用いれば、MacOS上から全て出来てしまうような
やり方もあるようですが、いくつか試した中ではエラー等でうまくいかず
最終的にDOS環境を使ったやり方が無難だったと思います
制限事項等について
書き換え後の動作はとりあえず問題ないのですが
稀に起動時(しかも朝一に限り)フリーズする事がありました
海外のサイトを探しまわると、既にEFI化されたファームウェアを拾う事も
できるので、不安定だと感じたら他の方が作成されたROMを焼いて試して
見ることもアリなんですが、同じXFXのHD6870であっても使用メモリの
ベンダーが違う場合も多く、一概にどれが正解かは言えません
この記事を見て試される方は十分覚悟の上でお願いします
また、私の環境ではHD6870以外に試せないのでわかりませんが
少なくともHD6870の場合以下の制約が付きます
ブートスクリーンは下段のDVI出力時、かつモニターとの接続が
デュアルリンクの場合のみ拝めます
HD6870にはDVI出力が2系統あり、上下段に配置されていますが
上段からは出力されません
モニターとの接続は下段のDVI出力を使って、デュアルリンクケーブルで
行う必要があります
また、厄介なのがマルチモニター環境の場合です
DVI出力以外にminiDisplayポートとHDMI出力がありますので
マルチモニター自体は問題ありませんが、サブモニターへの接続に
miniDisplayポートをDVIへ変換したり、HDMIをDVIへ変換して
接続した場合はブートスクリーンが現れません
これは盲点でした
幸い私の場合は、メインモニター(PA241W)にDisplayポートがあるので
miniDisplayポートからの出力をそちらへ、サブモニター(S2100)への
接続はデュアルリンクのDVIケーブルを使うことで解決しています
HDMIを直に接続するパターンは手持ちにHDMI入力対応のモニターが無く
試せていないので、どなたかご存知の方は是非参考に教えてください
いずれにしても、HDMIもDisplayポートも持たないモニターをサブに
使うことは残念ながら現時点では出来ないように思いますので
ご注意ください
非常に参考になりやした、無事3000円1枚でWQXGA2画面表示出来ました。あとはマーベリクにするだけ。ライオンからの移行が面倒。
コメントいただき有難うございます。
完全に放置気味のサイトですがお役に立てて何よりです。
古Macなので、Yosemiteにする勇気はありませんが、Mavericksはさすがにこなれてますので良いと思いますよ。
既に10.9以降でなければ動かないアプリも増えてますので、たしかに面倒ですが・・Winのアップデート地獄を考えると再インストールも大した手間に感じないんすよね(笑)
すみません。
インストラクションの通りに
CDからFreeDOS ブートメニュー 「1」を押して
CD-ROMから起動後、FreeDOS のブートメニュー 「2」を
選択するのですが、リターンキーを押しても反応がありません。
これ以上先に進む事もできません。
どういう原因なのでしょうか?ご存知であれば教えてください。
Ogyu さん
コメントいただき有難うございます。
既に解決済みでしたらアレですが、ご指摘の原因については残念ながら心当たりがありません。
一応、整理しておきますとCDから起動して、最初のクジラさんの画面で「1」(ENTERでも可)を選択してブートをスタートさせ、少し読み込み待ち(最後にInitDiskと表示される画面、サイト上には載せていません)を何もせずにクリアした後、最終的にFreeDOSをHDDへインストールするか、SafeModeとして起動するかを選択する画面になりますので、ここで「2」を選択する形になります。
ここまで間違いがなく「2」を選択しても全く無反応と言うことでしょうか。
通常「2」を選択し、FreeDOSが起動していれば画面には「A:」などのコマンドプロンプトのみ表示されているはずですがそうではないと言う状況ですかね??
そうなんです。
ご指示の通りに最初のくじらの画面で「1」をまず選択してそのあと「FreeDOSをHDDへインストールするか、SafeModeとして起動するかを選択する画面」に変わって、「2」を選択したいのですが、できません。
何度も試みましたができませんでした。FreeDOSをダウンロードする際、最新のバージョンを使いましたが、古いバージョンの3.99を再ダウンンロードして使ってみようと思ってます。どういう原因なんでしょうね。グーグってみてもそういった問題は発生していないようです。
HD6870はEFI対応へ書き換えなくともブートスクリーンがでないだけで、普通に’使えてます。いろいろありがとうございます。
尾久
今回はfdbasecd.isoをCDに焼き直したものから起動したところSafeModeとして「2」を選択することができました。
コマンドプロンプトの画面でA:>_が現れます。
そこでご指示も通りC:を入力するとA:>_がC:>_の変換されます。
この先からどのようにしてよいのかわかりません。
インストラクションには「FATフォーマットしておいたHDDが覗けますので、中に「atiflash.exe」があることを確認してから」とありますが、どのようにしたらHDDが覗けるのでしょうか。よろしくお願い致します。
Ogyu さん
プロンプトまでは辿りつけたようですね。
HDDが「C:」ドライブとして認識されているようでしたら、後は記載通りなのですがここから先はMS-DOSのコマンド知識が必要です。
HDDの中身を見るには「dir」と入力してENTERしてください。「C:」へドライブチェンジしていればCドライブとして認識されているHDDの中身が見えると思います。
後は必要なツールが揃っていれば、BIOSのバックアップから記載通り試してみてください。
なお、ここから先はそれなりにリスクが伴いますのでその旨ご理解の上お試しください。特に安定的な動作については様々な状況が関わりますのである程度ご自身で対処出来る必要があるかもしれません。
macpro2008を所有しており HD8670に換装をしようと思っております。
ご解説、非常にためになり感謝をしているのですが、英語がまるっきりダメで、flash.zip が見つけられません。 どの辺にあるのか教えていただけないでしょうか? よろしくお願いいたします。
【取り消し】
先ほど、flash.zip を見つけることができました。
週末に作業を行ってみます。 また、状況をご報告いたします。
ありがとうございました。
kk-tt さん
実際、書き換えなくても利用できるので問題はありませんが、チャレンジしてみて動いた時の満足度は高いと思います。既に記事も古く、他にもう少し手軽な方法もあるようなのですが、私のやり方は面倒な上それなりにリスクが伴う事をご承知おきください。
成功を願っています。
kk-ttです。大変に参考になり、感謝をしています。
早速挑戦してみましたので、とりあえず、ご報告致します。
機種は、macpro2008 でSapphire製HD6870 です。
Romの情報の抜き出しには成功しましたが、書き換えが出来なかったようで起動画面(アップルマーク)は出ませんでした。
(エラーは、ターミナル上から blocknum を実行した時、以下のエラーにより、書き換えがされていませんでした
dd: bs must be between 1 and 9223372036854775807)
継続して頑張ってみます。
はじめまして。
MacPro2006に8800gtsを取り付けようとしていたところ、辿り着きました。
HD6870とは使用するROM等が違うことは分かっています。
躓いている点なのですが、FreeDOS上Cドライブを見つけられずにいます。
FreeDOSで起動し1→2と進行しAドライブ上にいるのですが、そこから『C:』をタイプすると『invalid drive C』とメッセージが表示されてしまうのです。
私はMac上のディスクユーティリティーでFATフォーマットしたHDDを使用しています。
何かご助言いただけますと幸です。
よろしくお願いいたします。
自己解決しました。
FATフォーマットしたつもりが、FATフォーマットではなかったというオチでした。
コメント欄を汚してしまい申し訳ありませんでした。
ponk 様
自己解決したようでなによりです。
ちなみに、私はNvidiaの方は書き換えずに使っていましたが、現在はAMD HD7970を書き換えて使っています。Nvidiaの書き換えはチャレンジしていないのでなんともいえませんが、AMDだとBootcampでWindows環境もお使いであれば、GPU-ZでオリジナルBIOSを抜き出して、EFI化してからATI WinFlashを使えばWindows上から簡単に書き換え可能です。記事を書いた当初は、探究心からとても面倒な方法を選択していたので拍子抜けするぐらいでしたよ。参考まで・・
はじめまして。
良い情報ありがとうございます。!大変たすかりました!
自分は、Mac Pro用として、PC HD5870カードを64bitEFIに書き換えトライをしていますが、
Netkasから必要なファイルダウンロードが出来なくなり、(ID Resiter問題。。)他のサイトからROM ファイルを探しています。
申し訳ないですが、Netkasからの<flash.zip>ファイルをEmailまで伝送してくれないでしょうか。
お手数ですが、宜しくお願い致します!
KY さん
こんにちは。
Netkasのフォーラムからどういう条件でダウンロードできなくなったのかわかりませんが、お困りのようなのでDropboxへ入れておきました。
http://u0u0.net/pzFL
HD5870ですが、古臭い情報のままですので、もしかすると私が使っているHD7970と同じ方法でも書き換え可能なのかもしれません。
それから、記事には記載していないのですがROMを書き換える書き換えないに限らず、Win版のRadeonはそのままではPCI-eのリンク速度が半分の2.5GT/sしか出ないですよ・・たぶん・・・カードによって、何番かの抵抗を除去するパターンと、追加するパターンがありますがので、書き換えてみて速度が出ていない場合はそれらの情報を探してみると良いです。
WBL 様
こんばんは。
本当にありがとうございます。
大変助かりました。!!
ご説明も本当に感謝いたします。
早速トライして報告致します。
再度、感謝いたします。
現在netkas.orgでは新規に登録ができないようなので教えてください。
今でもHD6850のEFI.ROMは更新されているのでしょうか?
二つ前のコメントのDropBoxから拝借させて頂きましたが、
自分の使い方で動作に問題は起きていませんがカードが別名で認識されています。
ZNDK さん
こんにちは。
EFI.ROM作成の条件はカードのブランドやロットによっても色々と変化するようなのでなんとも言えません。
基本的に誰かが成功したROMと使用カードの情報をセットで公開していなければ、汎用的になんらかのEFI部分を抜きだしてパッチする(言い方が正しいかわかりませんが)以外はないので、トライアンドエラーあるのみと言う事になります。
特に動作上問題がないようでしたら、そのままでも良いのかもしれませんが、気になるようでしたらバイナリエディタでカード名を修正してしまう方法もありますよ。私も、現在使用しているHD7970の書き換え時にカード名が違ってしまっていたのに気付き、メモリやスペックに問題が無いようなので、パッチ元のバイナリをエディタ(Macだと0xEDを使用)で編集して作成し直しました。
WBLさん、ご返答ありがとうございます。
netkasにも6870と認識されてる人がいるようですね。
6850.efi.romの中を覗いても合体後のROMを見ても6850はあっても、少なくとも6870なんて文字が含まれてないようです。マシン語?的な中に含まれているのでしょうか。
あとすいません。netkas.orgって閉鎖されたりする予定なのでしょうか?
ずいぶん前からどのメールアドレスでも登録できないなんて情報も拾いました。
有益な記事、ありがとうございます。大変勉強になりました。
壊してもいいや、勉強になるし…という気持ちでサファイアhd5870で
チャレンジしました。
オリジナルのromを吸い出す所まで同じ方法を取らせてもらいました。
しかし、ターミナルではじかれてしまい(dd: bs must be between 1 and 9223372036854775807)netkasでは何やらblocknumの値が〜みたいな手に負えない話でしたので、コマンドプロンプトで自分のボード
に推奨のromを直接書き換えた所、5870と認識しています。
プロファイラではEFI ドライバのバージョン: 01.00.417と出ている
のですが、これってefi化もされているという事なんでしょうか?
私もROMでーた頂きました。
非常に助かりました。ありがとうございます。
突然ですいません。mac歴20年ですがこちらのサイトを参考にさせていただき初めてROMの書き換えに挑戦しています。機種はMacPro2009をファームウエア書き換えCPUをアップグレードしてあります。カードはAMD HD6870です。FreeDos1.0では最初に書き込まれた方と同じでsafemodeを選択しても次え進めなくて断念、そこでFreeDos1.2を使ってDOSに入り最新のatiflash_277フォルダからatiflash.exeをMS-DOS FATでフォーマットされたドライブに入れC:でatiflash -s 0 pc6870.rom 20000入力するところで問題が起きました。
半角の–がDos画面で入力するのはどうしたら良いのでしょうか。通常ならoptionキー押しながらとか、F10で半角になるのですが、Dos 画面では全くできません。
とりあえず全角のーのままでトライしましたが、このDosモードでは動かないと表示されます。初歩的な事かもしれませんが、教えていただければ助かります。
矢萩 さん
こんにちは、遅レスですでにご覧になっていないかもしれませんが、DOS画面上で「-」ハイフンが入力出来ないとの事ですが、すみません具体的な指摘が出来ません
おそらくキーボードドライバの問題だろうと思いますので、起動時のオプションでキーボードの選択は出来なかったでしょうか
既に私はMacPROを手放しiMacに乗り換え済みでして、その程度のお答えしか出来ません・・すみません
ちなみに、私はMacPROの時代からキーボードだけはWindows用を使っていましたので、もしWinキーボードをお持ちしたら試してみてください
返信ありがとうございます。結論から言いますとSierraではダメでyosemiteをクリーンインストールしたHDDの一部をDosフォーマットしたもので出来ました。ハイフンの問題ではありませんでした。ただこちらのサイトがなければ出来ませんでしたのでありがとうございました。
矢萩 さん
そんなハマリによく気がつきましたね、無事に書き換え出来たようで良かったです。あとは、PCI-eのリンクスピード5.0GT/sへの対応ですが
ここが参考になります
https://goo.gl/AAL7eE
HD6870の場合は、クロスファイアコネクター付近の「R3」ランドに10KΩの抵抗を取り付ける必要がありますが、かなり精密な作業になります
私もHD6870で試した際、チップ抵抗が手元になかったので、一般的な抵抗を取り付けたのですが、リードが太くて難儀しました、特に動作は問題ありませんでしたが・・
ありがとうございます。参考にさせていただきます。
突然ですが、お願いがあります。netkasにユーザー登録を試みるも、アクティブ化のメールが届きません。入口で行き詰まってしまいました。HD5870.romが入手できれば、送っていただけませんか。
永樂 さん
netkasにログイン出来ないとの事でしたが、フォーラム内で配布されているflash.zipをアップロードしておきます
ご使用に関しては、当方これ以上のサポートは出来兼ねますので自己責任にてお願い致します
https://goo.gl/3cJP1e
質問お願いします、「MSI Radeon RX 560 AERO ITX 4G OC」というグラボもEFI起動できる様に書き換えできるのでしょうか?…
f6sx8d
7algjv
3863pc
6ohv9n