x86 硬件上的 Mac OS X 2008–2024 技术文献库
InfiniteMac OSx86 › OSx86 10.X 核心架构与安装配置 › Mac OS X 10.5.8 正式发布及升级反馈
265,008 reads · 2009-08-05 – 2009-09-02
技术报告 10.X 核心架构

Mac OS X 10.5.8 正式发布及升级反馈

标题已经说明一切:Apple 正式发布 Mac OS X 10.5.8 更新!详情请参阅 Apple 官方支持文档 support.apple.com/kb/HT3606。

主笔作者
@tham50 发表于 2009-08-05
所属专区
OSx86 10.X 核心架构与安装配置
典藏规模与记录
265,008 次历史阅读 · 32 则精选技术笔记(萃取自 34 则原始回帖) · 2009-08-05 – 2009-09-02
参与贡献成员 (21)
@Dano77 (4)@tham50 (3)@topsykretts (3)@aschar1 (3)@Imkantus (3)@atka (2)@arterio (2)@miliuco@slic@CyCLoBoT@Aydinz@pαuℓzurrr.@Macint0shHD@nixola@intamara@Taisto+5 more
相关硬件参考
SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗ AMD Radeon GPUs (QE/CI) ↗
简体中文精译技术专卷 · 完整保留原始命令、Kext 名称、ACPI 节点与引导参数查看英文原版 (Original English) →

标题已经说明一切。

详细更新内容请见:support.apple.com/kb/HT3606

社区实测与技术补充笔记

自 34 则原始讨论回帖中萃取 32 则高价值技术回应

技术笔记 #1 @miliuco 2009-08-05

从 10.5.7 成功升级:

- AHCI 模式(已在 BIOS 中禁用 IDE)
- 使用来自 netkas.org 适用于 10.5.8 的 dsmos 与 Disabler
- 使用 Chameleon 2 RC1 引导程序,因为 RC2 无法正常加载 com.apple.Boot.plist 中的配置项(如 timeout、显卡 EFI 字符串等)
- 针对 NVIDIA 8800GT 使用显卡 EFI 字符串(由 Inside 开发的 EFI Studio 生成)
- 重新安装 ALC889a 声卡驱动(使用 Pcwiz 开发的 Gigabyte Control Center)
- Geekbench 与 Xbench 的跑分结果与 10.5.7 相同。

技术笔记 #2 @slic 2009-08-05

嗨,我已经通过系统自带的“软件更新”(Software Update)成功将 iATKOS 从 10.5.7 直接升级到 10.5.8!

Chameleon 2、
Intel C2D、
VoodooHDA、
VoodooPS2Controller、
BCM 57xx、
Intel GMA X3100、
2GB 内存
自定义 DSDT.aml
原版内核(Vanilla Kernel)

所有功能工作正常,完全没有问题!无需任何额外修改!

技术笔记 #3 @topsykretts 2009-08-06

我刚下载完更新包(目前系统是 iATKOS v7),如果一切顺利的话我会回来编辑这篇帖子。

如果我没回来更新,请为我祈祷吧。

好吧,更新包顺利下载并完成了“安装”,但到了准备重启的阶段,它只关掉了顶部菜单栏和所有窗口,然后就一直停留在蓝屏画面……完全没有重启。系统看起来并没有死机,鼠标指针还可以移动……但硬盘指示灯完全没有读写动作。有人能帮帮忙吗?

我长按电源键强制关机,然后再重新开机,结果进去检查操作系统版本,竟然还是停留在 10.5.7。

技术笔记 #4 @CyCLoBoT 2009-08-06

各位老哥,我用的是 Gigabyte EP45-DQ6 主板,升级到 10.5.8 之后声卡就彻底没声音了。我记得主板板载的是 ALC889A 声卡芯片,请问该如何修复?

技术笔记 #5 @Aydinz 2009-08-06

只要删掉 Extensions 文件夹里面的声卡内核扩展,再把你在 10.5.7 时使用的旧版声卡内核扩展放回去就行了:

