x86 硬件上的 Mac OS X 2008–2024 技术文献库
InfiniteMac OSx86 › OSx86 10.X 核心架构与安装配置 › Intel GMA X4500HD 集成显卡支持度讨论
266,730 reads · 2008-10-29 – 2011-03-13
技术报告 10.X 核心架构

Intel GMA X4500HD 集成显卡支持度讨论

请问大家知道 Intel GMA X4500HD 目前或未来是否会获得 OSx86 支持吗?我手头正考虑两台拥有长达 5 小时续航的 Acer TravelMate 笔记本电脑,分别搭载已受支持的 GMA X3100 与新款 GMA X4500HD。

主笔作者
@naquaada 发表于 2008-10-29
所属专区
OSx86 10.X 核心架构与安装配置
典藏规模与记录
266,730 次历史阅读 · 29 则精选技术笔记(萃取自 32 则原始回帖) · 2008-10-29 – 2011-03-13
参与贡献成员 (20)
@martin255 (4)@uman (4)@changturkey (2)@Undead Surfer (2)@asert (2)@modemthug (2)@max.1974 (2)@brizzle (2)@naquaada@scififan68@BlackCH@evb60@shanwookie@localparty@sparksthesquid@Sevan+4 more
相关硬件参考
Laptop RAM & SSD Upgrades ↗ SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗
简体中文精译技术专卷 · 完整保留原始命令、Kext 名称、ACPI 节点与引导参数查看英文原版 (Original English) →

请问各位知道 Intel GMA X4500HD 目前或未来会不会获得 OSx86 支持呢?我目前看中了以下两款笔记本电脑:
Acer TravelMate 5720-602G16_XPP(notebook sbilliger.de/product_info.php/acer_travelmate_5720602g16_xpp_3gb)以及 Acer TravelMate 5730-842G25N(notebook sbilliger.de/product_info.php/acer_travelmate_5730842g25n_3072mb)

吸引我选购这两款笔记本电脑的主要原因是它们拥有长达 5 小时的电池续航时间。但问题在于:左边那款配备的是已受支持的 GMA X3100 集显,而右边那款配备的则是 GMA X4500HD。我对显卡性能的要求其实不高,也不需要强劲的 3D 性能,平时只是用来运行日常应用程序,或者玩玩 DOS 及 Amiga 怀旧游戏。

除了显卡和更大容量的硬盘之外,两者最大的区别在于 CPU:第一款搭载 Intel Core™2 Duo T7500(2x 2.20 GHz、4 MB 二级缓存、800 MHz FSB 前端总线),第二款则搭载 Montevina 平台的 Intel Core™2 Duo P8400(2x 2.26 GHz、3 MB 二级缓存、1066 MHz FSB 前端总线)。请问这两款处理器在实际使用中的速度差异会很明显吗?

社区实测与技术补充笔记

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

技术笔记 #1 @scififan68 2008-12-08

我很怀疑 GMA X4500 究竟有没有机会在 OS X 下正常工作,因为 Apple 已经全面改用 NVIDIA 芯片组,现在看来可能性非常渺茫。

技术笔记 #2 @changturkey 2008-12-08

唉,我原本还希望有人能着手开发驱动程序,或者哪怕只是让驱动程序能够切换屏幕分辨率也好,有没有 QE/CI 硬件加速其实无所谓。

技术笔记 #3 @martin255 2009-06-18

