Snow Leopard について

「Snow Leopard について」の編集履歴(バックアップ)一覧に戻る

Snow Leopard について - (2010/04/21 (水) 13:50:32) のソース

*■ Snow Leopardを64bitカーネルで動作させる
 [[Snow Leopard>>http://www.amazon.co.jp/gp/product/B002MRTR1M?ie=UTF8&tag=macmini-22&linkCode=as2&camp=247&creative=7399&creativeASIN=B002MRTR1M]]の機能強化の目玉の一つとしてはカーネルの64bit化が挙げられる。概要は、[[「やっぱりスゴい! Snow Leopardの「64bit対応」>>http://ascii.jp/elem/000/000/455/455691/]]で纏められている。

 しかしながら売りであるカーネルの64bit化だが、下記記事の通り、従来のデバイスやアプリケーションの互換性を重視して、現状では多くの機種においてデフォルトで32bitカーネルがロードされる。

[[「64bit完全対応のSnow Leopard、実はデフォルト起動は32bitカーネル!?」>>http://journal.mycom.co.jp/articles/2009/08/21/snowleopard/index.html]]

64bitカーネルが動作する為の必要条件は、
+CPUが64bitに対応している
+EFIが64bitに対応している([[参考情報>>http://pc.watch.impress.co.jp/docs/2006/0526/winhec03.htm]])
の2点である。
・Mac mini(Early 2009)のハードウエア情報
#aa(blockquote) {
bash-3.2# system_profiler SPHardwareDataType -detailLevel mini 
Hardware: 

Hardware Overview: 

Model Name: Mac mini 
Model Identifier: Macmini3,1 
Processor Name: Intel Core 2 Duo 
Processor Speed: 2 GHz 
Number Of Processors: 1 
Total Number Of Cores: 2 
L2 Cache: 3 MB 
Memory: 4 GB 
Bus Speed: 1.07 GHz 
Boot ROM Version: MM31.0081.B06 
SMC Version (system): 1.35f0 

bash-3.2# uname -a 
Darwin mac-mini.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 

bash-3.2# ioreg -l -p IODeviceTree | grep firmware-abi 
| | "firmware-abi" = <"EFI64"> 
}

 カーネルは起動時に32bit/64bitが選択できるのだが、Mac mini, Mac Book, Mac Book Airにおいては、Appleは上位機種との差別化の為、EFIが64bitに対応していても64bitカーネルがロードできないよう意図的に制限をかけている。32bitカーネルでも32GBまでのメモリを扱える為、実用的には問題ないのだが、これはユーザをがっかりさせる結果を招いた。

 64bitカーネルのロードを制限する条件として、SMBIOSの機種情報を疑ってみたが、SMBIOSをMac miniと同等のものに書き換えても64bitカーネルがロードできることが確認でき、SMBIOSの内容は制限の条件ではなかった。

・[[ZOTAC GF9300-D-E>>http://www.amazon.co.jp/gp/product/B001TMRAPG?ie=UTF8&tag=macmini-22&linkCode=as2&camp=247&creative=7399&creativeASIN=B001TMRAPG]](CPU L3110/MEM 8GB)でSMBIOSをMac miniの情報に設定し、[[PC EFI対応のブートローダ>>http://www39.atwiki.jp/macmini/pages/27.html]]を組み込んで、Snow Leopardを64bitで起動させたが64bitカーネルが有効
#aa(blockquote) {
bash-3.2# uname -a 
Darwin Mac-Pro.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:46:25 PDT 2009; root:xnu-1456.1.25~1/RELEASE_X86_64 x86_64 

bash-3.2# system_profiler SPHardwareDataType -detailLevel mini 
Hardware: 

Hardware Overview: 

Model Name: Mac mini 
Model Identifier: Macmini3,1 
Processor Speed: 3 GHz 
Number Of Processors: 1 
Total Number Of Cores: 2 
L2 Cache: 6 MB 
Memory: 8 GB 
Bus Speed: 1.33 GHz 
Boot ROM Version: MM31.00C1.B00 
SMC Version (system): 1.30f3 
}

 ところが、海外のサイトをみていた所、Mac Bookで64bitカーネルをロードすることに成功した事例がみつかり、64bitカーネルのロードを制限している条件が判明した。

 詳細は[[こちら>>http://www.osxbook.com/blog/2009/08/31/is-your-machine-good-enough-for-snow-leopard-k64/]]に記載されているが、[[EFI boot loader(boot.efi)>>http://www39.atwiki.jp/macmini/pages/25.html]]でカーネルロード時に機種を判別して制限しており、下記の通り該当アドレスの値をバイナリエディタで書き換えれば、64bitカーネルがロードできるようになる(boot.efiは誤って削除されないようにuchgフラグが立っているのでchflagsコマンドで解除する必要あり)。
|BGCOLOR(skyblue):Model (with 64-bit EFI)|BGCOLOR(skyblue):Byte Position in boot.efi|BGCOLOR(skyblue):Old Value|BGCOLOR(skyblue):New Value| 
|Mac mini|&s(){0x266D8}&bold(){0x266DB}|0x00 |&s(){&color(red){0x04}}&color(red){&bold(){0x80}} | 
|MacBook|0x266E8|0x00|0x04| 
|MacBook Air|&s(){0x266F8}&bold(){0x266FB}|0x00 |&s(){&color(red){0x04}}&color(red){&bold(){0x80}}|  
|iMac|&s(){0x26718}&bold(){0x2671B}|0x00|&s(){&color(red){0x0c}} &color(red){&bold(){0x80}}| 
 注. &bold(){引用元の情報は誤っており動作確認できなかった。実機で確認した所、macmini3,1では0x266DBの値を0x00から0x080に修正が必要。}&italic(){2009/09/09修正}

 上記の修正は、もちろんAppleの保障外であるが、この修正により64bitEFIを搭載する全てのIntel Macで&color(red){Snow Leopardが64bitカーネルで起動}するようになる。&s(){ただし、グラフィックスアダプタとしてIntelチップセットのGMA950を採用している前モデルのMac miniなどは、GMA950用のKEXTが32bitのままの為、QE/CI/OpenGLのアクセラレーションは働かず、ソフトウエアによるエミュレーション動作になる。} 前モデルMac mini (Mid 2007)は、CPUは64bit対応しているが、EFIが32bitのままの為、グラフィックスアダプタのソフトウエアエミュレーション動作以前に、64bitカーネルはロードできない。
#aa(blockquote) {
bash-3.2# file/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 
/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950: Mach-O object i386
}

 なお、boot.efiを直接修正した場合は、OSのアップデートパッチで上書きされ、ファイルの内容が元に戻る可能性がある。その為、実際は直接boot.efiを修正するのではなく、修正したものをboot64.efiなどと別の名前で保存し、元のboot.efiの代わりにboot64.efiを使うようにblessし直すと良い。

[[Mac mini用64bit対応 boot.efi>>http://www.mediafire.com/file/oyzdznjty5f/boot64.zip]]
#aa(blockquote) {
bash-3.2# shasum boot64.efi 
0f615922c4dde555e38f203caa28ce56f76212d6  boot64.efi
bash-3.2# hexdump boot.efi > boot_efi.txt
bash-3.2# hexdump boot64.efi > boot64_efi.txt
bash-3.2# diff boot_efi.txt boot64_efi.txt 
9235c9235
< 00266d0 30 47 01 00 00 00 00 00 00 00 00 00 00 00 00 00
---
> 00266d0 30 47 01 00 00 00 00 00 00 00 00 80 00 00 00 00
}

*・boot.efiの置き換え手順
・Step 1. ダウンロードしたboot64.efiを/System/Library/CoreServicesに置く
#aa(blockquote) {
bash-3.2# cp boot64.efi /System/Library/CoreServices
}

・Step 2. boot64.efiのパーミッションを変更
#aa(blockquote) {
bash-3.2# chown 0:0 boot64.efi
bach-3.2# chflags uchg boot64.efi
}

・Step 3. boot64.efiをオリジナルのboot.efiの代わりに使うようにblessする
#aa(blockquote) {
bash-3.2# bless --info /
finderinfo[0]:    133 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 203585 => Blessed System File is /System/Library/CoreServices/boot.efi
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No OS 9 + X blessed 9 folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    133 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xA4E143A7BD6DA256
bash-3.2# bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot64.efi 
bash-3.2# bless --info /
finderinfo[0]:    133 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 218968 => Blessed System File is /System/Library/CoreServices/boot64.efi
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No OS 9 + X blessed 9 folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    133 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xA4E143A7BD6DA256
}

・Step 4. 64bitモードで起動するように変更し、再起動
#aa(blockquote) {
bash-3.2# nvram boot-args="arch=x86_64"
bash-3.2# nvram boot-args
boot-args	arch=x86_64
bash-3.2# reboot}

・Mac miniで64bitカーネルのロードに成功
#image(http://www39.atwiki.jp/macmini/pub/macmini64.jpg,width=600,height=337,title=64bitでの起動画面,http://www39.atwiki.jp/macmini/pub/macmini64.jpg,blank,left)

・64bit起動時のメッセージ(Kernel is LP64)
#aa(blockquote) {
bash-3.2# dmesg
npvhash=4095
Darwin Kernel Version 10.0.0: Fri Jul 31 22:46:25 PDT 2009; root:xnu-1456.1.25~1/RELEASE_X86_64
vm_page_bootstrap: 899025 free pages and 84015 wired pages
kext submap [0xffffff7f80600000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000600000]
standard timeslicing quantum is 10000 us
mig_table_max_displ = 73
AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled
AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled
calling mpo_policy_init for Quarantine
Security policy loaded: Quarantine policy (Quarantine)
calling mpo_policy_init for Sandbox
Security policy loaded: Seatbelt sandbox policy (Sandbox)
calling mpo_policy_init for TMSafetyNet
Security policy loaded: Safety net for Time Machine (TMSafetyNet)
Copyright (c) 1982, 1986, 1989, 1991, 1993
	The Regents of the University of California. All rights reserved.

MAC Framework successfully initialized
using 16384 buffer headers and 4096 cluster IO buffer headers
IOAPIC: Version 0x11 Vectors 64:87
ACPI: System State [S0 S3 S4 S5] (S3)
mbinit: done (64 MB memory set for mbuf pool)
rooting via boot-uuid from /chosen: BDF77677-73B7-357E-B72D-7568A902D286
Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
com.apple.AppleFSCompressionTypeZlib load succeeded
AppleIntelCPUPowerManagementClient: ready
Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SATA@B/AppleMCP79AHCI/PRT0@0/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/SAMSUNG MMDOE56G5MXP-0VB Media/IOGUIDPartitionScheme/Untitled@2
BSD root: disk0s2, major 14, minor 2
Kernel is LP64
FireWire (OHCI) Lucent ID 5901 built-in now active, GUID 002500fffed159ce; max speed s800.
systemShutdown false
BootCache: hit rate below threshold (892 hits on 1793 lookups)
AppleIntelCPUPowerManagement: initialization complete
Waiting for DSMOS...
NTFS driver 3.0 [Flags: R/W].
NTFS volume name Windows XP, version 3.1.
NVDANV50HAL loaded and registered.
Previous Shutdown Cause: 0
BTCOEXIST on
wl0: Broadcom BCM4328 802.11 Wireless Controller
5.10.91.19
DSMOS has arrived
NVEthernet: Ethernet address 00:25:00:d1:59:ce
AirPort_Brcm43xx: Ethernet address 00:24:36:f0:52:3f
IO80211Controller::dataLinkLayerAttachComplete():  adding AppleEFINVRAM notification
IO80211Interface::efiNVRAMPublished():  
NVEthernet::setLinkStatus - Valid but not Active
NVEthernet::mediaChanged - Link is down
NVEthernet::setLinkStatus - Valid but not Active
AirPort: Link Down on en1. Reason 1 (Unspecified).
Auth result for: 00:0d:02:76:2a:fe MAC AUTH succeeded
AirPort: Link Up on en1
bash-3.2# uname -a
Darwin Mac-mini.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:46:25 PDT 2009; root:xnu-1456.1.25~1/RELEASE_X86_64 x86_64
}

 万一、起動しなくなったり、不安定な状態になってしまった場合は、メディアブート後、元のboot.efiでblessし直せば環境の修復が可能である。

 最後に、Mac mini Early 2006, Late 2006は、CPUが32bitのCore Solo/Duoの為、そもそも64bitカーネル自体実行できない。

・おまけ
 1. 32bitカーネル起動に戻す場合は、起動時の引数指定を無くせばよい。
#aa(blockquote) {
bash-3.2# nvram -d boot-args
bash-3.2# reboot
}

 2. [[Mac mini/MacBook/MacBook Air/iMac対応boot.efi修正スクリプト>>http://www.mediafire.com/file/uzy0myvjwhm/efi64_patch.zip]]
 ・オリジナルのboot.efiからパッチを適用したboot64.efiを作成
 ・パッチが適用されたboot64.efiでblessし直す
 ・bless設定が初期化された場合、既存のboot64.efiを用いてblessの再設定のみを行う。 

#aa(blockquote) {
sudo perl -pi -e 's|\x30\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x30\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efi
sudo perl -pi -e 's|\x38\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x38\x47\x01\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efi
sudo perl -pi -e 's|\x40\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x40\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efi
sudo perl -pi -e 's|\x56\x47\x01\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00|\x56\x47\x01\x00\x00\x00\x00\x00\x08\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efi
}

**■追記1. (2009/09/11)
 2009/09/11に10.6.1のアップデートが配布されたが、boot.efiは更新対象とはなっていなかった。その為、バイナリエディタで直接上書更新していても問題ない。なお、boot.efiはカーネルをロードする為のブートローダという役割から、頻繁に更新される可能性は低く、アップルが64bitカーネルの使用を再度無効にする意図がない限りは、修正が入る可能性は低いと思われる。

 また、[[EFIファームウエアアップデート>>http://support.apple.com/kb/DL888?viewlocale=ja_JP&locale=ja_JP]]を実行し、ファームウエアのバージョンを1.2に上げた所、10.6においてカーネルが32bit/64bitに関わらず[[メモリを8GB(4GBx2)搭載>>http://www39.atwiki.jp/macmini/pages/16.html]]しても、安定動作するようになった。

#image(http://www39.atwiki.jp/macmini/pub/macmini_64_8gb.jpg,width=600,height=337,title=64bitカーネルで8GBメモリ動作,http://www39.atwiki.jp/macmini/pub/macmini_64_8gb.jpg,blank,left)

**■追記2. (2009/10/09)
 10.6.2のベータアップデートプログラムには、インテルチップセットの内蔵GPU(GMA950、GMAX3100)用64bitドライバが含まれており、インテルGPU搭載機でもEFIが64bitなら64bitカーネルでCI/QE/OpenGLのアクセラレーションが働くようになる。

 Mac mini(Eary 2009)での64bitカーネル解禁に繋がるとは思えないが、CPU、EFI共に64bitに対応しているが、グラフィックスアダプタのドライバが32bitしか用意されていなかったIntel GPU搭載のMac Book(Late 2007, Early 2008、Late 2008)、Mac Book Air (Early 2008)などには朗報であろう。

 ただし、前モデルのmini (Mid 2007)はEFIが32bitなので、GMA 950用の64bitドライバが提供されても残念ながら使用できない。

**■追記3. (2009/10/29)
 Late 2009 iMacのプレインストールSnow Leopardの情報を確認したが、OSは10.6.1であるものの、カーネルは10.1.2とアップデートがされていた(Late 2009 Mac miniのカーネルは10.0.0のまま)。

 更にLate 2009 iMacのkext情報を確認してみると、10.6.2のベータアップデートプログラムで確認できた内容を取り込んでおり、10.6.1.5とも呼べる内容になっていた。

#aa(blockquote) {
$ uname -a
Darwin localhost 10.1.2 Darwin Kernel Version 10.1.2: Wed Sep  9
$ file /System/Libray/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 
/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950: Mach-O universal binary with 2 architectures
/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 (for architecture x86_64):	Mach-O 64-bit kext bundle x86_64
/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 (for architecture i386):	Mach-O object i386
$ file /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 
/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100: Mach-O universal binary with 2 architectures
/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 (for architecture x86_64):	Mach-O 64-bit kext bundle x86_64
/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 (for architecture i386):	Mach-O object i386
$ ls /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/
AirPortAtheros.kext/        AppleAirPortBrcm4311.kext/  IO80211NetBooter.kext/      
AirPortAtheros21.kext/      AppleAirPortBrcm43224.kext/ 
$ file /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/MacOS/AirPortAtheros 
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/MacOS/AirPortAtheros: Mach-O object i386
$ file /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21: Mach-O universal binary with 2 architectures
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 (for architecture x86_64):	Mach-O 64-bit kext bundle x86_64
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 (for architecture i386):	Mach-O object i386
}

 最後に一点気になることだが、boot.efiのハッシュ値が従来と異なっており、10.6.2では内容が更新されることが予想される。本項で記載した64bitカーネルロード手法は、10.6.2以降では対応できない可能性が懸念され、正式リリース後に再度確認する必要がある。

**■追記4. (2009/11/10)
 2009/11/09の深夜に[[Mac OS X 10.6.2 Update>>http://support.apple.com/kb/DL958?viewlocale=ja_JP&locale=ja_JP]]がリリースされた。一般的には、不具合の修正やアプリケーション互換性の改善を確認するのが重要であるが、本wikiでは以下を確認した。
 
 なお、10.6.1までに確認されていた、ゲストアカウントでログイン後に再ログインすると該当アカウントのホームディレクトリがクリアされる深刻なバグは本アップデートで修正された為、極力アップデートすることを推奨する。
***&bold(){・確認ポイント}
 1. boot.efiの64bitカーネルロードチェック
  MacOSXUpd10.6.2.pkgの中身を覗いたが、boot.efiの更新は無く、既存のローダーには影響を与えない。また、裏を返せば、10.6.2でもアップルはMac miniにおいて64bitカーネルのサポートをしないということである。
#aa(blockquote) {
bash-3.2# shasum /System/Library/CoreServices/boot.efi 
2fb9fc10e5b4bb06f62c38b01bd9836a433897f8  /System/Library/CoreServices/boot.efi
}

  なお、アップデートデータをダウンロードし、アップデートを実行すると下記の通りbless指定がクリアされる(ソフトウエア・アップデートから実行した場合はクリアされない)。
#aa(blockquote) {
bash-3.2# bless --info /
finderinfo[0]:    133 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 203585 => Blessed System File is /System/Library/CoreServices/boot.efi
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No OS 9 + X blessed 9 folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    133 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xA4E143A7BD6DA256
}

  その為、boot64.efiを読み込むよう変更していた場合は、再指定が必要。
#aa(blockquote) {
bash-3.2# bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot64.efi
bash-3.2# bless --info /
finderinfo[0]:    133 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 218968 => Blessed System File is /System/Library/CoreServices/boot64.efi
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No OS 9 + X blessed 9 folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    133 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xA4E143A7BD6DA256
}

以降の内容はMac mini Early 2009には関係ない。

 2. Radeon HD43x0-46x0の追加サポート
  ATI4500Controller.kext、[[ATI4600Controlller.kext>>http://www39.atwiki.jp/macmini/pub/HD4670.jpg]]追加を確認。また、Radeon HD4シリーズにおいて、OpenCLの互換性及びパフォーマンスが向上している。

  GeForce 9400MではOpenCLのパフォーマンスについて違いはみられなかった。

 3. Intel Atomの非サポート
  かねてから噂があった通り、Intel Atomが動作しないように対策が取られた(症状としては何も出力されずに再起動)。Atomで動作をさせたい場合は、10.6.2のカーネルソース公開後、ブロックしている部分を修正し、ソースから自力でビルドする必要がある。

  また、10.6.2ではEISTが無い場合は、AppleIntelCPUPowerManagement.kextでKernel Panicが発生する (デスクトップ用のAtomはEIST機能が無い為、その対策も兼ねていると推測する)。エラー内容からはCore i5/i7用の実装の結果とも思われるが、Mac miniへの影響はない。

 &italic(){(追記 2009/11/11)}
 カーネル(march_kernel)バイナリを[[直接編集>>http://www39.atwiki.jp/macmini/pages/27.html#10.6.2]]すればAtom起動不可チェックを回避できる。

 4. Core i5/i7のサポート
  Late 2009 iMacでCore i5/i7(Lynfield)が採用され、10.6.2で正式にサポートされた(10.6.2以前はカーネル起動時にリブートしてしまい対応していない)。

 5. その他
  ・Atherosチッップの64bitサポート(AirPortAtheros21.kextの追加)
  ・Intel内蔵GPUの64bitサポート(AppleIntelGMA950.kext、AppleIntelGMAX3100.kextの64bitバイナリの追加)

**■追記5. (2009/11/14)
 Snow Leopard OSX Serverのカーネルローダboot.efiを確認したが、Snow Loepardと全く同一のものであることが確認できた。

#aa(blockquote) {
bash-3.2# uname -a
Darwin myserver.private 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386 i386
bash-3.2# shasum /System/Library/CoreServices/boot.efi 
2fb9fc10e5b4bb06f62c38b01bd9836a433897f8  /System/Library/CoreServices/boot.efi
}

 サーバ版は、サーバとして提供するサービスをクライアント版に追加し、各種管理コンソールの機能を追加したものなので、カーネルをはじめとした基盤システムはクライアント版と共通である。

**&aname(10.6.3,option=nolink){■追記6. (2010/03/30)}
 2010/03/29の深夜に[[Mac OS X 10.6.3 Update>>http://support.apple.com/kb/HT4014?viewlocale=ja_JP]]がリリースされた。
***&bold(){・確認ポイント}
 1. カーネルローダboot.efiでの64bit機種チェックロジックの変更有無
  boot.efiの変更は無く、従来の方法で64bitカーネルが使用できる。bless指定がクリアされた場合は、Step3を参考に指定し直す。

以降の内容はMac mini Early 2009には関係ない。

 2. Apple非対応CPU機種チェックロジックの変更有無(Atom対策)
  10.6.2同様、カーネル(march_kernel)バイナリを[[直接編集>>http://www39.atwiki.jp/macmini/pages/27.html#10.6.3]]すればAtom起動不可チェックを回避できる。

 3. カーネルのClarkdaleコア(Core i3/i5)対応有無
  10.6.3ではClarkdaleコアにはまだ対応していない為、従来通り修正カーネルを使用する必要がある。

 4. 10.6.2で対応されたIntel 内蔵GPUの64bitサポートの変更有無
  10.6.2で64bitサポートが追加されたIntel 内蔵GPUのGMA950、GMAX3100だが、ベータアップデートで確認されていた通り、64bitサポートが打ち切られた。
#aa(blockquote) {
bash-3.2# file /System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 
/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950: Mach-O object i386
bash-3.2# file /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 
/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100: Mach-O object i386
}

 5. AppleHDA.kextの変更 
  Mac Pro オーディオアップデート 1.0を適用(ModelがMacPro4,1の場合に可能)した際に見られたことだが、実機に採用されている音源チップではない派生チップではオーディオが正しく動作しない。例えば、IONプラットフォームで採用例が多いRealtek ALC662や888/888b/889などが該当する。

***■ 10.6.3(64bit kernel)でのパフォーマンス最適化
 10.6.3アップデートでは、"OpenGL ベースアプリケーションの互換性の問題”が改善され、OpenGLのパフォーマンスが向上した。

 ・XBench 1.3 64bit kernel 10.6.2 
#aa(blockquote) {
Results	149.88	
	System Info		
		Xbench Version		1.3
		System Version		10.6.2 (10C540)
		Physical RAM		8192 MB
		Model		Macmini3,1
		Drive Type		SAMSUNG MMDOE56G5MXP-0VB
	CPU Test	141.75	
		GCD Loop	234.12	12.34 Mops/sec
		Floating Point Basic	113.89	2.71 Gflop/sec
		vecLib FFT	93.43	3.08 Gflop/sec
		Floating Point Library	224.04	39.01 Mops/sec
	Thread Test	183.57	
		Computation	386.84	7.84 Mops/sec, 4 threads
		Lock Contention	120.34	5.18 Mlocks/sec, 4 threads
	Memory Test	188.32	
		System	228.60	
			Allocate	479.87	1.76 Malloc/sec
			Fill	165.23	8033.62 MB/sec
			Copy	200.51	4141.52 MB/sec
		Stream	160.12	
			Copy	153.17	3163.65 MB/sec
			Scale	153.02	3161.41 MB/sec
			Add	168.99	3599.81 MB/sec
			Triad	166.65	3565.07 MB/sec
	Quartz Graphics Test	178.26	
		Line	139.94	9.32 Klines/sec [50% alpha]
		Rectangle	174.51	52.10 Krects/sec [50% alpha]
		Circle	149.29	12.17 Kcircles/sec [50% alpha]
		Bezier	161.59	4.08 Kbeziers/sec [50% alpha]
		Text	437.39	27.36 Kchars/sec
	OpenGL Graphics Test	67.65	
		Spinning Squares	67.65	85.82 frames/sec
	User Interface Test	238.32	
		Elements	238.32	1.09 Krefresh/sec
	Disk Test	232.23	
		Sequential	197.02	
			Uncached Write	279.66	171.71 MB/sec [4K blocks]
			Uncached Write	272.28	154.06 MB/sec [256K blocks]
			Uncached Read	96.98	28.38 MB/sec [4K blocks]
			Uncached Read	364.56	183.22 MB/sec [256K blocks]
		Random	282.78	
			Uncached Write	116.98	12.38 MB/sec [4K blocks]
			Uncached Write	323.90	103.69 MB/sec [256K blocks]
			Uncached Read	1390.85	9.86 MB/sec [4K blocks]
			Uncached Read	558.70	103.67 MB/sec [256K blocks]
}

 ・XBench 1.3 64bit kernel 10.6.3 
#aa(blockquote) {
Results	178.67	
	System Info		
		Xbench Version		1.3
		System Version		10.6.3 (10D573)
		Physical RAM		8192 MB
		Model		Macmini3,1
		Drive Type		SAMSUNG MMDOE56G5MXP-0VB
	CPU Test	141.53	
		GCD Loop	234.48	12.36 Mops/sec
		Floating Point Basic	113.88	2.71 Gflop/sec
		vecLib FFT	92.96	3.07 Gflop/sec
		Floating Point Library	224.26	39.05 Mops/sec
	Thread Test	212.09	
		Computation	307.68	6.23 Mops/sec, 4 threads
		Lock Contention	161.81	6.96 Mlocks/sec, 4 threads
	Memory Test	182.89	
		System	219.15	
			Allocate	469.57	1.72 Malloc/sec
			Fill	153.52	7464.54 MB/sec
			Copy	198.17	4093.15 MB/sec
		Stream	156.93	
			Copy	150.41	3106.75 MB/sec
			Scale	148.46	3067.20 MB/sec
			Add	165.70	3529.69 MB/sec
			Triad	164.73	3523.95 MB/sec
	Quartz Graphics Test	175.69	
		Line	137.76	9.17 Klines/sec [50% alpha]
		Rectangle	168.88	50.42 Krects/sec [50% alpha]
		Circle	148.53	12.11 Kcircles/sec [50% alpha]
		Bezier	160.22	4.04 Kbeziers/sec [50% alpha]
		Text	433.79	27.14 Kchars/sec
	OpenGL Graphics Test	127.44	
		Spinning Squares	127.44	161.67 frames/sec
	User Interface Test	242.07	
		Elements	242.07	1.11 Krefresh/sec
	Disk Test	234.75	
		Sequential	195.48	
			Uncached Write	284.04	174.39 MB/sec [4K blocks]
			Uncached Write	258.15	146.06 MB/sec [256K blocks]
			Uncached Read	97.04	28.40 MB/sec [4K blocks]
			Uncached Read	361.94	181.91 MB/sec [256K blocks]
		Random	293.77	
			Uncached Write	118.60	12.55 MB/sec [4K blocks]
			Uncached Write	351.96	112.67 MB/sec [256K blocks]
			Uncached Read	1649.09	11.69 MB/sec [4K blocks]
			Uncached Read	575.80	106.84 MB/sec [256K blocks]
}
  ・OpenGLのパフォーマンスは、10.6(67.75)になり、10.5(125)の半分にまで落ち込んでいたが、10.6.3(127.44)へのアップデートで10.5と同等までにパフォーマンスが改善した。
  ・libdispatchの最適化によりマルチスレッド処理が向上している。

**&aname(10.6.3,option=nolink){■追記7. OS X 10.6.3 Supplemental Update (2010/04/13)}
 Mac miniではソフトウエアアップデートでの自動通知はないが、4/12付けで[[Mac OS X v10.6.3 v1.1 統合アップデート>>http://support.apple.com/kb/DL1017?viewlocale=ja_JP]]がリリースされた。

 中身をざっと確認してみたが下記の通りであり内容に変更は無く、アップデートプログラムの安定性を向上させるものである。

 ・カーネルローダー(boot.efi)の変更はなし
 ・カーネルの変更はなし(Clarkdale非サポート)
 ・Intel 内蔵GPUのGMA950、GMAX3100のkextは32bitのまま

 Appleの説明では下記の通りで、先にリリースされた10.6.3適用済みでソフトウエアアップデートで通知されなければ再度インストールする必要は無い。
 ・[[About the Mac OS X v10.6.3 Update>>http://support.apple.com/kb/HT4014]]
#aa(blockquote) {
Additional Information
The Mac OS X v10.6.3 combo update also includes improvements provided in the Mac OS X v10.6.1 Update and Mac OS X v10.6.2 Update.

In order to receive all the improvements listed above, some systems require the Mac OS X v10.6.3 Supplemental Update, which is available via Software Update.

Tip: If you don't see the Mac OS X v10.6.3 Supplemental Update in Software Update, you don't need to install it.

Note: The Supplemental Update is for any system that was updated from Mac OS X v10.6 using the Mac OS X Update Combined v10.6.3, build 10D573. It is not needed on systems that were updated from Mac OS X v10.6.1 or 10.6.2, and it is not needed on systems that were updated from Mac OS X v10.6 using the Mac OS X Update Combined v10.6.3, v1.1.
}

**&aname(10.3.1,option=nolink){■追記7. Darwin Kernel Version 10.3.1 (2010/04/15)}
 4/13に発表された新MacBook Proに対応したソフトウエア・アップデートが公開された。本アップデートは、MacBook Proユーザにはソフトウエア・アップデートで配布されるが、その他のユーザーも手動ダウンロードすることで入手できる。

 [[MacBook Pro (15 and 17-inch, Mid 2010) - ソフトウェア・アップデート 1.3>>http://support.apple.com/kb/DL1026?locale=ja_JP&viewlocale=ja_JP]]

 アップデートデータの中身を確認すると、GPU内蔵のIntel CPU(Clarkdale/Arrandaleコア)のグラフィックスドライバAppleIntelHDGrapchis.kextが収録されているだけでなく、Clarkdale/Arrandaleに対応したカーネル10.3.1も収録されている。また、内蔵GPUと独立GPUを自動で切り替える機能も提供されている。

#image(http://www39.atwiki.jp/macmini/pub/kernel_1031.jpg,width=600,height=337,title=kernel 10.3.1,http://www39.atwiki.jp/macmini/pub/kernel_1031.jpg,blank,left)

 該当機種以外にはインストールできないが、10.6.4に取り込まれると思われる。

**&aname(10.3.1,option=nolink){■追記8. 新MacBook Pro Early 2010のカーネルついて (2010/04/21)}
 GeForce 9400M(MCP7A)の後継のGeForce 320M(MCP89)を採用したMacBook Pro 13inchのModel IdentifierはMacBook Pro 7,1で、カーネルのバージョンも10.3.2と、Core i5/i7を搭載したMacBook Pro 17(MacBook Pro6,1)/15(MacBoo Pro6,2)よりもバージョンは新しいが、ビルド番号をみると、10.3.2の方が古い。

 未検証なので推測となるが、10.3.1ではClarkdale/ArrandaleコアのCore iシリーズに対応しているが、バージョン番号が上の(ただしビルドは古い)10.3.2では対応していない可能性がある。10.6.4がリリースされれば、この不整合は統合され問題は解消されると考えるが、それぞれのカーネルは該当機種に特化したスペシャルビルドの為、このような状況が発生していると思われる。

 CPUに統合されるGPUの性能の低さ(IntelのCPU内臓GPUはSandyBridge世代でも現行の性能とあまり変化がない)から、[[AppleはAMDを新しいパートナーに考えているという噂>>http://www.macrumors.com/2010/04/16/apple-considering-adopting-amd-processors-for-upcoming-macs/]]もあるが、10.6.4は2010年までにリリースされた全てのIntel CPU(ただし、Intel Atomは意図的に除かれる)をサポートする初めてのバージョンとなると考える。

・MacBook Pro 17inch  [Core i5/Intel HD+GeForce 330M+H55] 3chip (CPU/GPU=MCM 1chip)
#aa(blockquote) {
$ uname -a 
Darwin Kernel Version 10.3.1: Mon Mar 22 15:12:14 PDT 2010; root;xnu-1504.3.52~1/RELEASE_X86_X64 x84_64
}

#aa(blockquote) {
$system_profiler
Hardware:
    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro6,1
      Processor Name: Intel Core i5
      Processor Speed: 2.53 GHz 
      Number Of Processors: 1
     Total Number Of Cores: 2
      L2 Cache (per core): 256 KB
      L3 Cache: 3 MB 
      Memory: 4 GB
      Processor Interconnect Speed: 4.8 GT/s
      Boot ROM Version: MBP61.0057.B00 
      SMC Version (system): 1.57f16
      Serial Number (system): 
      Hardware UUID:
      Sudden Motion Sensor:
          State: Enabled
}
 *Serial Numberは削除

・MacBook Pro 13inch [Core 2 Duo 2.4GHz + GeForce 320M (MCP89)] 2chip
#aa(blockquote) {
$ uname -a
Darwin Kernel Version 10.3.2: Wed Mar 17 14:55:00 PDT 2010; root:xnu-1504.5.30~3/RELEASE_I386 i386

$ md5 /mach_kernel 
MD5 (/mach_kernel) = 8cd985c7894ce61d35f328194a562216
}

#aa(blockquote) {
$system_profiler
Hardware:
    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro7,1
      Processor Name: Intel Core 2 Duo
      Processor Speed: 2.4 GHz
      Number Of Processors: 1
      Total Number Of Cores: 2
      L2 Cache: 3 MB
      Memory: 4 GB
      Bus Speed: 1.07 GHz
      Boot ROM Version: MBP71.0039.B05
      SMC Version (system): 1.62f5
      Serial Number (system): 
      Hardware UUID: 
      Sudden Motion Sensor:
          State: Enabled

Graphics/Displays:

    NVIDIA GeForce 320M:

      Chipset Model: NVIDIA GeForce 320M
      Type: GPU
      Bus: PCI
      VRAM (Total): 256 MB
      Vendor: NVIDIA (0x10de)
      Device ID: 0x08a0
      Revision ID: 0x00a2
      ROM Revision: 3533
      Displays:
        Color LCD:
          Resolution: 1280 x 800
          Pixel Depth: 32-Bit Color (ARGB8888)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Built-In: Yes
        Display Connector:
          Status: No Display Connected

Serial-ATA:

    NVidia MCP89 AHCI:

      Vendor: NVidia
      Product: MCP89 AHCI
      Link Speed: 3 Gigabit
      Negotiated Link Speed: 1.5 Gigabit
      Description: AHCI Version 1.30 Supported

        Hitachi HTS545025B9SA02:

          Capacity: 250.06 GB (250,059,350,016 bytes)
          Model: Hitachi HTS545025B9SA02                 
          Revision: PB2AC60W
          Serial Number:
          Native Command Queuing: Yes
          Queue Depth: 32
          Removable Media: No
          Detachable Drive: No
          BSD Name: disk0
          Rotational Rate: 5400
          Medium Type: Rotational
          Partition Map Type: GPT (GUID Partition Table)
          S.M.A.R.T. status: Verified
          Volumes:
            Macintosh HD:
              Capacity: 249.72 GB (249,715,376,128 bytes)
              Available: 211.01 GB (211,014,455,296 bytes)
              Writable: Yes
              File System: Journaled HFS+
              BSD Name: disk0s2
              Mount Point: /

    NVidia MCP89 AHCI:

      Vendor: NVidia
      Product: MCP89 AHCI
      Link Speed: 3 Gigabit
      Negotiated Link Speed: 1.5 Gigabit
      Description: AHCI Version 1.30 Supported

        HL-DT-ST DVDRW  GS23N:

          Model: HL-DT-ST DVDRW  GS23N                   
          Revision: SB07    
          Serial Number: 
          Native Command Queuing: No
          Detachable Drive: No
          Power Off: Yes
          Async Notification: No
}
 *Serial Numberは削除

----

[[戻る>トップページ]]