rm -rf /System/Library/Extensions.mkext
kextcache -k /System/Library/Extensions/

接着执行以上命令重建内核扩展缓存(Kext Cache)并重启,希望这样就能解决问题。

技术笔记 #6 @aschar1 2009-08-06 ↳ Re: @CyCLoBoT
@CyCLoBoT各位老哥,我用的是 Gigabyte EP45-DQ6 主板,升级到 10.5.8 之后声卡就彻底没声音了。我记得主板板载的是 ALC889A 声卡芯片,请问该如何修复?

试试使用 EFI 字符串或者给你的 DSDT 打补丁。

这个方法可以直接配合原版 AppleHDA.kext 工作(记得移除 HDAEnabler 以及所有 Legacy 旧版内核扩展!)。至少在我的 Gigabyte X58-UD5(BIOS 版本 F8e)主板上完全正常,理论上在其他技嘉主板上也应该通用。

将你的 DSDT.aml 拖拽到 iASLMe(media fire.com/?jchmtymqlmd%29)的程序图标上,它会反编译出 DSDT.dsl,接着你就可以用“文本编辑”(TextEdit)打开修改。修改完 DSDT.dsl 后,再次将它拖拽到 iASLMe 图标上,就能重新编译出打好补丁的 DSDT.aml。

非常简单,
以下是具体的补丁内容:

1. 利用查找功能,将所有的 AZAL 项替换为 HDEF
(共有 2 处)

2. 将整个 Device (HDEF) 代码段替换为以下代码:

Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
},

"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},

"device-type",
Buffer (0x11)
{
"ALC889a"
},

"PinConfigurations",
Buffer (0x28)
{
/* 0000 */ 0x50, 0x70, 0x21, 0x01, 0x40, 0x01, 0x13, 0x90,
/* 0008 */ 0x20, 0x30, 0x81, 0x01, 0x41, 0x40, 0x01, 0x01,
/* 0010 */ 0x30, 0xE0, 0xC5, 0x01, 0x60, 0xE0, 0x45, 0x01,
/* 0018 */ 0x0F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x00, 0x40,
/* 0020 */ 0x10, 0x01, 0xA0, 0x90, 0x11, 0x01, 0xA0, 0x90
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
}

Name (BUFA, ResourceTemplate
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Name (BUFB, ResourceTemplate
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (BUFB, One, IRQV)
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, One)
Method (_STA, 0, NotSerialized)
{
And (PIRA, 0x80, Local0)
If (LEqual (Local0, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}

Method (_PRS, 0, NotSerialized)
{
Return (BUFA)
}

Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}

Method (_CRS, 0, NotSerialized)
{
And (PIRA, 0x0F, Local0)
ShiftLeft (One, Local0, IRQV)
Return (BUFB)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQ1)
FindSetRightBit (IRQ1, Local0)
Decrement (Local0)
Store (Local0, PIRA)
}
}

这份 DSDT 补丁要归功于 Solar。模拟立体声输出的音质相当不错,尽管开机时会出现几行 Sound Assertion 警告信息。

模拟音频输出必须插在 Line Out 插孔(黑色插孔)。

补充:这份 DSDT 补丁适用于 10.5.8 与 10.6,但在 10.5.7 下无法工作。

技术笔记 #7 @aschar1 2009-08-06

在我的 X58-UD5 主板上,10.5.8 跟 Snow Leopard 一样把睡眠(Sleep)功能搞坏了。

技术笔记 #8 @atka 2009-08-06

更新过程非常顺利,而且在我的主板上,睡眠功能终于恢复正常了!

技术笔记 #9 @aschar1 2009-08-06

atka,请问你用的是哪款主板?有用 OpenHaltRestart 吗?

技术笔记 #10 @Imkantus 2009-08-06 ↳ Re: @topsykretts
@topsykretts好吧,更新包顺利下载并完成了“安装”,但到了准备重启的阶段,它只关掉了顶部菜单栏和所有窗口,然后就一直停留在蓝屏画面……完全没有重启。系统看起来并没有死机,鼠标指针还可以移动……但硬盘指示灯完全没有读写动作。有人能帮帮忙吗?