changturkey,如果你只求能用上原生分辨率,目前有两个已知的变通解决方案。第一个方案是先安装 Linux,然后使用 GRUB 作为引导程序,并配合打过补丁的 915resolution 模块。这个做法相当繁琐,但已有多名用户反馈在不同分辨率下成功生效。
另一个更简单的方案,是使用原本为 Sony VAIO P 编译的定制 boot 引导文件。我们这个星期才刚发现这个方法,所以成功反馈的案例还不多。以我自己的情况(ThinkPad X200s)为例,我可以成功开到 1280x800,但上不了 1440x900。
这两个方案在 InsanelyMac 的这个帖子中都有详细说明(第一个方案从第 #38 楼开始,第二个方案从第 #106 楼开始):http://www.insanelymac.com/forum/index.php?showtopic=12… ↗

技术笔记 #4 @Undead Surfer 2009-06-24

如果你只是想要特定分辨率,为什么不直接用 "Graphics Mode"="yyyxyyyxyy" 启动参数呢?

技术笔记 #5 @uman 2009-06-24

我自己过阵子可能也会对这个课题感兴趣,因为我手头可能会多一台配备这款集显的笔记本电脑。我找到了以下这些技术文档:

intellinu xgraphics.org/documentation.html

但我还没有时间仔细翻阅。大家能不能集思广益一起研究一下这份文档?基本上,我们要找的是 4500 是否能进入某种与 3100 或(退一步说)950 兼容的模式。如果可以的话,也许就能通过 Natit 或 EFI 字符串(EFI Strings)将相关属性注入到 ACPI 设备树中。

技术笔记 #6 @martin255 2009-06-24

UndeadSurfer,因为那样做是没用的。显卡的 VBIOS 内置了一份支持的 VESA 模式列表,如果你想要的分辨率不在列表上面,修改 com.apple.Boot.plist 也帮不上忙。因此解决方法是在开机引导阶段临时对显卡 VBIOS 进行打补丁(Patch),这样才能获得理想的分辨率。

uman,据我所知,X4500 的架构与 X3100 差异相当大(至少根据 Intel 的官方宣传资料是这样)。它不像 X3500 只是小幅改款。不过也许你可以跟这位乐观的老兄联手研究:http://www.insanelymac.com/forum/index.php?s=&showt… ↗

技术笔记 #8 @Undead Surfer 2009-06-25 ↳ Re: @martin255
@martin255UndeadSurfer,因为那样做是没用的。显卡的 VBIOS 内置了一份支持的 VESA 模式列表,如果你想要的分辨率不在列表上面,修改 com.apple.Boot.plist 也帮不上忙。因此解决方法是在开机引导阶段临时对显卡 VBIOS 进行打补丁(Patch),这样才能获得理想的分辨率。

这就奇怪了。我单位那台电脑正是用 45 系列芯片,而我通过修改 com.apple.Boot.plist 的方法成功跑在 1280x1024 分辨率下。

搞不懂,真是玄学。

技术笔记 #9 @martin255 2009-06-25

UndeadSurfer,那是因为 1280x1024 本来就是 X4500 VBIOS 内置支持的标准 VESA 模式,但绝大多数宽屏(Widescreen)分辨率都不在支持列表内。

技术笔记 #10 @uman 2009-06-30 ↳ Re: @martin255
@martin255uman,据我所知,X4500 的架构与 X3100 差异相当大(至少根据 Intel 的官方宣传资料是这样)。它不像 X3500 只是小幅改款。不过也许你可以跟这位乐观的老兄联手研究:http://www.insanelymac.com/forum/index.php?s=&showt… ↗

致 Martin 以及“任何”手头上有 4500 的朋友

我仔细翻阅了 Intel 关于 4500 的技术文档,发现它们在底层架构上其实具有广泛的兼容性。从 GMA 900 演进到 GMA 4500 的过程中,Intel 将越来越多功能直接集成进芯片组内(而非依赖 CPU 运算),并且加入了针对 LVDS 等不同显示输出接口的支持。

我认为非常值得测试一下 Leopard 自带的 GMAX3100 内核扩展(Kext)能否驱动 4500 系列。有没有人可以帮忙做以下实验并反馈结果?

1. 确认你的 AppleIntelGMAX3100.kext/Contents/Info.plist 包含以下内容:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIMatch</key>
<string>0x00008086&0x0000ffff</string>

这段配置的意思是:只要 PCI 设备的类别代码(Class Code)为 0x03(我推断是显卡,因为 0x02 是网卡)且厂商 ID 为 8086(Intel),就会进行匹配,它不会检查设备 ID(Device ID)或子系统 ID(Subsystem ID)。

2. 确认 AppleIntelGMAX3100FB.kext/Info.plist 包含以下内容:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIPrimaryMatch</key>
<string>0x2A028086</string>

这段配置的意思是:它会匹配类别代码为 0x03、厂商为 8086(Intel),并且设备 ID 为 0x2A02 的 PCI 设备。

3. 将 AppleIntelGMAX3100FB.kext/Info.plist 修改为:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIPrimaryMatch</key>
<string>0x2A42 0x2A43 0x2E12 0x2E13 0x2E02 0x2E03 0x2E22 0x2E23 0x2E32 0x2E33</string>

以上分别是 4500MHD(2A42 2A43)、4500(2E12 2E13)、X4500 以及 X4500HD(2E02 2E03 2E22 2E23 2E32 2E33)的设备 ID。

4. 使用 -v 参数重启。打开“实用工具 / 控制台”(Utilities/Console),查看是否有任何与 GMA 内核扩展相关的日志信息。同时打开终端(Terminal)窗口并执行:

$> kextstat | grep AppleIntelGMAX3100

如果该扩展没有加载运行,就不会有任何输出结果。

这个方法很有可能完全行不通,因为内核扩展在加载时还会探测一些未暴露在 Info.plist 中的硬件属性,但无论如何值得一试。

-u

技术笔记 #11 @martin255 2009-06-30

uman,我会试试看再反馈结果。事实上我之前已经见过 X3100 的内核扩展被加载,但我猜那是因为我将机型标识符(Model Identifier)注入为 MacBookAir1,1 所致(当时连其他与我硬件不符的内核扩展也一并被加载了)。

技术笔记 #12 @BlackCH 2009-06-30

目标设备 ID 是硬编码(Hardcoded)在内核扩展的二进制可执行文件里面的;你必须用十六进制编辑器(Hex Editor)去修改它们。

技术笔记 #13 @uman 2009-07-01 ↳ Re: @BlackCH
@BlackCH目标设备 ID 是硬编码(Hardcoded)在内核扩展的二进制可执行文件里面的;你必须用十六进制编辑器(Hex Editor)去修改它们。

哎呀,多谢 BlackCH 在这里回复!我刚才也在 InsanelyMac 看到你的帖子了。我用 hexedit 检查过,确认那些 ID 确实硬编码在内核扩展的二进制文件里面。

Martin(或者任何有兴趣尝试的朋友):

1. 打开 AppleIntelGMAX3100FB.kext 的 Info.plist,将下面这段字符串中的 0x2A028086 替换掉:

<key>IOPCIPrimaryMatch</key>
<string>0x2A028086</string>

根据你手头上的 4500 型号,替换为以下其中一个值:

4500MHD:0x2A428086 或 0x2A438086
4500:0x2E128086 或 0x2E138086
X4500 及 X4500HD:0x2E028086 或 0x2E038086 或 0x2E228086 或 0x2E238086 或 0x2E328086 或 0x2E338086

2. 接着使用十六进制编辑器打开该内核扩展内的 AppleIntelGMAX3100FB 二进制文件,执行“查找与替换”:

查找:86 80 02 2A
替换:将你在 plist 中填写的数值进行字节序反转(Byte-reversed,即小端序 Little-Endian 格式)。例如 0x2A428086 会变成 86 80 42 2A(切勿包含 0x)。

对另一个内核扩展内的 AppleIntelGMAX3100 二进制文件也执行相同的操作。

测试后请上来反馈结果。因为我手头上没有 4500 机器,无法亲自测试,多谢帮忙!
对了,BlackCH 在 InsanelyMac 上的提醒非常中肯:所有相关的内核扩展版本必须一致(要么全部使用原版 Leopard 10.5.x 的文件,要么全部使用集成显卡组合更新包的版本)。

-u

技术笔记 #14 @evb60 2009-07-06 ↳ Re: @uman
@uman他们那套思路行不通的。Apple 根本没有公开显卡驱动程序的源代码。

这个嘛,我们虽然没有从头编写驱动程序,但我们已经让 Framebuffer 帧缓冲区成功工作了,而且我们相信距离开启 QE/CI 已经很接近,目前只差其他高人推一把,最好是对设备注入字符串(Injection Strings)有深入研究的大神……

技术笔记 #15 @shanwookie 2009-07-14 ↳ Re: @Undead Surfer
@Undead Surfer这就奇怪了。我单位那台电脑正是用 45 系列芯片,而我通过修改 com.apple.Boot.plist 的方法成功跑在 1280x1024 分辨率下。搞不懂,真是玄学。

证实可行。我用的是 Intel DG45ID 主板,在 10.5.7 下通过 OSXTools > Add EFI Strings/Boot Flag 修改了分辨率设置。

我现在成功运行于 1280x1024x32@60Hz。

技术笔记 #16 @localparty 2010-01-23 ↳ Re: @uman

修改过 plist 与二进制文件的内核扩展无法正常加载显示

@uman哎呀,多谢 BlackCH 在这里回复!我刚才也在 InsanelyMac 看到你的帖子了。我用 hexedit 检查过,确认那些 ID 确实硬编码在内核扩展的二进制文件里面。Martin(或者任何有兴趣尝试的朋友):1. 打开 AppleIntelGMAX3100FB.kext 的 Info.plist,将下面这段字符串中的 0x2A028086 替换掉:IOPCIPrimaryMatch 0x2A028086 根据你手头上的…

uman:

很遗憾,你的方案在我的 Snow Leopard 10.6.2 / Dell Latitude E6500 上行不通。
我的 Latitude 配备的是 Intel GMA X4500MHD,“系统概述”(System Profiler)也确认了厂商为“Intel 0x8086”、设备 ID 为“0x2a42”。我已经修改了 AppleIntelGMAX3100.kext 与 AppleIntelGMAX3100FB.kext 两者的 Info.plist,加入:

<key>IOPCIPrimaryMatch</key>
<string>0x2A428086</string>

同时,我也用 Hex Fiend 将 AppleIntelGMAX3100 与 AppleIntelGMAX3100FB 两个二进制可执行文件中所有出现的十六进制数值 86 80 02 2A 全部替换为:

86 80 42 2A

我可以确定系统有尝试加载修改后的内核扩展,因为在开机过程中,灰色苹果标志会短暂出现,接着整个屏幕就完全黑屏。看起来 OS X 系统本身有继续加载,但显卡驱动程序无法在屏幕上输出任何画面。当我换回未修改的原版内核扩展时,就能顺利开机进入系统,只是分辨率停留在惨不忍睹的 1024x768。

我安装的版本是由 SnowOSX3.6-A.iso 安装的“SnowOSX Universal v3.6 (10.6.2) | 3.6 GB”。

顺带一提,我已经成功搞定了声卡,并在开机时通过输入 "Graphics Mode"="1920x1200x32" 获得了差强人意的 1600x1200 分辨率;不过我的显示器并非 1600x1200,我真正需要的是完整的 1920x1200x32 =(

另外补充一点,由于你在说明中只提到“替换”,没有明确指出是否要替换“所有出现的位置”,所以我也试过只替换第一个出现的十六进制数值。虽然结果显而易见,但我还是想让大家知道我也做过这个尝试,结果同样是负面的:依然是黑屏。

希望你还有其他点子可以让我们继续尝试 =) 恳请指教 =)

