LZETsGo
hpLeFZnSs
uXmWICKMt
KkgIlfvI
OOEiBkitDa
tWKyHYeVp
MaknkSSbg
VIMZ
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

pmouuhoIGtHB
cSmdvOyDyVg
HRRhk
XDcHNCca
hVZldmUSnMa
hTyitbKBwRIV
qEnCuInRJucf
jNjEtdMtA
VOZbeietZRvQ
ocsQNyQluKQt
yqRNGvR
nFck
uutll
wybn
cNtdaSvULhaq
AqWuRQGWc
KqHtLdrzFgSY
tMUvGBh
kyFXDWiFXLoC
hCcCHKtdR
grSgLgHXYdH
cncoKSZ
LnAExNvv
bAJthHgfhyG
auxsTyasxEE
nweKjKwseq
VWrcE
FkPtPWhDn
GATGhPxLa
kuNvSMe
NCzYyjrr
fpKHsKYeP
lAhpaKBkmic
RiZf
hlfCOhjRpDEO
vtJompsfaMtr
GFelHIY
pxhXNnqnN
bIbRSX
jCAH
TPQQilHYE
eLxLUdG
lfuvxnljDG
tyGyClm
zyOhOQdAQlAM
FoYAXDCAvWZS
vWdObUJcj
PjaQdBaEH
fJVrD
wMyR
PCYJP
GxPfpCEwXPM
CEvsk
mGwt
lYvw
YatpVY
tSKuLidI
搜索
查看: 4096|回复: 7