嗨,
我之前进行早期版本更新时也遇到过一模一样的问题,当时重新打上修改版的 AppleSMBIOS.kext 就解决了。希望这对你有帮助!

技术笔记 #11 @Macint0shHD 2009-08-06

我也成功完成更新了,完全没有问题,电池续航时间还多出了 10 分钟!

技术笔记 #12 @nixola 2009-08-06

通过“软件更新”直接升级,一切顺利,除了声卡之外完全不需要打任何补丁。
多谢 Apple 带来这么棒的更新 :)

技术笔记 #13 @intamara 2009-08-06

移除 Disabler.kext(即 IntelCPUPMDisabler)之后,睡眠功能就恢复正常了。我有配合自定义的 DSDT.aml。

作者修订 #1 @tham50 2009-08-06 ↳ Re: @intamara

我这边也顺利完成更新了。
安装更新、把自定义的内核扩展(Kext)放回去、删掉 AppleIntelCPUPowerManagement……搞定。

技术笔记 #14 @atka 2009-08-06 ↳ Re: @aschar1
@aschar1atka,请问你用的是哪款主板?有用 OpenHaltRestart 吗?

我用的是跨型号刷成 P35R BIOS 的 P35C 主板。我也不确定究竟是这次系统更新还是我自己修改 DSDT 解决了睡眠问题。我终于成功让 AHCI 硬盘在不加装任何额外内核扩展的情况下识别为内置硬盘,而且声卡也无需依赖 HDAEnabler 就能正常工作了。

技术笔记 #15 @topsykretts 2009-08-07 ↳ Re: @Imkantus
@Imkantus我之前进行早期版本更新时也遇到过一模一样的问题,当时重新打上修改版的 AppleSMBIOS.kext 就解决了。希望这对你有帮助!

请问可以说得更具体一点吗?我是不是应该再跑一次更新程序,等它在重启卡住时强制断电关机,接着重新开机进入系统后把备份的 .kext 复制回去,再重启就会显示为 10.5.8 了吗?

作者修订 #2 @tham50 2009-08-07 ↳ Re: @topsykretts

以 root 权限操作:

打开 Finder 或任何你惯用的文件管理器,并保持窗口打开!
先将相关的内核扩展备份复制到其他位置。
开始执行系统更新。
切记要让 Finder/文件管理器保持打开状态!
更新完成后,先不要点“重新启动”,直接把刚才备份的内核扩展复制回去。
现在再点“重新启动”。

技术笔记 #16 @Imkantus 2009-08-07 ↳ Re: @topsykretts
@topsykretts请问可以说得更具体一点吗?我是不是应该再跑一次更新程序,等它在重启卡住时强制断电关机,接着重新开机进入系统后把备份的 .kext 复制回去,再重启就会显示为 10.5.8 了吗?

首先我不敢保证这招对你一定有效,我只是说它在之前的系统更新中帮我解决过这个问题。
你在更新前有先备份整个 Extensions 文件夹吗?如果没有的话,强烈建议你以后更新前一定要先备份。
如果你有备份,只要用任何一张 OSx86 安装光盘启动,打开终端(Terminal),将系统硬盘挂载为可读写(r/w)模式,把旧版的 AppleSMBIOS.kext 复制回去,检查文件权限,然后加上 -f 参数重启即可。
如果你没有备份,或许可以试试 netkas 发布的 v1.0.12 版本,至少它在 10.5.7 下还能正常工作,我猜在 10.5.8 下应该也行得通。不过你得先把它存进格式化为 HFS 的 U 盘之类的存储设备上,才能在安装光盘的终端窗口中读取并复制它。

(还有,我知道现在配合新版 Chameleon v2 等引导程序已经可以直接使用原版 SMBIOS,不过我认为这个方法还是值得一试。)

技术笔记 #17 @Taisto 2009-08-07

我这边更新毫无问题,10.5.8 配合 Andy 的 9.6.0 内核运行一切正常。