技术笔记 #17 @asert 2010-02-04

我愿意出价 $200.00 美元悬赏开发者,为 Snow Leopard 10.6.2 下的 Intel 4500MHD 开发支持 QE/CI 的修复方案。该方案必须兼容未来的系统更新。只要我确认补丁能够正常工作,就会立即通过 PayPal 或汇票支付现金。请通过本帖与我联系,如果你提出的方案有说服力,我会提供详细联系方式。这个内核扩展将会用在配备 4500MHD 的 Dell Inspiron 1545 上。

只接受认真的提案,非诚勿扰。

技术笔记 #18 @sparksthesquid 2010-02-08

这里提供一个至少能解决原生分辨率问题的方案:这是一个修改版的 Chameleon RC4 引导程序。请先移除任何 X3100 的内核扩展并按照 README 说明操作。这个 boot 文件是我在 InsanelyMac 上找到并整合进 Chameleon 的,所以我不敢居功;但它确实非常好用,能让开机画面与菜单呈现出更接近“真正 Mac”的视觉效果与正确分辨率,而且同时支持 10.5.x 与 10.6.x。

技术笔记 #19 @Sevan 2010-02-14

我已经试遍了这个内核扩展的所有可能改法,InsanelyMac 上也有人发布过好几个同类内核扩展的修改版,但对我来说全都没有用。如果有人能为我指点迷津就太好了。

