为什么80%的码农都做不了架构师?>>>
这段时间折腾黑苹果,好不容易网上爬各种帖子搞定了一切驱动,自认为完美到100%的时候,发现插上hdmi外接显示器无效,没有视频输出。在pcbeta和国内很多网站上爬了很多帖子,试了很多方法,还是无效。最好在国外一网站上看到一篇文章,才完美解决了这个问题,特摘录在此,希望能帮到需要的人。
先说下本人装黑苹果机器的配置:两年前买的一台 宏碁4750G, i5-2450m的cpu,安装的是 OS X 10.9.5
别问我为什么不直接买个mac,要折腾黑苹果?我会告诉你一个字:穷!
废话不多说。看教程。
首先这个教程是为了解决Intel HD3000 核心显卡 VGA 和 HDMI音频及视频 无输出的问题。
其次,要完成这个修复我们需要做3件事情:
1:给DSDT文件打补丁,加上platform-id的信息。
2:修改"AppleIntelSNBGraphicsFB.kext" 驱动文件,根据我们自己机器的情况,修改VGA 和HDMI接口信息。
3:你需要将你的SMBIOS 修改为"MacBookPro8,1"
1:给DSDT打补丁
在你的DSDT文件中找到 Device (IGPU) 或者叫GFXO 或者 IGD0 一般就这三个名字,反正就是描述你显卡的那一块。
在里面的Package里面加上你显卡的AAPL,snb-platform-id:
"AAPL,snb-platform-id",
Buffer (0x04)
{
0x00, 0x00, 0x01, 0x00
}
注意:
1:对于hd3000的snb-platform-id一般有这几种:0x10,0x00,0x03,0x00,根据你的显卡实际情况填写,比我的是是 0x01,那就些 0x00,0x00,0x01,0x00
2:加上这段代码后,编译DSDT文件时,有可能会报错,说 Package声明的长度小于实际长度,那么更改下 Package()括号里面的长度即可。
2:修改AppleIntelSNBGraphicsFB
从S\L\E目录下吧AppleIntelSNBGraphicsFB.kext拷贝出来,然后右键--》显示内容,找到Content\MacOS\AppleIntelSNBGraphicsFB文件,用hexedit或者其他16进制编辑器打开它。
找到 01 02 04 00 10 07 00 00 10 07 00 00 这一段。应该是下面这个样子:
0102 0400 1007 0000 1007 0000 //这句话表示你机器的接口数
0503 0000 0200 0000 3000 0000 //笔记本显示器接口
0205 0000 0004 0000 0700 0000 //
0304 0000 0004 0000 0900 0000 //下面3个都是用来显示的接口(DVI)
0406 0000 0004 0000 0900 0000 //
我们来看下这每一句的含义:
01 02 04 00 10 07 00 00 10 07 00 00
这段代码描述了你笔记本可用于显示的接口个数,这里默认是4个。我们不知道这个是不是必须要和笔记本实际接口数相等,还是修改下的好。其实一般笔记本也就3个接口,一个LVDS接口,连接笔记本内置LCD显示器的,还有一个VGA接口,一个HDMI接口,所以我把他改成了3,如下:
01 02 03 00 10 07 00 00 10 07 00 00
再来看下面这一句:
05 03 00 00 02 00 00 00 30 00 00 00
这句是描述LVDS接口的,用来接笔记本内置显示器的,没有任何问题,所以不需要修改
02 05 00 00 00 04 00 00 07 00 00 00 //
03 04 00 00 00 04 00 00 09 00 00 00 //下面3个都是用来显示的接口(DVI)
04 06 00 00 00 04 00 00 09 00 00 00 //
这3个都是描述显示接口的,能用于DVI和HDMI显示,还能用于HDMI音频。
以下是HDMI可以使用的3种接口情况:
0205/0304/0406 00 00 00 08 00 00 06 00 00 00
由于不同电脑接口位置不同,所以0205和0304和0406具体是在哪个接口上,自行实验。我的4750G是在0406上。
由于Mac电脑是没有VGA接口的,所以苹果的驱动里面理所当然就没有VGA接口的描述信息,我们从别处找来了用于Intel GPU的VGA接口的代码:
06 02 00 00 00 01 00 00 09 00 00 00 //VGA接口
好了,下面我们将原本的接口信息修改成我们自己的信息,如下,
01 02 03 00 10 07 00 00 10 07 00 00 // 3个接口
05 03 00 00 02 00 00 00 30 00 00 00 //LVDS
03 04 00 00 00 08 00 00 06 00 00 00 //HDMI
06 02 00 00 00 01 00 00 09 00 00 00 //VGA
00 00 00 00 00 00 00 00 00 00 00 00// NONE
我们现在HDMI用的是0304,如果HDMI还是无法现实的话,你可以试试 0205/0406。
如
02 05 00 00 00 08 00 00 06 00 00
或者
04 06 00 00 00 08 00 00 06 00 00
好了,改好后保存,用修改后AppleIntelSNBGraphicsFB.kext文件的替换 S\L\E下面原来的AppleIntelSNBGraphicsFB.kext文件。
然后修复权限,清理缓存。 万事俱备,只需重启。 如果没其他问题的话,你的外接显示器就亮了。
可以看出,os x已经顺利识别出了我的外接显示器。 效果刚刚的。哈哈
本文地址:http://my.oschina.net/fants/blog/327311