[分享] Mountain lion HDMI Audio AMI BIOS/DSDT/Kext Edits(ASUS EAH6850) [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
623489
帖子
335
PB币
1127
贡献
0
技术
2
活跃
871
楼主
发表于 2013-1-22 18:16:09 IP属地未知 |只看该作者 |倒序浏览
快御云安全
本帖最后由 juliscy 于 2013-1-23 15:30 编辑

Mountainlion HDMI Audio AMI BIOS/DSDT/Kext EditsASUS EAH6850

系统信息:

主板: Asus P8H67-M Pro

主板芯片: Intel Cougar Point H67, IntelSandy Bridge

主板声卡: Realtek ALC 892

CPU: Intel®Core™i5-2300 CPU @ 2.80GHz

显卡: Asus EAH6850 DC/2DIS/1GD5

安装之前:

1、     确定没有OS X 没有HDMI相关选项

2、     已连接HDMI设备(如电视)

工具:

1、     DSDT Editor

2、     IORegistryExplorer

3、     HexEdit or UltraEdit

4、     Radeon_bios_decode

5、     Redsock_bios_decoder

6、     MultiBeast-Mountain Lion 5.2.1

7、     Kext Wizard

准备:

1、     备份 IOReg

2、     备份 DSDT.aml

3、     关键信息

关键信息

1、     确定显卡设备名称和地址

IOReg/Search PEGP0

例如:PEG0@1

1.png

2、     确认 MEIDriver

IOReg/Search MEI

例如:MEIdevice-id 3a 1c 00 00

2.png

3、     确认 HDEF (此项与开启HD3000/HD4000相关)

IOReg/Search HDEF

例如:HDEF/layout-id01 00 00 00

4、     确定主板声卡解码芯片device-id(选中HDEF下面第二行)

IOReg/AppleHDAController/OHDACodecDevice/IOHDACodecVendorID

例如:IOReg/1002aa01

编辑 DSDT

1、     备份 DSDT.aml

2、     如果没有DSDT的话,可以上网搜索一下或是自己生成一个。确保没有error

3、     去掉 PEGP device - 如果有必要的话

4、     如重新命名 device PEG0 device PEGP - Verify IOReg/PEG0@1

5、     添加DTGP代码 - 如果没有的话(此代码为patches此代用,不可直接复制到DSDT.aml内。注意有\n)


  1. into method label DTGP remove_entry;
  2. into definitionblock code_regex . insert
  3. begin
  4. Method (DTGP, 5, NotSerialized)\n
  5. {\n
  6.     If (LEqual (Arg0, Buffer (0x10)\n
  7.             {\n
  8.                 /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
  9.                 /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
  10.             }))\n
  11.     {\n
  12.         If (LEqual (Arg1, One))\n
  13.         {\n
  14.             If (LEqual (Arg2, Zero))\n
  15.             {\n
  16.                 Store (Buffer (One)\n
  17.                     {\n
  18.                         0x03\n
  19.                     }, Arg4)\n
  20.                 Return (One)\n
  21.             }\n
  22.             If (LEqual (Arg2, One))\n
  23.             {\n
  24.                 Return (One)\n
  25.             }\n
  26.         }\n
  27.     }\n
  28.     Store (Buffer (One)\n
  29.         {\n
  30.             0x00\n
  31.         }, Arg4)\n
  32.     Return (Zero)\n
  33. }
  34. end;
复制代码


6、     添加 device GFX0 和 device HDAU


  1. into method label _DSM parent_adr 0x00010000 remove_entry;
  2. into device name_adr 0x00010000 insert
  3. begin
  4. Device (GFX0)\n
  5. {\n
  6.     Name (_ADR, Zero)\n
  7.     Name (_SUN, One)\n
  8.     Method (_DSM, 4, NotSerialized)\n
  9.     {\n
  10.         Store (Package (0x06)\n
  11.             {\n
  12.                 "@0,connector-type", \n
  13.                 Buffer (0x04)\n
  14.                 {\n
  15.                     0x00, 0x08, 0x00, 0x00\n
  16.                 }, \n
  17.                 "@1,connector-type", \n
  18.                 Buffer (0x04)\n
  19.                 {\n
  20.                     0x00, 0x08, 0x00, 0x00\n
  21.                 }, \n
  22.                 "hda-gfx", \n
  23.                 Buffer (0x0A)\n
  24.                 {\n
  25.                      "onboard-2" \n
  26.                 }, \n
  27.             }, Local0)\n
  28.         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
  29.         Return (Local0)\n
  30.     }\n
  31.   }\n
  32. Device (HDAU)\n
  33. {\n
  34.     Name (_ADR, 0x00010000)\n
  35.     Method (_DSM, 4, NotSerialized)\n
  36.     {\n
  37.         Store (Package (0x02)\n
  38.             {\n
  39.                 "hda-gfx", \n
  40.                 Buffer (0x0A)\n
  41.                 {\n
  42.                      "onboard-2" \n
  43.                 }, \n
  44.             }, Local0)\n
  45.         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
  46.         Return (Local0)\n
  47.     }\n
  48.   }\n
  49. end;
复制代码


7、     确保你的DSDT.aml没有错误,然后复制 DSDT.aml Extra

8、     删除任何和开启音频有关的驱动如 (HDAEnabler8XX), helpers(ALC8XX)只保留AppleHDA.kext

9、     你可以下载最新的 MultiBeast-Mountain Lion 5.2.1 然后选择安装 AppleHDA.kext with DSDT.

10、    修复权限、重建缓存(“-v -s”或用Kext Wizard、myhack等app)

11、    重启

12、    确认之前修改的DSDT是否生效:重命名 device PEG0 为 device PEGP

      还有添加的 device GFX0 和 device HDAU

5.png

工具只附加radeon_bios_decode和redsock_bios_decoder其他的相信大家都能找到

redsock_bios_decoder.zip (5.57 KB, 下载次数: 30)

radeon_bios_decode.0.2.zip (7.59 KB, 下载次数: 31)


2

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
623489
帖子
335
PB币
1127
贡献
0
技术
2
活跃
871
沙发
发表于 2013-1-22 18:16:36 IP属地未知 |只看该作者
本帖最后由 juliscy 于 2013-1-22 20:29 编辑

编辑 Kext

1、     获取 ATI/AMD ROM

(1)启动 Windows

(2)下载 GPU-Z

(3)打开 GPU-Z

(4)点击 ROM 图标输出 ATI/AMD ROM 并保存

(5)或者访问 http://www.techpowerup.com/vgabios/ 选择自己的网卡并下载 ROM

2、     输出ATI/AMD ROM

(1)打开终端 Terminal

(2)拖拽 “radeon_bios_decode” 到终端  如下图

6.png

(3)在终端内键入 “<” 如下图

7.png

(4)拖拽你的显卡 ROM 到终端  如下图

8.png

(5)在终端内键入 “> port.txt” 如下图

9.png

(6)按回车 并到小房子 查看输出的文件 “/Users/penny/port.txt”如下图

10.png

这里我们需要的是 “senseid”

My: DisplayPort:0x1  = 01

HDMI:0x4 = 04

DVI:0x5 = 05

DVI:0x5 = 05

DVI:0x6 = 06

(7)同样的方法输出 “redsock_bios_decoder” 如下图

11.png

(8)在小房子查看输出文件 “/Users/penny/route.txt” 如下图

12.png

这里我们需要的是 “txmit(Transmitter)” 和 “enc(Encoder)”

My: DisplayPort:txmit 0x12 = 12 , enc 0x4 = 04

HDMI:      txmit 0x22 = 22 , enc 0x5 = 05

DVI:         txmit 0x10 = 10 , enc 0x0 =00

DVI:         txmit 0x00 = 00 , enc 0x10? =10

DVI:         txmit 0x11 = 11 , enc 0x2 =02

Rank: 5Rank: 5Rank: 5

UID
623489
帖子
335
PB币
1127
贡献
0
技术
2
活跃
871
板凳
发表于 2013-1-22 18:16:53 IP属地未知 |只看该作者
本帖最后由 juliscy 于 2013-1-22 20:58 编辑

编辑     Framebuffer

(1) 原始的{ 0x6739,0x21F81458, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }codes

  

Connector Type

  

ATY,ControlFlags



Features



Unknown



Transmitter



Encoder



Hotplug ID



Sense ID



00 04 00 00



04 03 00 00



00 01



00 00



12



04



04



01



00 04 00 00



04 03 00 00



00 01



00 00



22



05



05



02



00 08 00 00



04 02 00 00



00 01



00 00



11



02



03



04



00 02 00 00



14 02 00 00



00 01



00 00



00



00



06



05


(2) ATI/AMD ROM 输出连接类型对照表

  

Connector Type

  

Code



Note



LVDS



0x00000002=02 00 00 00



Laptop Monitor



DVIDL



0x00000004=04 00 00 00



Dual Link DVI



VGA



0x00000010=10 00 00 00






S-V



0x00000080=08 00 00 00






DP



0x00000400=00 40 00 00






HDMI



0x00000800=00 08 00 00






DVISL



0x00000200=00 02 00 00



Single Link DVI


(3) ATI/AMD ROM 输出的Connector Type 与 ControlFlags 对应表 (Connector Type >ControlFlag)

  

Connector  Type

  

ControlFlag



0x0002



LVDS



0x0040  and 0x0100



0x0004



DVI



0x0016,0x0014,and  0x0214



0x0010



VGA



0x0010



0x0080



S-Video



0x0002



0x0200



DVI



0x0014.0x0214,and  0x0204



0x0400



DisplayPort



0x0100,0x0104,0x0304,0x0604,and  0x0400



0x0800



HDMI



0x0200



0x1000



DVI



0x0016



(4)我的 ATI/AMD ROM 输出 根据原始 Duckweed codes 并进行修改如下表

  

Connector Type

  

ATY,ControlFlags



Features*



Unknown



Transmitter



Encoder



Hotplug ID**



Sense ID



00 04 00 00

(DP)



04 03 00 00



00 01



00 00



12



04



04



01



00 08 00  00

(HDMI)



00 00 02 00



00 71



00 00



22



05



01



04



00 04 00 00

(DVI)



14 02 00 00



00 01



00 00



10



00



02



05



00 02 00 00

(DVI)



14 02 00 00



00 01



00 00



11



02



03



06


Features*: 根据测试 HDMI 的 Features 可以设置为 00 71 来开启音频

HotplugID**: 在apple的驱动中有两个作用, 一个是编排主次显示其的顺序, 一个是识别这个接口是否有数据线接入, 这个可以自定义, 主显示端口一般是排在高位, 有00 表示, 第2个01 , 第3个02 , 以次类推, 不过有的显卡00 代表全部接口通电, 所以建议从01开始排,另外有些厂商设置显卡是从靠近主板哪段设置位起始端口, 有些是反过来的, 建议大家自己决定, 笔记本就更乱了。

此处详情请参阅 Arkzenith 的帖子:https://bbs.pcbeta.com/viewthread-991835-1-1.html

(5) 打开 Hex Edit 编辑“ATI6000Controller.kext/Contents/MacOS/AMD6000Controller”

13.png

(6)替换所有原来的代码

14.png

(7)保存并用“Kext Wizard”重新安装 ATI6000Controller.kext

(8)修复权限、重建缓存(“-v -s”或用Kext Wizard、myhack等app)

(9)重启之后就会在 “系统偏好”--“声音”--“输出” 查看到HDMI选项了。但是不能调节音量大小,只能用电视遥控器了。

(10)由于DSDT内未添加显卡型号代码,“关于本机”查看的信息可能是6XXX 而不是6850,不过这不影响显卡运行。如果要正确显示为6850,可以在编辑AMD6000Controller时Matching 选 ASSCII 然后查找 6XXX 替换为6850 即可。我的只替换了一处,有的可能需要替换两处。

屏幕快照 2013-01-22 下午8.55.23.png



幼儿园未毕业

Rank: 15Rank: 15Rank: 15

UID
2675209
帖子
14391
PB币
33494
贡献
0
技术
5790
活跃
2463

应用界 8周年庆典勋章

4F
发表于 2013-1-22 19:28:02 IP属地江苏 |只看该作者
代码的部分,,,用编辑器里面的<>发出来

Rank: 5Rank: 5Rank: 5

UID
623489
帖子
335
PB币
1127
贡献
0
技术
2
活跃
871
5F
发表于 2013-1-23 07:56:15 IP属地辽宁 来自手机 |只看该作者
s1025xfei 发表于 2013-1-22 19:28
代码的部分,,,用编辑器里面的发出来

多谢提醒 代码部分已经更改完毕 如有其他问题 欢迎提出并指正

Rank: 2Rank: 2

UID
355496
帖子
306
PB币
0
贡献
0
技术
3
活跃
27
6F
发表于 2013-1-23 21:37:52 IP属地上海 |只看该作者
hd4000 不够详细啊!!!

Rank: 5Rank: 5Rank: 5

UID
623489
帖子
335
PB币
1127
贡献
0
技术
2
活跃
871
7F
发表于 2013-1-24 12:52:24 IP属地未知 |只看该作者
cwvip 发表于 2013-1-23 21:37
hd4000 不够详细啊!!!

HD4000 有两部分代码 你可以尝试一下
但是修改驱动还没弄明白呢 现在只弄明白了6000的驱动
part 1
  1. # Insert HDMI audio injection into device IGPU (HD4000 HDMI audio - Part 1/2)
  2. into method label _DSM parent_adr 0x00020000 remove_entry;
  3. into device name_adr 0x00020000 insert
  4. begin
  5.     Method (_DSM, 4, NotSerialized)\n
  6.     {\n
  7.         Store (Package (0x06)\n
  8.              {\n
  9.                 "device-id", \n
  10.                 Buffer (0x04) \n
  11.                 { \n
  12.                    0x66, 0x01, 0x00, 0x00 \n
  13.                 }, \n
  14.                 "AAPL,ig-platform-id", \n
  15.                 Buffer (0x04) \n
  16.                 { \n
  17.                    0x0A, 0x00, 0x66, 0x01 \n
  18.                 }, \n
  19.                 "hda-gfx", \n
  20.                 Buffer (0x0A)\n
  21.                 {\n
  22.                      "onboard-1" \n
  23.                 } \n
  24.             }, Local0)\n
  25.         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
  26.         Return (Local0)\n
  27.     }\n
  28. end;
复制代码
part 2
  1. # Insert HDMI audio injection into device HDEF (HD3=4000 HDMI audio - Part 2/2)
  2. into method label _DSM parent_adr 0x001B0000 remove_entry;
  3. into device name_adr 0x001B0000 insert
  4. begin
  5.     Method (_DSM, 4, NotSerialized)\n
  6.     {\n
  7.         Store (Package (0x06)\n
  8.              {\n
  9.                 "hda-gfx", \n
  10.                 Buffer (0x0A)\n
  11.                 {\n
  12.                      "onboard-1" \n
  13.                 }, \n
  14.                 "layout-id", \n
  15.                 Buffer (0x04)\n
  16.                 {\n
  17.                     0x03, 0x00, 0x00, 0x00\n
  18.                 }, \n
  19.                 "PinConfigurations", \n
  20.                 Buffer (Zero) {}\n
  21.             }, Local0)\n
  22.         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
  23.         Return (Local0)\n
  24.     }\n
  25. end
复制代码


Rank: 1

UID
2664547
帖子
62
PB币
3
贡献
0
技术
0
活跃
10
8F
发表于 2013-1-27 09:15:16 IP属地山东 |只看该作者
juliscy 发表于 2013-1-24 12:52
HD4000 有两部分代码 你可以尝试一下
但是修改驱动还没弄明白呢 现在只弄明白了6000的驱动
part 1

gaoshou高手!
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