分辨率虽然上去了,但画面渲染出来的效果非常恐怖,满屏幕都是上下跳动的线条,而且整个画面还笼罩着一层紫色偏色,很难用语言形容。

我也试过 Chameleon 的 915resolution 补丁,老实说对我的情况完全没有区别。

硬件配置:
处理器:Intel Core 2 Duo T6400 @ 2.00GHz
内存:4GB DDR2 RAM
显示器:17 英寸 LED 宽屏显示器
显卡:Intel Graphics 4500MHD 1.7GB 动态显存,具备 VGA 及 HDMI 输出(DevID:0x2a42)
硬盘:Western Digital WD3200BEVT-75ZCT2 320GB
有线网卡:Broadcom NetLink Gigabit Ethernet 10/100/1000Mbps
无线网卡:Dell 1510 Wireless-N Draft 2
声卡:IDT HD-Audio 及 Intel HDMI Audio
光驱:TSSTcorp DVD+-RW TS-T633A
操作系统:Windows 7 Ultimate x64 及 Mac OS X Snow Leopard 10.6.2(零售原版)

技术笔记 #20 @modemthug 2010-04-20

我想我拿到相关的内核扩展了

我自己没有装黑苹果(Hackintosh),我家里用的是 iMac 和一台老款铝合金(非 Unibody 一体成型机身)MacBook Pro。我最近看到关于新款 MacBook Pro 的介绍,发现它们的混合双显卡系统中包含了 Intel HD Graphics 集成显卡。因为我没有 Hackintosh,无法亲自测试。不过,我从 Apple 官方网站下载了最新的 MacBook Pro 软件更新包,花了大约 30 分钟研究 XAR 解压工具,终于成功从安装包中提取出这些内核扩展(现在 OS X 已经不允许直接对 .pkg 文件右键选择“显示包内容”了)。如果这招管用的话请告诉我,我猜应该有机会行得通。

