Dell E6400 安装 MacOS 雪豹 10.6 中介绍了半年前安装黑苹果的经历,当时安装的版本其实是 10.6.3。最近由于有些软件需要较高版本的系统,不得不对系统进行升级,升级到雪豹的最后一个版本 10.6.8。升级后自然又遇到了一堆问题并逐一解决。解决得算是基本完美了,只差我那全球无解的 Intel WiFi Link 5300 AGN 无线网卡和不能休眠的问题。

还是上次那台机器,硬件配置完全没有变,就不再重复了。黑苹果之所以难装,除了核心的破解之外就全是驱动的问题了,来看看这次都遇到了哪些问题又是如何解决的。

前天(8 月 24 日)晚上,决定要升级系统(没过多久,老乔就辞职了,都怪我啊,hoho)。直接在系统里面点击 Software Update,用了两个多小时下载了升级包。昨天早晨爬起来之后点击更新,很快就装好了,重启,不出所料地白苹果了。

我们知道黑苹果常见的启动错误形式有:白苹果(灰白色背景上一个灰色的苹果图标,再无进展)、无限风火轮(在刚才那个苹果图片下面有一个风火轮在转动,但再无进展)和四国 / 五国(以四种 / 五种语言书写的当机提示)。这种情况下就只能长按电源键强制关机了。

再次开机,在 BootThink 引导的时候输入 -v 进入 verbose 模式,查看系统 hang 在什么地方。发现在显示了 [PCI configuration end] 之后就停住了,这似乎是 Snow Leopard 10.6.8 和 Lion 10.7.1 都会遇到的问题呢,原来是 IOPCIFamily.kext 和 AppleACPIPlatform.kext 被更新了,解决办法简单粗暴,直接找个老版本(10.6.7)的替换回去就好了。不过我把它们放在 BootThink 的 Darwain\System\LibrarySL\Extensions\ 里面并不能解决问题,得要放到 Mac 分区去。如果有安装盘,可以用 BootThink 引导安装盘,在 Console 里面进行复制的操作,但我上次用来安装的硬盘分区早就格式化掉了,只好用 MacDrive(v8.0.5.31) 来操作。把那两个 kext 复制到 Mac 所在分区的 /System/Library/Extensions 里。

再次启动 Mac OS,刚才的问题没有了,这次遇到的是 Can’t load kext com.apple.driver.AudioIPCDriver, link fail。要删掉 BootThink 里的 VoodooHDA.kext。不过这样不就不能驱动声卡了吗?先不管它了。

接下来遇到的是 FakeSMC: key info not found MSDS, length -6。看来我的 FakeSMC.kext 太古老了,找了个新版本的放进 BootThink 就好了。

然后又发现在显示了 NTFS Volume xxxx, version 3.1 之后,系统又 hang 住了。不知道到底为什么,但放了一个原版声卡驱动 AppleHDA.kext 进来就好了。(简直是有病乱投医啊)

再次启动,顺利进入系统,很开心。但是声卡没有驱动起来呢,是因为之前把 VoodooHDA.kext 去掉的原因吗?傻乎乎地又把它放回来,竟然没有当机,成功进入系统。这回有声卡了,但是没有声音,汗。换了个 VoodooHDA.kext,hoho,有声音了。可是音量无法改变,即使静音状态也是一样大的声音。似乎也有人遇到类似的问题呢,又更新了一下 VoodooHDA.kext,这次音量调节也正常了。

在更新我所需要的软件的时候,还有插入优盘的时候,都遇到个错误提示,说是 the system extension /System/Library/Extensions/IOPCIFamily.kext was installed improperly and cannot be used.(或者是 AppleACPIPlatform.kext)。这不是刚才替换的那两个老版本的文件么,啊,想起来了,刚才在 Win 7 里用 MacDrive 把两个文件复制过去之后,还应该要修改权限并删除缓存呢,这些都还没有做,能让我把系统启动起来就很不错了。赶紧打开 Console,依次输入下面这些命令(如果当前用户不是 root,还需要在命令前面加 sudo)(另外命令中的 Mac\ OS 需要替换成你的 Mac 系统所在分区的卷标)(忘了试一试直接用 /System/Linrary 行不行了,应该是同一个目录的):

cd /Volumes/Mac\ OS/System/Library
chmod -R 755 Extensions
chown -R root:wheel Extensions
kextcache -v 1 -l -s -n -t -arch i386 -arch x86_64 -m /Volumes/Mac\ OS/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /Volumes/Mac\ OS/System/Library/Extensions

完成之后重启系统,就不会再遇到那样的错误提示了。

好像都完成了呢,兴冲冲地准备截图纪念,但是……按了 Cmd+Shift+3 之后,听到咔嚓一声,但桌面上却什么都没出来,咋回事呢?看样子显卡驱动也有问题,虽然可以调节分辨率,但无法截屏,也无法用系统自带的 Previewer 查看图片(双击打开图片只能看到白色)。唉,继续奋斗。

