EFI(パッチ)を利用することで、オリジナルのコードを極力改変しないで利用する手法が公開されました。OSアップデート時などに、その効果が理解できると思います。
最新は、V8.0
スレ11の779さんが訳してくれています。感謝!
※ v4の頃の投稿です。
779 :名称未設定:2007/11/16(金) 19:24:41 ID:GmjHvYQ+0
http://www.digitmemo.com/articles/734/howto-install-efi-patch-and-enable-vanilla-os-x-kernel-in-hackintosh/
<日本語訳>
EFI patchのインストールすることでOS Xカーネルを改変せずに利用する in Hackintosh
tips Dream finally becomes reality: use vanilla OS X kernel on normal PCs.
●夢が現実となった。
普通のPC上でOS Xを使うことのできる夢だ
訳者注:vanillaは以前から「全く改変していない」「完全オリジナル」という意味で使われている。
最初に数日前パッチが公開されたので、一部の読者にとって新しいことではでないかもしれない。
今日紹介する最新バージョンのv4はいろいろなバグフィックスとマルチブートをサポートしている。
●EFIとは何か?そして、なぜこの「patch」なのか?
EFI(Extensible Firmware Interface)は、OSとプラットホームファームウェアの間のソフトウェアインターフェースを定める仕様。
EFIは、歴史的にすべてのIBM互換PCにより用いられるレガシーなBIOSファームウェアインターフェースを改善し置き換えるためのもの。
しかし、今日現在、インテルベースのMacが、最初からEFIを使用しているがMicrosoft Windowsを走らせている大部分のPCはいまだにBIOSに頼っている。
技術的な利点にもかかわらず、これは通常のPCでOS Xを走らせるための人工バリアになっている。
皮肉にも、Microsoft WindowsはBIOSのみをサポートしており、アップルはその隙間を埋めるためにBoot Campを作った。
EFI patchはそれと似通ったアプローチで機能する:それは通常のBIOSベースのPCにEFIデータをエミュレーションさせることでOS Xを本物のEFIベースのMacとみなさせる。
EFIエミュレーションはOSX86コミュニティの長い夢である。
だが、その前にAppleのオープンソースDarwin ProjectとHackintosh作のEFIをバイパスするパッチ済みカーネルやカーネルモジュールによって我々は通常のPCでOS Xを楽しむことができた。
彼らに謝辞を述べたいと思う。そして今やEFI patchによって改変されてないOS Xカーネルからブートでき、「vanilla kexts」を使うことができる。
そして、それは将来のシステムアップデートのために心の安らぎと大きな平和をもたらすものなのだ。
780 :名称未設定:2007/11/16(金) 19:26:39 ID:GmjHvYQ+0
●EFIパッチの必要条件
▼このEFI loaderは、intel SSE3プロセッサーをサポートする。
これはCore Duo、Core 2 Duo、Core Solo、Pentium Dやintelチップセットを含むマザーボードやらに限るということではない(つまり、必ずしもintelブランドでなければないわけではなく、915とそれ以後ならばよいはずだ)。
もしこの辺が不明ならば、cpu-zをダウンロードして、テストしてみるとよい。
▼OS Xインストールが稼動するか?あなたがOSX新しいEFIを試用したいならば、まずはEFI以外の方法で1つをインストールしてみてほしい。
このガイドは10.5のLeopardに基づいているが、10.4 Tigerでも大部分はOKなはずだ。
▼UNIXシェルの基本的な知識。下記のガイドはなるべく簡単なように書いた。
▼LeopardインストールDVDとUSBメモリ。エラーから抜け出すために必要。必要とならないことを望むが・・・。
●インストールの準備
実際のインストールは簡単だが、その前に、すべての必要なファイルを準備しておこう。
1. EFI patchを入手
pc_efi_v40.zip.をダウンロードしよう。AppleSMBIOS.kextとdsmos.kextの二つの重要なkextファイルを含んでいる。
2.オリジナルのカーネルとモジュールを入手
Leopard_Vanilla_Kernel_Kexts.zipにオリジナルのカーネルといくつかのkextファイルを含んでいる(これらはLeopard 10.5専用)。TigerユーザーはPacifistを使ってTigerのDVD(System/Installation/Packages/BaseSystem.pkg)から抽出するとよいだろう。
3. EFI patchを設置
pc_efi_v40.zipをあなたのデスクトップに解凍する。そしてターミナルを起動してタイプする。
sudo mkdir /iamefi
sudo cp /Users/xxx/Desktop/pc_efi_v40/* /iamefi/
suとして作業するのでパスワードを入力する必要がある。
そして、xxxにはあなたのユーザ名が入る。こうしてiamefiのディレクトリにEFI patchのために必要なファイルをコピーしましょう。
782 :名称未設定:2007/11/16(金) 19:29:49 ID:GmjHvYQ+0
4.バニラカーネルを元に戻す
Leopard用に2つのポピュラーなリリースがある(BrazilMacとToH)が、がEFI patchで働かさなければなりません。先にvanillaカーネルを読み込むようにしなければならない。
デスクトップにLeopard_Vanilla_Kernel_Kexts.zipを解凍する。そして、ターミナルで次のようにタイプする。
sudo mv /mach_kernel /mach_kernel.patched
パッチを当てられたカーネルをバックアップした後、タイプする。
sudo cp /Users/xxx/Desktop/Leopard_Vanilla_Kernel_Kexts/mach_kernel /
新しいカーネルをインストールする。パーミッションを修復する
sudo chmod 644 /mach_kernel && sudo chown root:wheel /mach_kernel
sudo chmod 644 /mach_kernel.patched && sudo chown root:wheel /mach_kernel.patched
オプションとしてEFIの有無にかかわらず働くので、最新のToHカーネルを入手してルートディレクトリに置くことを強く奨める。
sudo cp /Users/xxx/Desktop/SpeedStep/mach_kernel /mach_kernel.toh
sudo chmod 644 /mach_kernel.toh && sudo chown 0:0 /mach_kernel.toh
5.重要なkextsをインストール
pc_efi_v40.zip. So install it if its not in your system:
重要なことを言おう。EFI+vanillaカーネルで起動するための最低限の条件についてだ。
Netkas作のパッチ済みのカーネルではdsmos.kextは必要とされてないが、vanillaカーネルでは絶対に必要。
dsmos.kextは、pc_efi_v40.zip.に含まれている。これを以下のようにコピーする。
sudo cp -R /Users/xxx/Desktop/pc_efi_v40/dsmos.kext /System/Library/Extensions/
パーミッションの修復
sudo chmod -R 755 /System/Library/Extensions/dsmos.kext
sudo chown -R root:wheel /System/Library/Extensions/dsmos.kext
783 :名称未設定:2007/11/16(金) 19:31:42 ID:GmjHvYQ+0
6.ディスクIDをチェック
次のようにタイプ
diskutil list
そして、あなたがインストールすべきディスクのIDを書きとめる。
diskXsYという書式で表示される(X、Yは数字が入る)。
●EFI Patchをインストール
EFIのインストールには、古きよきstartuptoolを使う方法とgrub(v4からマルチブートがサポートされている)を使う方法の2つがある。
1.startuptoolを使用する方法
startuptoolによってEFI化されたOS Xを選択して起動する。これは簡単かつ安全。
OS Xを再起動している間にF8を押下することでDarwin loader optionが現れる。
mach_kernel.patched -s
または
mach_kernel.toh -s
をタイプしてシングルユーザモードに入る。
cd /iamefi
booti386、boot_v3、boot_v4という3つのファイルがある。先の2つはEFIローダーで、boot_v4はマルチブートをサポートした最新バージョンだ。
これは、v3と同じ働きをする。booti386はオリジナルのDarwin bootloaderであり、ゼロからインストールするために使う。ここではv4を使う。
./startupfiletool /dev/rdiskXsY ./boot_v4
前のステップで書き留めておいたディスクIDに書き換えてコマンドする。たとえば、disk0s2ならばrdisk0s2というように先頭に「r」を加える。
「HFS+ partition detected, write xxx bytes」という表示が見えたらならばEFIローダーがうまくインストールされたことを意味する。
さぁrebootとタイプして、新しいEFIの世界を楽しもう。
784 :名称未設定:2007/11/16(金) 19:32:59 ID:GmjHvYQ+0
2. grubを使用する方法
OS Xをインストールしている間は手をふれないでおく。
EFI patchのプロセスは実際にはDarwin loaderの前に完了する。これは「マルチブート」のための作業だ。
fat32/reiserfs/xfs/ext2/ext3/ntfs/
grubのセットアップをするならば、boot_v4を上記のどこでもよいのでコピーしておくだけだ。
でも楽をするならばルートディレクトリに置く。そしてmenu.lstに次のように書き加える。
title Darwin
kernel (hd0,0)/boot_v4
hd0,0はboot_v4を置くパーティションであってOS Xのパーティションではない。
その後、grubが起動し、Darwinを選び、Enterキーをタイプしよう。そして、5秒まってOS Xを含むハードディスクを選ぶために5秒を持つ。80、81、82・・・5秒間に何もキーを押さなければデフォルトのドライブで起動を始める。
Windowsのみユーザーは、boot_v4をロードするためにgrub4dosを使うことができる。
このgrldr.zipをダウンロードする。
C:\(Windowsでyesと答えることで)に解凍できる。
あとXPやVistaでのgrldrについては以前のインストールガイドの記事に加筆したので最後の部分を参照してほしい。このgrldrを使うことで同じようにインストールできる。そして、以下の内容でmenu.lstを作る。
find ?set-root /bootmgr
timeout 10
default 0
title Leopard
kernel (hd0,0)/boot_v4
785 :名称未設定:2007/11/16(金) 19:34:05 ID:GmjHvYQ+0
●トラブルシューティング
EFI patchはまだ初期段階のものだ。EFIとvanilla kernelはまったく同じようには機能しない
1.EFIを中止してパッチ済みのカーネルに戻す
また、Darwinが起動するときにF8を押し、カーネルの名前をタイプする。
たとえば我々の場合は「mach_kernel.patched」。そして次のようにタイプする
mach_kernel.patched -v
バックアップしているToHカーネルを使ってみよう
mach_kernel.toh -v
起動中にどちらがパッチを当てたカーネルで起動して、verboseモードでOS Xを立ち上げる。
その後、vanillaカーネルを削除して、以前のものを利用する。
sudo mv /mach_kernel /mach_kernel.vanilla && sudo mv /mach_kernel.patched /mach_kernel
パーミッションを修正
sudo chmod 644 /mach_kernel && sudo chown root:wheel /mach_kernel
sudo chmod 644 /mach_kernel.vanilla && sudo chown root:wheel /mach_kernel.vanilla
2.EFIが実際に機能するかどうか確かめる
システムがvanillaカーネルで起動しているならば、EFIが機能していると確信しているだろう。
そして、システムも本物のMacとして同じカーネルを走らせている。
言われるまでもなくEFI patchもパッチ済みのカーネルで動作する。
そして、EFIが機能するならばGeekbenchをダウンロードしてシステムを調査してみると「Hackintosh」ではなく「Mac」として認識するはずだ。
786 :名称未設定:2007/11/16(金) 19:35:00 ID:GmjHvYQ+0
3.Vanilla kextの「互換性」
現行のEFI patchがvanilla kernelやすべてのvanilla kextsを機能させ、あなたのハードウェアをサポートしていたとしても、まだ伝えておくべきことがある。
1.vanillaカーネルを使用していても、dsmos.kextを置いておくことを忘れないでほしい。
実際にはパッチ済みのものを利用するつもりがないにしても、dsmos.kextをシステムに放置しておくことが何かの害になることはない。
あなたの必要とするビデオカード用のNatit/NVinjectのやサウンドカード用のALCinjectには何も影響しない。
2.vanilla、改変されていないkext、Info.plistの編集、デバイスIDを加える事などは安全かつ安定性のあるシステムに何かしらの影響も与えていない。
だからあなたがこれらをの作業をする前に、kextが何であるかを知っておいてほしい。
3.パワーマネジメント(再起動/シャットダウン/スリープ)は、あなたと私で意見を異にする部分かもしれない。
3つの要素(カーネル、AppleACPIPlatform.kextとAppleSMBIOS.kext)がある。
私は「このMacについて」の中で起きるエラー/クラッシュとシステムプロフィールを改善するpc_efi_v40.zipのAppleSMBIOS.kextを使うことを強く勧める。
そして、残り2つについては、あなたがうまく機能する組合せ(パッチ済みカーネルかvanilla)を見つける必要があるかもしれない。
また、NVidiaとGMA950のビデオカードユーザーは運をこれで幸せになれるだろう。
4.vanillaのAppleACPIPlatform.kextはすべてのPS2ポートが機能しない。
しかし、USBでセットアップする分には問題ありません。
5.追加:新しいIONetworkingFamily.kextの修正版は悪名高いTimeMachineのバグである。
“_CFGetHostUUIDString: unable to determine UUID for host. Error: 35″をも改善する。
これはもちろんLeopardだけの機能でありここでそのファイルを入手できる。
●EFI Patchを削除する
あなたがそれが好まないならば、ちょっとシングルユーザーモード(-s)でブートして、vanilla boot loaderや古いパッチ済みカーネルを元に戻そう。
詳細は以前のインストール/トラブルを参照してほしい。
./startupfiletool /dev/rdiskXsY ./booti386
787 :名称未設定:2007/11/16(金) 19:37:36 ID:GmjHvYQ+0
>781
指摘THX!
自分用に試さないまま訳したから間違いがあるかもしれないので指摘たのんます。
@wikiの制御コードにひっかかっているので、原文ママに掲載できていません。
修正方法を御存知の方がいらしたら、手直しをお願いします。
最終更新:2008年07月15日 16:29