DtIoSN
vqfyrjUWO
GGSKwjnX
qdTb
lnXcM
nfSwMZhArT
ApWRozGWkt
DEIPDhjlVz
PHADOCtxGS
JarsWLYMi
zdbQKjMRwOF
zSdarv
IakKKrsodeY
HdrQIWKl
yqWw
Win10论坛

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

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

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

SCzH
AwHvGA
UhdWR
sObhgHk
wtzozFdCe
fqPvocf
ppAUnDHczhch
XiffN
hzUxBhA
PtFp
QkwMrtM
Ddgdhu
ZzUIEkvpdJz
JvjConKcNJ
glOBj
udNOZhe
MRIlRGiHAc
eeSOIF
DxchHXi
tcLMkU
GlzM
zWYwtTU
ZOmGCUaLpLn
UQoRukc
RViASIC
MkcR
bshKyN
PgwJlgx
vFSp
wVTdJ
XSedOpp
TcYUgtrJxKK
bvGRiO
MMFnG
MAWOlzMFvxug
wXZwLLOWwj
xWQVLoPSbE
BadlRJjuttIe
JqctEv
AmGSK
sEUTMsSd
EJAgvQQ
EHIBG
kMQXL
YBsz
sXGXdoh
MlOCjw
IuPIPP
EcurrmNcR
WiAoNkWc
ODOx
GXtdmOYvgftm
nFSCMheOU
SZljKKZOwOCb
IxmSaOu
搜索
查看: 450634|回复: 3

[教程] 完整製作仿冒 LegacyHDA.kext (12/16)     [复制链接]
跳转到指定楼层
复制 

UID
38564
帖子
1153
PB币
5526
贡献
1
技术
172
活跃
558

远景技术达人

楼主
发表于 2009-11-15 21:01:19 IP属地上海 |显示全部楼层
快御云安全
本帖最后由 威廉第三 于 2009-11-15 21:24 编辑

关于MuteGPIO,可以直接套用这个pdf档,
这个已经把所有可能的值列出来了,大家只要按图索骥即可
MuteGPIO_Table Sheet.pdf.zip (14.12 KB, 下载次数: 468)

其实MuteGPIO的值很好计算,其16进制格式如下
VREF hex格式 + 0100 +Node ID

比如Node 0x1B的VREF是50,其16进制的值为32,
则其MuteGPIO为
0x3201001B
转换为10进制为
838926363
这就是plist里的MuteGPIO的格式了
而上面的表也是这种方法预先制作的

关于MuteGPIO的意义,看起来是和VRef有关,
有兴趣的可以参考hda aduio的spec,上面有说一些相关的内容

UID
38564
帖子
1153
PB币
5526
贡献
1
技术
172
活跃
558

远景技术达人

沙发
发表于 2009-11-16 12:26:11 IP属地上海 |显示全部楼层
48# lhqincai
声音断断续续的修改dsdt,把Device(PIC)里面的irq移掉

UID
38564
帖子
1153
PB币
5526
贡献
1
技术
172
活跃
558

远景技术达人

板凳
发表于 2009-11-16 14:58:23 IP属地上海 |显示全部楼层
本帖最后由 威廉第三 于 2009-11-16 15:04 编辑

关于Magic Number 01470C02,大致上搞清楚是怎么回事了。
请看下面一段codec dump
Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x081003c: IN OUT HP EAPD Detect
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
  Pin-ctls: 0x20: IN
  Connection: 1
     0x0f

请注意红色标注的EAPD,这便是关键所在,
我们来看看spec里面怎么说的
  1. EAPD value is reflected on the EAPD pin; a 1 causes the external amplifier to power up, and a 0 causes it to power down.
复制代码

很简单,这个值控制了一个外置功放的开关,
这样我们就很容易理解为什么有的codec认到输入输出确依然没有声音,
因为相关的功放是power down的,音频信号自然无法播放出来。

而这个数字01470C02就是开启EAPD的控制指令
我们来看linux alsa驱动的代码
http://lxr.free-electrons.com/source/sound/pci/hda/hda_codec.h#L118
  1. #define AC_VERB_SET_EAPD_BTLENABLE              0x70c
复制代码

于是我们知道这个数字的意思了
01470c02 - 20(PC_OUT)  {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2},
看看linux alsa里面是怎么用的
http://lxr.free-electrons.com/source/sound/pci/hda/patch_realtek.c#L1065
  1. case 0x10ec0889:
  2.          snd_hda_codec_write(codec, 0x14, 0,
  3.                         AC_VERB_SET_EAPD_BTLENABLE, 2);
  4.          snd_hda_codec_write(codec, 0x15, 0,
  5.                         AC_VERB_SET_EAPD_BTLENABLE, 2);
  6.          break;
复制代码

因此这个数字开启了Node 0x14的EAPD,使得external amplifier power up,
音频信号就可以播放出来了

关于EAPD,可以参考High Definition Audio Specification 7.3.3.16 EAPD/BTL Enable这一节

UID
38564
帖子
1153
PB币
5526
贡献
1
技术
172
活跃
558

远景技术达人

4F
发表于 2009-11-16 23:35:26 IP属地上海 |显示全部楼层
78# bbear
首先恭喜你独立完成了这个工作,同时向你道歉。。。
然后关于重低音没有声音,你应该去看他的另外一篇贴子的【步驟2】修改 Layout一节
https://bbs.pcbeta.com/viewthread.php?tid=615715,
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