技术笔记 #18 @topsykretts 2009-08-07 ↳ Re: @Imkantus
@Imkantus首先我不敢保证这招对你一定有效,我只是说它在之前的系统更新中帮我解决过这个问题。你在更新前有先备份整个 Extensions 文件夹吗?如果没有的话,强烈建议你以后更新前一定要先备份。如果你有备份,只要用任何一张 OSx86 安装光盘启动,打开终端(Terminal),将系统硬盘挂载为可读写(r/w)模式,把旧版的…

我照着下面这个方法做:

@tham50以 root 权限操作:打开 Finder 或任何你惯用的文件管理器,并保持窗口打开!先将相关的内核扩展备份复制到其他位置。开始执行系统更新。切记要让 Finder/文件管理器保持打开状态!更新完成后,先不要点“重新启动”,直接把刚才备份的内核扩展复制回去。现在再点“重新启动”。

这样做确实让更新成功安装上去了,但它依然无法自动重启。画面去到带有旋转加载菊花(不是彩色转轮光标)的蓝屏阶段就停住了,硬盘完全没有读写动作,于是我等了几分钟后强制按电源键关机,再手动开机。进去后发现 10.5.8 更新确实已经安装好了!现在我正设法找出电脑无法正常关机的原因。另外,按笔记本电脑上的电源键也调不出关机菜单,而且无法进入睡眠(一按睡眠电脑就会直接关机)。我目前正在排查原因,如果大家有任何头绪,请务必告诉我。

技术笔记 #19 @SaCleoCheater 2009-08-07

已经发布了吗!?我这阵子到底去哪了……看来我真的老了。

总之,通过“软件更新”顺利升上去了,完美原版(Vanilla)状态。

技术笔记 #20 @Imkantus 2009-08-07 ↳ Re: @topsykretts
@topsykretts画面去到带有旋转加载菊花(不是彩色转轮光标)的蓝屏阶段就停住了,硬盘完全没有读写动作,于是我等了几分钟后强制按电源键关机,再手动开机。进去后发现 10.5.8 更新确实已经安装好了!现在我正设法找出电脑无法正常关机的原因。另外,按笔记本电脑上的…

如果我没理解错的话,你现在已经成功跑上 10.5.8,但在关机、重启、睡眠等功能上遇到问题?
检查一下你的系统有没有安装 OpenHaltRestart.kext。如果没有的话,可以从这里下载(media fire.com/?yznzqmhmtng)试试看。希望这能帮你解决问题。

技术笔记 #21 @Ali C. 2009-08-08

真是百试百灵——无论系统更新本身有多简单,我第一次动手总是有办法搞砸。
罪魁祸首全因为我在 Pacifist 里面手快点了“Replace”(替换)而不是“Update”(更新)。当时我赶时间,加上有阵子没用这个软件,一时忘记了正确步骤。长话短说,我最后只好手动把所有系统文件覆盖回去,然后重新执行一次更新,这次终于点对按钮了。
目前系统看起来很稳定,但我的文件权限大概再也回不去从前了。

技术笔记 #22 @joransrb 2009-08-08

我这边更新也十分顺利……完全不需要重新安装任何东西。

技术笔记 #23 @xlucian 2009-08-08

完美更新……只需要重新安装 X1600 显卡的内核扩展……现在打开“系统概述”(System Profiler)查看“硬件概览”,里面还会多出一行 Hardware UUID:后面跟着一大串数字。

技术笔记 #24 @arterio 2009-08-15

通过系统自带的“软件更新”完成升级,过程非常完美,完全不需要重新安装任何内核扩展。

技术笔记 #25 @Dano77 2009-09-01

各位兄弟祝我好运吧,我准备在 iATKOS v7 上直接通过 Mac OS 软件更新工具从 10.5.7 升级到 10.5.8(机器硬件配置请见签名档)。

且看结果如何……我记得我用的是原版 9.6 内核,最近甚至还专门去买了一套 Apple 原厂键盘和鼠标……

万一更新不如预期,我已经事先通过终端备份了所有内核扩展和内核文件,希望万一有什么差池,还原这些备份就能把系统救回来……

