积分 1328 最后登录 2024-5-7 精华 0 阅读权限 40 主题 72 UID 1396808 帖子 1821 PB币 595 威望 100 贡献 0 技术 69 活跃 320
UID 1396808 帖子 1821 PB币 595 贡献 0 技术 69 活跃 320
楼主
发表于 2010-9-10 00:36:27
IP属地江苏
本帖最后由 ll23416583 于 2010-10-15 15:31 编辑
直入正题!
前提条件:你是alc662声卡 可用万能声卡驱动 你有可用的dsdt
在万能驱动的系统下!用 IORegistryExplorer.app
IORegistryExplorer.zip
(224.87 KB, 下载次数: 353)
工具查看你的声卡位置! 我的是在 hdac@ 下
找到位置后,在dsdt下搜索hdac 位置! 我的如下:
D evice (HDAC)
{
Name (_ADR, 0x00070000)
Name (SCID, Zero)
Name (SACW, Zero)
Method (_PS0, 0, NotSerialized)
{
If (SCID)
{
Store (Zero, PMDS)
Store (Zero, PMEN)
Store (SCID, CDID)
Store (SACW, AOCW)
}
}
在此处Device (HDAC)
{
Name (_ADR, 0x00070000)
下面加入以下代码:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x62, 0x06, 0xEC, 0x10
},
"layout-id",
Buffer (0x04)
{
0x96, 0x02, 0x00, 0x00
},
"device-type",
Buffer (0x0F)
{
"Realtek ALC662"
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
加入以上代码后将 开头 hdac 字段 改为hdef 是为了让原版驱动识别声卡位置从而用上原版仿冒声卡!
修改完如下:
Device (HDEF)
{
Name (_ADR, 0x00070000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x62, 0x06, 0xEC, 0x10
},
"layout-id",
Buffer (0x04)
{
0x96, 0x02, 0x00, 0x00
},
"device-type",
Buffer (0x0F)
{
"Realtek ALC662"
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Name (SCID, Zero)
Name (SACW, Zero)
Method (_PS0, 0, NotSerialized)
{
If (SCID)
{
Store (Zero, PMDS)
Store (Zero, PMEN)
Store (SCID, CDID)
Store (SACW, AOCW)
}
}
我直接复制代码上来的,看着有点乱!我将加入的代码发上来:
dsdt声卡代码.zip
(991 Bytes, 下载次数: 113)
完成后 ,再搜索一次hdac 会有另外一处出现 hdac 字样,同样将此改为hdef
Method (_L15, 0, NotSerialized)
{
Notify (\_SB.PCI0.HDAC , 0x02)
Notify (\_SB.PWRB, 0x02)
}
改成:
Method (_L15, 0, NotSerialized)
{
Notify (\_SB.PCI0.HDEF ,0x02)
Notify (\_SB.PWRB, 0x02)
}
加入以上代码后!再来到dsdt开头部分!
DefinitionBlock ("DSDT.aml", "DSDT", 1, "1AAAA", "1AAAA000", 0x00000000)
{
Method (NPTS, 1, NotSerialized)
{
}
Method (NWAK, 1, NotSerialized)
{
}
Name (FZTF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
})
在开头:DefinitionBlock ("DSDT.aml", "DSDT", 1, "1AAAA", "1AAAA000", 0x00000000)
{
下面加入下段代码:
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
修改完成如下:
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "1AAAA", "1AAAA000", 0x00000000)
{
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Method (NPTS, 1, NotSerialized)
{
}
Method (NWAK, 1, NotSerialized)
{
}
Name (FZTF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
})
这段代码打包:
代码.zip
(957 Bytes, 下载次数: 63)
dsdt修改完成!
在mac下将系统 将原版声卡 applehda.kext 备份删除!
安装 附件 applehda1062.pkg
AppleHDA1062.zip.001.zip
(450.3 KB, 下载次数: 360)
AppleHDA1062.zip.002.zip
(450.32 KB, 下载次数: 322)
AppleHDA1062.zip.003.zip
(375.5 KB, 下载次数: 324)
因很多朋友说解压不了! 特来 做如下 解压操作说明!
我的压缩包是在mac下压缩 请务必在mac下解压 因我传附件大小有限 只能分解了!
解压说明: 三个全下来后 先分别解压 001解压会出现错误 没有关系 其实已经解压出来了一个文件 然后解压 002 003 解压出来三个文件后 如果你安装过betterzip 全选右键打开 会在betterzip窗口出现我们需要的完整 pkg文件! 解压出来 就可以用了!
然后将你的万能驱动删除,换上附件中 alc662.kext
ALC662.kext.zip
(8.37 KB, 下载次数: 394)
修复权限后,即可重启验证!
alc662 仿冒驱动就此完成! 音频内建显示完美! 前面板输出ok!后面板输入.输出ok! 音质比万能驱动的音质好太多! 完美使用中!
在这里非常感谢风眼兄弟 的帮助!刚刚向他学习,自己制作成功后!不敢独享!特趁热赶紧为alc662的朋友送上!希望能够帮上alc662的朋友!
希望alc662用户照此制作后,上报分享试验结果!
展开阅读全文​