我之前用的显卡驱动是 NVinject 0.2.1,改成最新的 0.2.2 也不好使,而且更差劲,连分辨率都无法改变了。找了好久,其实我以前用的是 NVEnabler64,但上次装 10.6.3 的时候就不能使用了(因为我用的是 32 位吧),这次也没有希望。最后还是投入 DSDT 的怀抱。不过我可不会写 DSDT,在网上找了一个(http://bbs.pcbeta.com/viewthread-804563-1-1.html),号称搞定了关机、重启、休眠、断电、原生电源管理、原生显卡驱动、解决 BIOS 重置、以及将 BCM 无线网卡识别为内置。把 NVinject.kext 去掉,把 dsdt.aml 放在 BootThink 的 Darwin 目录下。重启电脑,Win 7 突然蓝屏了,不知道怎么回事。不管它。

启动 Mac,又不动了,似乎是声卡出问题了,暂时把 VoodooHDA.kext 去掉吧。顺利进入系统,刚登录的时候就已经感觉到不同了,很明显地登录窗口的动态效果、系统状态栏的半透明都是以前没有的。测试一下,果然可以截图、可以双击查看图片了,分辨率调节也有,不错。而且测试了一下关机断电,也没问题呢,之前 10.6.3 的时候其实关机是不会断电的,每次我都是重启然后在按电源键关机。

刚才那个 dsdt.aml 既然能够解决那么多问题,就意味着我可以去掉好多 kext 了,总共去掉了以下这些 kext:

  • NullCPUPowerManagement.kext:禁用电源管理,解决 IntelCPUPowerManagement.kext 的 HPET 错误。
  • OpenHaltRestart.kext:解决重启或关机问题。
  • OSXRestart.kext:解决重启问题。
  • PlatformUUID.kext:解决 UUID 错误。
  • IOAHCIBlockStorageInjector.kext:解决本地硬盘图标为橙色的补丁。
  • AppleRTC.kext:装 10.6.3 的时候不知道这是干什么用的,但似乎是 Real Time Clock 的驱动,应该是修改过的,主要是解决某些主板上,睡眠唤醒后 BIOS 重置的问题。
  • LegacyAppleAirPortBrcm4311.kext:BRCM 无线网卡的驱动,对我来说根本没用,上次放着它主要是希望奇迹能够发生,然而我那个无线网卡身上似乎不会有奇迹出现。

最后还是要面对声卡的问题,我又尝试着把 AppleHDA.kext 去掉,换上 VoodooHDA.kext,嘿,还真就好了。不知道最开始的时候有 VoodooHDA.kext,为什么还必须放 AppleHDA.kext。或者因为我之前那个 VoodooHDA.kext 太老了吧。

除了 wifi 不能用之外还有个问题,就是这次没办法休眠了(10.6.3 的时候好像是可以的)。不过据说 10.6.8 和 Lion 的休眠都很难,得拼人品。我是放弃了,因为 SleepEnabler.kext 跟 10.6.8 也不兼容呢,等更新吧。现在如果休眠的话,屏幕变黑,然后就什么都没有了,睡不下去,也叫不起来,只能强制关机。还好我很少用休眠。

呼,冒险升了次级,结果还是比较满意的,截图纪念。

Mac OS 10.6.8 on Dell E6400

Mac OS 10.6.8 on Dell E6400

最后把用到的 kext 之类的都放在这里吧。

  • 放在 BootThink 的 Darwin 目录下:
    • dsdt.aml:可以搞定关机、重启、休眠、断电、原生电源管理、原生显卡驱动、解决 BIOS 重置、以及将 BCM 无线网卡识别为内置。
  • 放在 BootThink 的 Darwin\System\LibrarySL\Extensions 目录下:
    • 系统补丁
      • FakeSMC.kext:黑苹果机必须的!一方面是对 Mac OS 必须的 AppleSMC.kext(System Management Controller)的模拟;另一方面仿造苹果的 Dont Steal Mac OS X.kext(苹果系统与苹果机器 EFI 模块之间的通信加密解密)。
      • Disabler.kext:屏蔽不能正常启动的补丁。
    • Audio
    • Ethernet
      • IONetworkingFamily.kext:基本的网卡驱动,有些网卡可以直接驱动。里面包含 AppleBCM5701Ethernet.kext,AppleIntel8254XEthernet.kext,AppleRTL8139Ethernet.kext,AppleRTL8169Ethernet.kext,AppleUSBEthernet.kext,AppleUSBGigEthernet.kext,AppleYukon2.kext,Intel82574L.kext,nvenet.kext。
      • Intel82566MM.kext
    • PS/2(鼠标、键盘、触摸板)
    • 电源管理、Battery
      • AppleACPIPlatform.kext:(升级到 10.6.8 后要复制到 Mac 分区的 /System/Library/Extensions,修改权限并更新缓存)这是 Advanced Configuration and Power Interface 高级配置和电源管理接口驱动,进行电源管理,睡眠,Real-Time Clock 控制等,其下还包含 AppleACPIButtons.kext,AppleACPIEC.kext,AppleACPIPCI.kext。
      • IOACPIFamily.kext:作用于支持 ACPI 电源管理标准的驱动,例如电源按钮、电池、PS/2、USB、HPET 等。这里的这个解决了部分笔记本风扇不正常问题,只支持 32 位。
      • VoodooBattery.kext
    • Bluetooth
    • SD Reader
    • PCMCIA
      • IOPCIFamily.kext:(升级到 10.6.8 后要复制到 Mac 分区的 /System/Library/Extensions,修改权限并更新缓存)PCI 设备的基本驱动。
    • Chip set
      • AHCIPortInjector.kext:可以识别 Intel 芯片组的 AHCI(如果无法正确识别 AHCI,启动时有可能会 hang 在 Still Waiting for Root Device)。

继续啃苹果咯~

Like this post? Share on: TwitterFacebookEmail

Comments

So what do you think? Did I miss something? Is any part unclear? Leave your comments below.

comments powered by Disqus

Keep Reading


Published

Last Updated

Category

操作系统

Tags

Stay in Touch