为了搞定系统更新,这已经是我第 5 还是第 6 次重装系统了,多到我自己都记不清了……

最搞笑的是,我在这款 Mac 上最想拥有的功能,竟然只是鼠标移过去时图标会自动放大的动态 Dock 效果……是不是很奇葩?

Dan

技术笔记 #26 @Dano77 2009-09-01

好吧,我是个傻子,我刚才已经在设置里面找到那个 Dock 放大功能了……现在纯粹是为了赌一口气才继续安装更新,其实我根本不需要升级吧!哈哈(LOL)。

技术笔记 #27 @Dano77 2009-09-01

好,报告一下(来自一个新手的反馈):在完全没有动用任何 sudo 命令或复杂脚本的情况下,从 10.5.7 更新到 10.5.8 并安全重启了……

重启时,我战战兢兢地输入了 -x -v 参数,心想应该非这样做不可。

但是……讽刺的是,输入之后机器竟然未经我同意就自己重启了。

抱着最后一搏的心态,我想:好吧……这次我要盯紧一点看清楚报错信息,然后上网 Google 查原因;最坏的情况大不了就是还原备份的内核与内核扩展,听天由命……

结果……下一次开机我只加了 -v 参数,竟然就直接顺利进入桌面了……

成功用上 10.5.8 系统啦,宝贝!

希望它能保持稳定……现在只剩最后一个问题:我的 ALC883 声卡没声音了。

“系统概述”里面有显示内置音频与所有音频端口,但无奈就是发不出声音……

看来还得再去研究一下怎么修复声卡,搞定之后就彻底完美了!

技术笔记 #28 @Dano77 2009-09-01

报告各位,我的 ALC883 声卡也彻底搞定了……

我用了这里提供的驱动程序:media fire.com/file/teqcidxznye/AppleHDA.kext.zip

这个文件足足有 3.1MB,而系统原版文件只有 1.2MB……

我是从这个链接 ↗找到相关信息的……
原帖作者讨论的是 10.5.6,但我用完全相同的驱动程序在 10.5.8 下也成功让声卡正常工作了。奇怪的是,在更新重启前的 10.5.7 系统上,原本的声音明明还是正常的……

技术笔记 #29 @xXrkidXx 2009-09-01

去他的……我字面上今天(TODAY)才刚刚把我的 Gateway 838GM 调教到完美无瑕的状态……我暂时才不需要什么 10.5.8,等以后再说吧。

技术笔记 #30 @arterio 2009-09-02

我上星期才刚装好 iATKOS v7(10.5.7)并直接升级到 10.5.8。过程无比顺畅,什么额外配置都不用做。它确实像 Dano 提到的那样自己重启了一次,但第二次重启后就直接进入桌面了,所以我猜更新流程本来就会那样重启两次。

参与实测与协作验证成员: @pαuℓzurrr.
文献来源与贡献者溯源名录(共 21 位具名成员 · 原始讨论串 #3554)
成员用户名本卷贡献角色发帖数活跃时间窗
@Dano77核心贡献者42009-09-01
@tham50主笔作者32009-08-05 → 2009-08-07
@topsykretts核心贡献者32009-08-06 → 2009-08-07
@aschar1核心贡献者32009-08-06
@Imkantus核心贡献者32009-08-06 → 2009-08-07
@atka协作成员22009-08-06
@arterio协作成员22009-08-15 → 2009-09-02
@miliuco协作成员12009-08-05
@slic协作成员12009-08-05
@CyCLoBoT协作成员12009-08-06
@Aydinz协作成员12009-08-06
@pαuℓzurrr.协作成员12009-08-06
@Macint0shHD协作成员12009-08-06
@nixola协作成员12009-08-06
@intamara协作成员12009-08-06
@Taisto协作成员12009-08-07
@SaCleoCheater协作成员12009-08-07
@Ali C.协作成员12009-08-08
@joransrb协作成员12009-08-08
@xlucian协作成员12009-08-08
@xXrkidXx协作成员12009-09-01

选择语言 · Choose your language