みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Hackintoshのブートログとエラーメッセージ

ここでは、Hackintoshでよく見られるエラーメッセージとその解決法をまとめようとしています。多くのサイトはエラーメッセージに基づく対処療法しか紹介していませんが、このページでは正常なブートログと照らし合わせていく形式をとっています。こうすれば、エラーの内容がよりよく分かるのではないかと思うからです。

正常なboot logとして、みーのiMac 2011(hackintoshではなく正規のやつ)のログを掲載しています。ちなみにboot logはApplications/Utilities/Console.appより見ることが可能です。

  • みーのiMac 2011 のスペック
    • OS X 10.8.2
    • CPU core i5 2.5GHz
    • Memory 12GByte DDR3 1333MHz

ログはまとまり毎に区切っています。ちなみに分割は、みーの独断と偏見によって行われています。みーが感じたMacのメッセージを大阪弁で併記しています(内容は保証しませんが)。赤字はみーが重要かなと思う部分です。

カーネルのロード

kernel[0]: Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64
kernel[0]: vm_page_bootstrap: 3023782 free pages and 105562 wired pages
kernel[0]: kext submap [0xffffff7f80741000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000741000]
kernel[0]: zone leak detection enabled
kernel[0]: standard timeslicing quantum is 10000 us
kernel[0]: standard background quantum is 2500 us
kernel[0]: mig_table_max_displ = 74
kernel[0]: TSC Deadline Timer supported and enabled

Mac : 「やっほーい。これからいろいろとロードしていくで!」

can"t find mach_kernel

Mac : 「おいおい、カーネルファイル "mach_kernel" が/ に見当たらんわ。これではカーネルがロードできへんで。」

/mach_kernelとは、Mac OS Xのカーネルのファイルです。これがないとカーネルがロードできません。このエラーが表示された場合は、/mach_kernelが起動HDDにあることを確認しましょう。起動HDDが正しく認識されていない可能性もあります。BIOSの設定で、SATA HDDのモードがAHCIになっていること(MacはAHCIでないとダメ)と、RAIDを設定している場合は、パーティションが正しく設定されていることを確認しましょう。

corecrypto.kextのロード (FIPS関連)

kernel[0]: corecrypto kext started!
kernel[0]: Running kernel space in FIPS MODE
kernel[0]: Plist hmac value is    735d392b68241ef173d81097b1c8ce9ba283521626d1c973ac376838c466757d
kernel[0]: Computed hmac value is 735d392b68241ef173d81097b1c8ce9ba283521626d1c973ac376838c466757d
kernel[0]: corecrypto.kext FIPS integrity POST test passed!
kernel[0]: corecrypto.kext FIPS AES CBC POST test passed!
kernel[0]: corecrypto.kext FIPS TDES CBC POST test passed!
kernel[0]: corecrypto.kext FIPS AES ECB AESNI POST test passed!
kernel[0]: corecrypto.kext FIPS AES XTS AESNI POST test passed!
kernel[0]: corecrypto.kext FIPS SHA POST test passed!
kernel[0]: corecrypto.kext FIPS HMAC POST test passed!
kernel[0]: corecrypto.kext FIPS ECDSA POST test passed!
kernel[0]: corecrypto.kext FIPS DRBG POST test passed!
kernel[0]: corecrypto.kext FIPS POST passed!

Mac : 「corecrypto.kextをロードしたで」

みーはcorecryptoが何をしているのかよくわかりません。FIPSが云々らしいのですが、、、

http://support.apple.com/kb/HT5396?viewlocale=ja_JP

CPUの認識

kernel[0]: AppleACPICPU: ProcessorId=1 LocalApicId=0 Enabled
kernel[0]: AppleACPICPU: ProcessorId=2 LocalApicId=2 Enabled
kernel[0]: AppleACPICPU: ProcessorId=3 LocalApicId=4 Enabled
kernel[0]: AppleACPICPU: ProcessorId=4 LocalApicId=6 Enabled
kernel[0]: AppleACPICPU: ProcessorId=5 LocalApicId=255 Disabled
kernel[0]: AppleACPICPU: ProcessorId=6 LocalApicId=255 Disabled
kernel[0]: AppleACPICPU: ProcessorId=7 LocalApicId=255 Disabled
kernel[0]: AppleACPICPU: ProcessorId=8 LocalApicId=255 Disabled

Mac : 「CPU認識したで。なんや、4 coreしかあらへんのかいな。残り4つ分は無効にしとくで」

みー : 「core i7にするお金がなかったのだよ」

Security policyのロード

kernel[0]: calling mpo_policy_init for TMSafetyNet
kernel[0]: Security policy loaded: Safety net for Time Machine (TMSafetyNet)
kernel[0]: calling mpo_policy_init for Sandbox
kernel[0]: Security policy loaded: Seatbelt sandbox policy (Sandbox)
kernel[0]: calling mpo_policy_init for Quarantine
kernel[0]: Security policy loaded: Quarantine policy (Quarantine)
kernel[0]: Copyright (c) 1982, 1986, 1989, 1991, 1993
kernel[0]: The Regents of the University of California. All rights reserved.
kernel[0]: MAC Framework successfully initialized
kernel[0]: using 16384 buffer headers and 10240 cluster IO buffer headers

Mac : 「セキュリティポリシーをロードしたで。これでフレームワークを正常にロードできたわ」

みーはセキュリティポリシーについて詳しく知らないのですが、おそらくMac OSのセキュリティを担っているのかと思われます。

CPUの電力関係のロード

kernel[0]: IOAPIC: Version 0x20 Vectors 64:87
kernel[0]: ACPI: System State [S0 S3 S4 S5]
kernel[0]: AppleIntelCPUPowerManagement: Turbo Ratios 1378
kernel[0]: AppleIntelCPUPowerManagement: (built 23:03:24 Jun 24 2012) initialization complete
kernel[0]: PFM64 (36 cpu) 0xf80000000, 0x80000000

