积分 573 最后登录 2024-4-23 精华 2 阅读权限 205 主题 35 UID 38564 帖子 1153 PB币 5526 威望 17 贡献 1 技术 172 活跃 558
UID 38564 帖子 1153 PB币 5526 贡献 1 技术 172 活跃 558
楼主
发表于 2010-2-28 22:03:50
IP属地上海
本帖最后由 威廉第三 于 2010-3-11 13:57 编辑
苹果二月十日发布了一个补丁,修正了2009年3月后发布的Mac Pro中英特尔Nehalem机型的性能问题。
具体症状:
无论是使用iTunes播放音乐,还是通过QuickTime观看视频,甚至接入USB或者FireWire接口音频设备但并未使用,处理器的功耗发热、内核温度都会大幅增加。通过硬件监控发现,CPU资源占用率很低,但其他任务的性能却会降低最多20%。
补丁更新下了如下kext
What the Mac Pro Audio Update actually does is to upgrade
- the IOPlatformPluginFamily extension from version 4.0.1d0 to 4.0.2d0 and
- the AppleHDA extension from 1.7.9a4 to 1.8.3fc1.
普通的黑苹果并不会更新这个补丁,只有使用MacPro4,1标识的机型会推送这个补丁。
问题是部分机器的声卡在更新后停止了工作,因为Apple再次修改了AppleHDA驱动,
Apple把真苹果声卡的id写入AppleHDA并做强制检查,如果你的声卡不在列表中就不能被驱动了。
例如技嘉主板上的alc889(codec id:10ec 0885)依然可以使用,但是alc883,alc888就罢工了。
虽然这个问题暂时只影响安装Mac Pro 音频更新 1.0的黑苹果,但是很显然10.6.3将直接包含这个补丁,
届时很多人都会遇到这个问题。
update:最新的10.6.2 10C2234也使用了相同的措施,所以同样需要破解。
解决这个问题的方案有两个,
一是备份10.6.2的AppleHDA文件,升级完毕后恢复即可,
二是直接修改AppleHDA文件(binary patch),把支持的声卡id替换为自己的声卡id,
具体需要修改的文件是/System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA,
这个需要hexedit工具,比如0xED。
比如AppleHDA直接支持ALC885,codec id是10ec 0885,而我的声卡是ALC888, codec id是10ec 0888,
因此我只需要把AppleHDA里所有出现的10ec0885替换为10ec0888就能让新的AppleHDA驱动ALC888,
但是苹果的2进制文件里是以hex格式存放codec id的,10ec0885的hex格式是85 08 ec 10,
因此搜索所有的85 08 ec 10并把它替换为88 08 ec 10即可,
在10.5时代,只需要修改2处,而10.6里因为同时支持32/64位的关系,需要修改4处。
这样修改还有一个好处是支持光纤直接输出数字音频流(enable pass-through for hardware decoders),
例如输出未解码的AC3,DTS音轨到外置的功放去解码,
而之前只能输出模拟信号,除非是ALC889这样原生支持的声卡。
下表是Apple真苹果支持的声卡ID,大家可以自行对照修改
Name(声卡型号) decimal(十进制格式) hex(十六进制格式) HexEdit(AppleHDA里的hex格式)
AD1984 299112836 0x11D41984 8419D411
AD1988 299112843 0x11D4198B 8B19D411
STAC9220 -2088470912 0x83847680 80768483
ALC262 283902562 0x10ec0262 6202EC10
ALC885 283904133 0x10ec0885 8508EC10
下面是黑苹果常见的声卡对照修改表
ALC883 0x10EC0883 -----> ALC885 0x10EC0885
ALC888 0x10EC0888 -----> ALC885 0x10EC0885
AD1989B 0x11D4989B -----> AD1988 0x11D4198B
ps: 现在怎么才能在mac下上传附件?我试过safari,firefox都不行。。。
展开阅读全文​
2
查看全部评分