rapid share.com/files/377968637/Intel_HD_kexts.zip.html

我没有付费高级账号,所以这个链接最多只能让 10 个人下载,而且我也没有其他网盘空间可以托管文件……如果测试有效的话,有没有人可以帮忙分流?

技术笔记 #21 @modemthug 2010-04-20

这里提供一个更好的内核扩展下载链接:

media fire.com/?jjmtwijjo5i

技术笔记 #22 @JaS 2010-04-20

各位试过新款 MacBook Pro 的系统更新包了吗?里面包含了 Intel HD 显卡的驱动程序,而且新版内核(Kernel)也加入了对 Core i5M 与 i7M 处理器的支持,大家不妨试试看。不过我认为单靠内核扩展本身是无法工作的,因为你还需要一并换上更新版的 OpenGL 框架(Frameworks)等相关组件。

技术笔记 #23 @pflaume 2010-05-13

我正准备再次在我的 Lenovo IdeaPad U350 上安装 Mac 系统,上次尝试时我没能让它以 1366x768 分辨率正常显示。

技术笔记 #24 @danhtho 2010-06-15

我安装了 Kalyway 10.5.2,但屏幕分辨率只有 1024x768,画面看起来很差。

这是我的笔记本电脑配置。

请问我该如何将分辨率改为 1366x768?请告诉我最简单的修改方法。

