タグ : DSDT.aml

10.5.7 の夢を…見ました!

10.5.7 で夢が見られなくなったのは、IOAPIC のハングではなく、以前作った DSDT.aml が、10.5.7 では使えなくなってしまったことが原因と判明。DSDT.aml を削除したら、さくっと起動しました。ついでに、DSDT Patcher で作成し直したら、全く問題なく起動。 ということで、アップデート手順は以下の通り。 

 

  1. DSDT.aml を削除する。
  2. ターミナルを2枚起動。すべて

    sudo -s 

    で root になっておく。

  3. netkas によると、SMBIOS を置換したりエミュレートするブートローダーを使ってると、機種ID が Mac Pro となってるマシンは、kernel panic するよ、とのことだったので、片方のターミナルで、

    while sleep 1
    do
    rm -rf /System/Library/Extensions/AppleTyMCEDriver.kext
    done

    を実行する。

  4. うちの環境では、10.5.7 の AppleHDA.kext が kernel panic を起こすので、別のターミナルで

    while sleep 1
    do
    rm -rf /System/Library/Extensions/AppleHDA.kext
    done

    も実行する。

  5. あらかじめダウンロードしておいた 10.5.7 Combo Update を起動する。
  6. Combo Update を実行する。
  7. Combo Update が完了したら、ターミナルを閉じる。
  8. 再起動ボタンをクリックして、再起動する。
  9. 起動したら、DSDT Patcher で、DSDT.aml を再作成する。
  10. DSDT.aml を / または、EFI パーティションにコピーする。
  11. もう一度、OS X を再起動する。

 

以上でアップデートは完了です。

…が、10.5.6 のAppleHDA.kext をロードしているのに、なぜか内蔵オーディオから音が鳴らなくなってしまいました。USBオーディオがあるので別段困らないとはいえ、まだ調査が必要なようです。

 

続けて夢を見ました。

EFI boot v6 を落として、USBデバイス経由でなく、スタンドアローンで起動するようにしてみました。この、EFI boot は、Boot-132にインスパイヤされたものだと作成者自身が記事で述べているように、GUIDパーティションに必ずついてくる EFIパーティションにブートローダやら、kextを突っ込んでしまえという方法です。元々 Apple はここを使ってないので、昨今の風潮にあわせた資源の有効活用ってやつですね。やり方はごっつ簡単。Leopard 導入済みの環境でも、DVDのインストーラから起動した環境でもインストール可能です。

■必要なもの

  1. efi_boot_v6.1.zip を InsanelyMac の [Guide] Boot from EFI partition, zero modification installs on Intel SSE2 or better…, Zero-modification Leopard installs. Share disks between macs & ha ってエントリから落とす。
  2. zip を展開しておく。
  3. DSDT Pacher で、DSDT.aml を造っておく。

[1] インストール先ディスクのデバイス名を取得する

  1. ターミナルを開き、sudo -s でルートになっておく。
  2. レパード実行環境なら、diskutil info / | grep Identifier を実行。表示されたディスク名(disk0s2 とか)をメモっとく。
  3. DVD起動なら、diskutil info /Volume/なんとか | grep Identifier。/Volume/なんとか は、対象のディスクのマウントポイント。

[2] EFIパーティションを初期化する

  1. さて、次に、EFIパーティションを使えるようにしなくてはなりません。通常、FAT32でフォーマットされているので、これを HFS+ に置き換えるわけです。そこで、次のコマンドを実行。
  2. diskutil eraseVolume “HFS+” “EFI” /dev/diskXs1 (diskXs1 の X は、[1]で取得したディスク名の最初の数字)

[3] ディスクを起動可能にする

  1. そのままでは、OSX86 をインストールした パーティションが、active (起動可能) になっているので、EFIパーティションが、active になるようおまじないをします。
  2. ./fdisk -e /dev/rdiskX (rdiskX の X は、[1]で取得したディスク名の最初の数字)
  3. すると、fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory なんてメッセージが出ますが、無視します。
  4. fdisk: X> とプロンプトが出ますので、f 1 と入力し、リターン。
  5. Partition 1 marked active. なんてメッセージが出力されます。
  6. 続いて、w と入力してリターン。これで、4 で変更した内容が書き込まれます。
  7. q と入力してリターン。で、終了。

[4] インストールする

  1. EFI Boot v6.1 を展開したディレクトリへ cd して、まずイニシャルブートローダを書き込む。
  2. と、その前に、コマンドに実行属性がなかったりするので、chmod +x fdisk とおまじないしておく。
  3. ./fdisk -f boot0 -u -y /dev/rdiskX を実行。(rdiskX の X は、[1]でメモったディスク名の最初の数字を指定して下さい)
  4. dd if=boot1h of=/dev/rdiskXs1 を実行。(最後の s1 が重要です。ここを変えたりしちゃいけません)
  5. mkdir /Volume/EFI
  6. mount_hfs /dev/diskXs1 /Volume/EFI (diskXs1 の X は、[1]でメモったディスク名の最初の数字を指定して下さい)
  7. cp boot-turbo-munky.bin /Volumes/EFI/boot
  8. cp update.sh /Volume/EFI/
  9. mkdir -p /Volumes/EFI/System/Booter
  10. mkdir /Volumes/EFI/Extensions
  11. mkdir /Volumes/EFI/.fseventsd (既にあったら造らなくてもよい)
  12. touch /Volumes/EFI/.fseventsd/no_log
  13. 必要な kext を /Volume/Extensions/ にコピーする。P5E WS PRO の場合は、次の通り。
  14. AppleAHCISupport.kext, AppleIntelPIIXATASupport.kext, SMBIOSEnabler.kext, dsmos.kext, AppleAHCIPort.kext, AppleYukon2Support.kext, AppleVIAATA.kext, OpenHaltRestart.kext (DSDT Patch を使用するので、Disabler系は不要)
  15. DSDT.aml を /Volume/EFI へコピーする。
  16. /Library/Preferences/SystemConfiguration/com.apple.Boot.plist を /Volume/EFI へコピーする。
  17. cd /Volume/EFI; chmod +x update.sh
  18. ./update.sh を実行する。警告が表示されても気にしない。
  19. cd .. して、umount /Volume/EFI で、アンマウントする。できない場合は、-f オプションをつけて強制アンマウント。
  20. 以上でインストール終了!

いざ、再起動です。kextが読まれるのが、暫し画面に表示された後、あの灰色の画面が…って、林檎マークが出ない…ま、そういう仕様なんですが、ちょっと寂しい。まあ、起動してしまえば、問題なく使えます。リブートとシャットダウンがシャキシャキと反応するようになったんで、DSDT Patch もちゃんと効いてるみたい。相変わらず sleep が復帰してこないんですが、うちの場合は許容範囲です。

 

Twitter links powered by Tweet This v1.8.3, a WordPress plugin for Twitter.