麦创网

发表于 13/9/15 15:21:13 |显示全部楼层
以前在tonymacx86看到关于hd4000的hdmi audio专题说目前仅能驱动alc8XX声卡所以我也就没再折腾下去,昨天研究hd4000的vga输出时发现可以在AppleIntelFramebufferCapri里面自定义显卡的接口信息,于是经过爬文反复测试终于搞定我的alc269的hdmi音频输出了,先上效果图!
未插hdmi前:

154055sne6dzxfzjk2vqfd.png.thumb.jpg.png
153328q8cq90c69cmt6970.png.thumb.jpg.png


教程开始:

1. 首先将你的HD4000显卡用dsdt驱动,具体代码参考下面我的,需要注意ig-platform-id用你自己的!
  1.             Method (_DSM, 4, NotSerialized)
  2.             {
  3.                 Store (Package (0x06)
  4.                     {
  5.                         "device-id",
  6.                         Buffer (0x04)
  7.                         {
  8.                              0x66, 0x01, 0x00, 0x00
  9.                         },
  10.                         "AAPL,ig-platform-id",
  11.                         Buffer (0x04)
  12.                         {
  13.                              0x03, 0x00, 0x66, 0x01
  14.                         },
  15.                         "hda-gfx",
  16.                         Buffer (0x0A)
  17.                         {
  18.                             "onboard-1"
  19.                         }
  20.                     }, Local0)
  21.                 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  22.                 Return (Local0)
  23.             }
复制代码
2. 声卡用dsdt+仿冒AppleHDA驱动(VoodooHDA未测试),dsdt代码参考我的,注意layout-id用你自己的声卡驱动里面对应的id,我的是86
  1. Method (_DSM, 4, NotSerialized)
  2.             {
  3.                 Store (Package (0x06)
  4.                     {
  5.                         "hda-gfx",
  6.                         Buffer (0x0A)
  7.                         {
  8.                             "onboard-1"
  9.                         },
  10.                         "layout-id",
  11.                         Unicode ("V"),
  12.                         "PinConfigurations",
  13.                         Buffer (Zero) {}
  14.                     }, Local0)
  15.                 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  16.                 Return (Local0)
  17.             }
复制代码
3. 至此只要你的显卡id选择适当HDMI视频输出应该没什么问题,但是hdmi的音频输出估计大部分非alc8XX声卡都没有,下面此帖关键内容开始:


a. 首先核对你的AppleIntelFramebufferCapri.kext版本号,最新的10.8.2系统里面应该是8.6.22(如果不是该版本后面需要自行对比查找修改的起始地址),然后根据你的AAPL,ig-platform-id在这个http://iatkos.me/forum/viewtopic.php?f=77&t=23300页面里面找到里面给的修改起始地址(比如我的AAPL,ig-platform-id: 01660003,starts from the line 0005c090h in Hex),将里面的起始地址(我的是0005c090h)+ff0h(这个偏移量是我自己算出来了,以后的版本里面不一定使用的)即为你的修改起始位置(我的最后的修改起始位置即0005d080h)。

b. 用Ultraedit或者HexEdit打开
S/L/E/AppleIntelFramebufferCapri.kext/Contents/macOS/AppleIntelFramebufferCapri根据你的hd4000有几个Ports,然后从起始修改位置选取连续的几个12字节,比如我的是4*12=48字节正好如图3行:
191724gqqhfq8kqgqtw00f.png.thumb.jpg.png

然后每12字节一行整理后结果如下:
@0, 05 03 00 00 02 00 00 00 30 00 00 00 // LVDS
@1, 02 05 00 00 00 04 00 00 07 04 00 00 // HDMI
@2, 03 04 00 00 00 04 00 00 81 00 00 00 // DVI
@3, 04 06 00 00 00 04 00 00 81 00 00 00 // DVID
注意,最好不要直接用哪个帖子里面现成的内容,我的就和他给出的不一样,而且用他最后修改的后连笔记本内置屏幕都黑了。每行的最前面的前4个字节,如“05 03 00 00”(有的是“”01 00 00 00“)表示这是LVDS接口,第5-8四个字节代表了连接类型(即用IORegistryExplorer查看到的connector-type):
1852027w9qfxhooqqh7z4h.png.thumb.jpg.png



”02 00 00 00“一般是内置LVDS的连接类型,而我们要修改hdmi音频则需找到以"02 05 00 00"开头的行(我的是第二行),将其连接类型”00 04 00 00“改为”00 08 00 00“(这才是HDMI的连接类型),最后4个字节的内容”07 04 00 00 “(具体含义我也不太清楚)HDMI要改为”06 00 00 00 “,最后的修改效果:
@0, 05 03 00 00 02 00 00 00 30 00 00 00
@1, 02 05 00 00 00 08 00 00 06 00 00 00
@2, 03 04 00 00 00 04 00 00 81 00 00 00
@3, 04 06 00 00 00 04 00 00 81 00 00 00

191726bvwb1r9d17b6bj77.png.thumb.jpg.png

c. 保存文件,然后安装修改好的AppleIntelFramebufferCapri.kext驱动,重启用hdmi接上电视进行测试吧!(我的必须开机后接hdmi,不然变色龙不能启动图形模式,而且回车确定后会自动重启电脑)。

173716gtgycg6c66yjkkkc.png.thumb.jpg.png

15405348k67uz7qt4omoh0.png.thumb.jpg.png

153324qznkpkqeho9k1bxk.png.thumb.jpg.png
另外还可以修改最后一行”04 06 00 00 00 04 00 00 81 00 00 00“的内容使HD4000支持VGA接口的显示器或者投影仪,有兴趣的可以试试。老外帖子里面说有2种改法,改成”06 02 00 00 02 00 00 00 30 00 00 00“或者”06 02 00 00 01 00 00 00 30 00 00 00“,不过我都没成功,系统启动后开始两个都可以正常显示,但是进桌面前内置lcd白屏,外界显示器白花屏。

打赏楼主

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

 
您需要登录后才可以回帖 登录 | 注册

本版积分规则

麦创网 ( 苏ICP备13053101号-1 )

@麦创网 禁止任何未经允许的修改,传播或使用。

Powered by Discuz!

©2012 @ iMac.vip. 用户言论不代表本站立场。

返回顶部