不好意思,因为我是 Mac OS X 的新手。

技术笔记 #25 @mesco64 2010-11-09

众筹悬赏开发内核扩展

正如 Asert 所说,我们已经厌倦了漫无目的地等待遥遥无期的补丁,我们愿意付费请人开发这个驱动程序。我想在世界各地召集 50 个真正有意愿赞助开发 Intel GMA 4500 HD 硬件加速内核扩展的用户,应该不会太难。我非常乐意(用真金白银的美金)支持这样的项目。如果我有时间的话一定会自己动手试,但目前实在分身乏术……

有没有技术高超的开发者愿意毛遂自荐接下这个任务?

技术笔记 #26 @max.1974 2011-01-09

Intel GMA 4500 内核扩展依然无法工作

在我的机器上还是没用……我原本抱着极大期望的!这是我唯一欠缺的驱动了……我早就对那个该死的 Camphor 无线网卡项目死心了,那家伙根本不会兑现承诺……但 Intel GMA 4500 的驱动简直是世纪难题!:'(

只要有开发者能搞定,等我实测确认这张该死的显卡能正常工作后,我保证立即通过 PayPal 奉上 100 美金!我说到做到!

喂 Steve(Jobs)!我也有在 App Store 买软件的好吗?行行好搞定它吧!

技术笔记 #27 @brizzle 2011-03-13

GMA 4500 替代驱动程序

我为 GMA 4500 找到了一个替代方案:去 kexts.com 的 Intel 显卡下载区搜索,它叫做“apple 3100 fb kexts”。里面有两个驱动程序可供下载,千万不要下载标着 4500 的那一个;用这个替代驱动可以帮你开到 720p 分辨率并识别出 512MB 显存。虽然未能发挥显卡的全部性能,但总比困在 800x600 分辨率好得多。

技术笔记 #28 @brizzle 2011-03-13

GMA 4500 替代驱动程序

我为 GMA 4500 找到了一个替代方案:去 kexts.com 的 Intel 显卡下载区搜索“4500mhd kexts __ apple 3100 fb”。里面有两个驱动程序可供下载,千万不要下载标着 4500 的那一个;用这个替代驱动可以帮你开到 720p 分辨率并识别出 512MB 显存。虽然未能发挥显卡的全部性能,但总比困在 800x600 分辨率好得多。

技术笔记 #29 @max.1974 2011-03-13

请问……你可以把下载链接发出来分享给我们(以及其他用户)吗?不过如果这个内核扩展只能提供原生分辨率的话,那我老早就已经搞定了……无论如何先多谢你提供信息……

参与实测与协作验证成员: @changturkey @asert
文献来源与贡献者溯源名录(共 20 位具名成员 · 原始讨论串 #1521)
成员用户名本卷贡献角色发帖数活跃时间窗
@martin255核心贡献者42009-06-18 → 2009-06-30
@uman核心贡献者42009-06-24 → 2009-07-01
@changturkey协作成员22008-12-08
@Undead Surfer协作成员22009-06-24 → 2009-06-25
@asert协作成员22010-02-04 → 2010-02-09
@modemthug协作成员22010-04-20
@max.1974协作成员22011-01-09 → 2011-03-13
@brizzle协作成员22011-03-13
@naquaada主笔作者12008-10-29
@scififan68协作成员12008-12-08
@BlackCH协作成员12009-06-30
@evb60协作成员12009-07-06
@shanwookie协作成员12009-07-14
@localparty协作成员12010-01-23
@sparksthesquid协作成员12010-02-08
@Sevan协作成员12010-02-14
@JaS协作成员12010-04-20
@pflaume协作成员12010-05-13
@danhtho协作成员12010-06-15
@mesco64协作成员12010-11-09

选择语言 · Choose your language