LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1628|回复: 2

Analog DevicesSoundMax AD1986A 无声

[复制链接]
发表于 2006-12-4 09:04:26 | 显示全部楼层 |阅读模式
系统是FC6,能识别到声卡是Analog DevicesSoundMax AD1986A,可怎么弄就是没有声音,不调整音量的情况下只有耳机的一个声道有声,扬声器无声。一旦调整一下音量,彻底无声,望高手解决。
发表于 2006-12-7 01:04:16 | 显示全部楼层
同问。

系统是FC6, uname -a的结果是(P4 820)
Linux localhost.localdomain 2.6.18-1.2849.fc6 #1 SMP Fri Nov 10 12:34:46 EST 2006 x86_64 x86_64 x86_64 GNU/Linux

声卡检测程序显示为
厂商:VIA Technologies. Inc.
型号:VIA High Definition Audio Controller
模块:snd-hda-intel
PCM设备:AD198x Analog
主板说明书上,声卡为AD1986A。

因此,下载了2.6.19的内核,编译后声卡不驱动。再编译alsa-driver失败(jitties.h??)。然后编译nvidia 8776驱动还是失败(改autoconf.h也不行)。

在sound/pci/ac97/ac97_codec.c(111-119行)中,发现已经patch了AD1986,但没有AD1986A
{ 0x41445372, 0xffffffff, "AD1981A",                patch_ad1981a,        NULL },
{ 0x41445374, 0xffffffff, "AD1981B",                patch_ad1981b,        NULL },
{ 0x41445375, 0xffffffff, "AD1985",                patch_ad1985,        NULL },
{ 0x41445378, 0xffffffff, "AD1986",                patch_ad1985,        NULL },
{ 0x414c4300, 0xffffff00, "ALC100,100P",         NULL,                NULL },
{ 0x414c4710, 0xfffffff0, "ALC200,200P",        NULL,                NULL },
{ 0x414c4721, 0xffffffff, "ALC650D",                NULL,        NULL }, /* already patched */
{ 0x414c4722, 0xffffffff, "ALC650E",                NULL,        NULL }, /* already patched */
{ 0x414c4723, 0xffffffff, "ALC650F",                NULL,        NULL }, /* already patched */

另外还看到一个workaround,要改sound/pci/hda/hda_codec.c,不知如何下手。
回复 支持 反对

使用道具 举报

发表于 2007-4-17 00:32:04 | 显示全部楼层
总算搞定了AD1986A
在google闲逛时发现了一个帖子,说是可以解决这个问题。现在问题大致解决了,只是开机的时候有很长的出错信息。
详见:http://forums.suselinuxsupport.d ... dex.php/t50985.html
本人的内核:2.6.20-1.2944.fc6_x86_64
1. 为了安装文中的alsa-dirver,需要先下载内核源码kernel-2.6.20-1.2944.fc6.src.rpm。首先解压,然后按照README打补丁。最后,使用X86_64的confg,执行make prepare,生成一些头文件。
2. 把2.6.20-1.2944.fc6文件夹中的build和source两个符号连接都指向内核源码解压的地方。
3. 下载www.inf.ufg.br/~sergiodaniel/als ... _rc3-p5vdc-x.tar.gz,并解压。老生常谈的./configure;make;make install。最后会在/lib/modules/2.6.20.6文件夹中生成一大堆东西,用其中的文件覆盖/lib/modules/2.6.20-1.2944.fc6/kernel/sound中相应的文件,然后用alsaconf大致就可以了。

出现的一个问题是,开机有一堆出错提示:
.................................
CPU 0
Modules linked in: snd_seq_oss(F)(U) snd_seq_midi_event(F)(U) snd_seq(F)(U) snd_seq_device(F)(U) snd_pcm_oss(F)(U) snd_mixer_oss(F)(U) snd_pcm(F)(U) nvidia(P)(U) joydev i2c_viapro sg i2c_core snd_timer(F)(U) snd(F)(U) serio_raw soundcore shpchp zc0301 snd_page_alloc(F)(U) videodev v4l1_compat ide_cd via_rhine v4l2_common pcspkr mii cdrom usb_storage sata_via libata sd_mod scsi_mod ext3 jbd ehci_hcd ohci_hcd uhci_hcd
Pid: 1466, comm: modprobe Tainted: PF     2.6.20-1.2944.fc6 #1
RIP: 0010:[<ffffffff8891ae4f>]  [<ffffffff8891ae4f>] :snd_seq:snd_seq_client_use_ptr+0x7c/0x143
RSP: 0018:ffff81002d745c58  EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000001 RCX: ffff81002dc47740
RDX: 00000000000000bc RSI: 0000000000000297 RDI: ffffffff889262d0
RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000200000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff81002c013ce8 R14: ffffc20000139fe0 R15: ffffffff88936b50
FS:  00002aaaaaad5240(0000) GS:ffffffff805d3000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000028 CR3: 000000002b604000 CR4: 00000000000006e0
Process modprobe (pid: 1466, threadinfo ffff81002d744000, task ffff81002dd737c0)
Stack:  ffff810000000000 ffff81002ce377c0 ffff81002ce377c0 ffffffff8891c30a
0000000200000001 00006d6574737953 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
Call Trace:
[<ffffffff8891c30a>] :snd_seq:snd_seq_ioctl_query_next_client+0x3a/0x8e
[<ffffffff8891a1df>] :snd_seq:snd_seq_kernel_client_ctl+0x39/0x56
[<ffffffff88124372>] :snd_seq_oss:snd_seq_oss_midi_lookup_ports+0x95/0xb0
[<ffffffff88124210>] :snd_seq_oss:snd_seq_oss_create_client+0x85/0x147
[<ffffffff802f6a12>] proc_register+0xa1/0x120
[<ffffffff802f6fe1>] create_proc_entry+0x90/0xa6
[<ffffffff8813ea89>] :snd:snd_create_proc_entry+0x9/0x18
[<ffffffff8813eb47>] :snd:snd_info_register+0xaf/0xb5
[<ffffffff8812413a>] :snd_seq_oss:alsa_seq_oss_init+0x13a/0x18b
[<ffffffff8029f9b4>] sys_init_module+0x1797/0x1904
[<ffffffff8025a11e>] system_call+0x7e/0x83


Code: 48 83 78 28 00 0f 84 b4 00 00 00 83 fb 0f 7f 45 80 bd c0 87
RIP  [<ffffffff8891ae4f>] :snd_seq:snd_seq_client_use_ptr+0x7c/0x143
RSP <ffff81002d745c58>
CR2: 0000000000000028
.................................

不过之后顺利进入系统,就不理他了,哈哈。声音总算正常了。原来一直以为是双核,或者64位的问题,汗............... alsa这个问题好像出现了一年多了。
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表