Mac : 「CPUの機能を有効にしたで。」

Turbo Ratiosは、ターボ・ブーストテクノロジー関連の値でしょうかね。

PCI configuration

kernel[0]: [ PCI configuration begin ]
kernel[0]: console relocated to 0xfc0010000
kernel[0]: PCI configuration changed (bridge=37 device=5 cardbus=0)
kernel[0]: [ PCI configuration end, bridges 16 devices 18 ]

Mac : 「PCIを認識したで。特に認識できへんかったデバイスはあらへんで」

[PCI configuration begin] で停止する

UniBeastではpcirootuid=1がデフォルトで設定されているようですが、フリーズする場合は、"pcirootuid=0" を指定するとよいらしいです。あと、npciオプションを指定すると改善する場合もあるとか。

  • "-v"
  • "-v npci=0x3000"
  • "-v npci=0x2000"
  • "-v npci=0x1000"
  • "GraphicsEnabler=no"

参考URLs :

ブートデバイスの取得

kernel[0]: mbinit: done [96 MB total pool size, (64/32) split]
kernel[0]: Pthread support ABORTS when sync kernel primitives misused
kernel[0]: rooting via boot-uuid from /chosen: CF2E8229-8E17-3696-B80C-2F1829D5DE56
kernel[0]: Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
kernel[0]: com.apple.AppleFSCompressionTypeZlib kmod start
kernel[0]: com.apple.AppleFSCompressionTypeDataless kmod start
kernel[0]: com.apple.AppleFSCompressionTypeZlib load succeeded
kernel[0]: com.apple.AppleFSCompressionTypeDataless load succeeded
kernel[0]: AppleIntelCPUPowerManagementClient: ready
kernel[0]: Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SATA@1F,2/AppleIntelPchSeriesAHCI/PRT0@0/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/WDC WD5000AAKS-402AA0 Media/IOGUIDPartitionScheme/Machintosh HD@2
kernel[0]: BSD root: disk0s2, major 1, minor 2
kernel[0]: FireWire (OHCI) Lucent ID 5901 built-in now active, GUID c82a14fffe7ff076; max speed s800.
kernel[0]: Kernel is LP64

Mac : 「ブートデバイスを取得したで。boot-uuidが上記のデバイスやけど、違ったら言ってな。」

みー : 「そのデバイスで合ってるよ。」

USBとLANの取得

kernel[0]: USBMSC Identifier (non-unique): 000000009833 0x5ac 0x8403 0x9833
kernel[0]: ath_get_caps[4038] rx chainmask mismatch actual 7 sc_chainmak 0
kernel[0]: 1.000175: ath_get_caps[4013] tx chainmask mismatch actual 7 sc_chainmak 0
kernel[0]: 1.003969: Atheros: mac 448.3 phy 1686.2 radio 0.0
kernel[0]: 1.003980: Use hw queue 0 for WME_AC_BE traffic
kernel[0]: 1.003987: Use hw queue 1 for WME_AC_BK traffic
kernel[0]: 1.003994: Use hw queue 2 for WME_AC_VI traffic
kernel[0]: 1.004001: Use hw queue 3 for WME_AC_VO traffic
kernel[0]: 1.004007: Use hw queue 8 for CAB traffic
kernel[0]: 1.004013: Use hw queue 9 for beacons
kernel[0]: 1.004090: wlan_vap_create : enter. devhandle=0x40130658, opmode=IEEE80211_M_STA, flags=0x1
kernel[0]: 1.004132: wlan_vap_create : exit. devhandle=0x40130658, opmode=IEEE80211_M_STA, flags=0x1.
kernel[0]: 1.004245: start[1012] sc->sc_inuse_cnt is at offset: 203c, sizeof(_sc->sc_ic) is 25f0
kernel[0]: USBMSC Identifier (non-unique): 12AB000002060 0x3538 0x901 0xa00
kernel[0]: USBMSC Identifier (non-unique): 07A70A0828B183C2 0x411 0x111 0x100

Mac : 「USBを認識したわ。いろいろとパラメータも表示しておくから、暇な時チェックしたらおもろいかもしれんで」

みー : 「よし、System Information.appで見てみよう。」

USBMSC Identifier

/Applications/Utilities/System Information.appでUSBの情報を取得すると、最初のUSBMSC Identifierは、Internal Memory Card Readerを認識しているようです。

Internal Memory Card Reader:
 Product ID: 0x8403
 Vendor ID: 0x05ac (Apple Inc.)
 Version: 98.33
 Serial Number: 9833
 Speed: Up to 480 Mb/sec
 Manufacturer: Apple
 Location ID: 0xfd110000 / 3
 Current Available (mA): 500
 Current Required (mA): 500

したがって、USBMSC Identifier の2,3,4番目のパラメータはそれぞれVendor ID, Product ID, Serial Number だということが分かります。

still waiting for root device

おそらく、「ルートデバイスからの応答を待っています」という意味なのだと考えられます。このエラーが表示されると、2つ上のセクションにある、

kernel[0]: Got boot device = IOService:...

の行が表示されないので(みーのPCでは)、

kernel[0]: rooting via boot-uuid from /chosen: ...
kernel[0]: Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>

の処理の完了を待っているメッセージなのかもしれないです。ということは、boot-uuidで指定したデバイスが正しく認識されていないということなのかもしれないです。Googleで検索すると、

のように、起動デバイスの設定がまずいことが多いようです。したがって、USBMSC Identifier (non-unique)はエラーとは関係なく、単に起動デバイスが正常に読み込めないという意味のメッセージだと思われます。この考察はどうでしょうか?