【原创】:声卡故障排除笔记

CPU/显卡/打印机/USB设备等硬件问题
回复
darian
帖子: 5
注册时间: 2009-06-18 16:34

【原创】:声卡故障排除笔记

#1

帖子 darian » 2009-07-27 14:56

在网上看了无数的声卡问题解决方法,也走了不少的弯路。现把声卡一般问题的解决过程贴出来,自己的一点点心得 :em09 ,希望大家多提提意见,给新手一些帮助。
本文参考了:
http://fedora.linuxsir.org/main/?q=node/66
viewtopic.php?p=615696#615696
多谢北南南北和wsc830719

阶段一
1. 检查“音量控制”
control.JPG
看看“音量控制”里是不是有什么静音或音量被设成了0(发现有些人试了n种解决方法,最后才发现是音量控制里被“静音”或音量为“0”,走了那么多弯路实在冤枉)。准备一个wav文件,终端用如下命令检测是否发声,如果有就不用再麻烦。
#cat test.wav > /dev/audio
2. 检查alsamixer
终端运行命令alsamixer(该命令找不到的话,参考步骤6),这时会出现一alsa控制界面如下:
alsamixer.JPG
检查各设备是否被“静音”或音量为“0”。“上”“下”方向键可实现音量大小的控制,字母“M”键实现是否静音的切换。
修改后再用“#cat test.wav > /dev/audio”命令看看是否有声音。

阶段二
3. 运行“lsmod | grep snd”,查看声卡驱动模块是否已加载(如果没有,参考步骤6)
4. 运行命令alsaconf(该命令不能运行的话,参考步骤6),该命令用来选择控制声卡芯片的驱动模块。我电脑上识别的声卡设备如下。如果没有声音换个选项试试。
alsaconf.JPG
PS:这一步一般不会有什么问题,写出来只是因为有人alsaconf命令一直用不起来,而卡在这里。

5. 修改alsa-base.conf(最有可能解决问题的一步)
modprobe通过读取alsa-base.conf中的配置,加载ALSA驱动模块。声卡对于不同的主板和控制芯片可能做不同的初始化动作,这时内核便alsa-base通过得到声卡所处的主板架构。很多机器声卡无声,就试因为初始化时的架构设置和本身的主板架构不符。打开/etc/modprobe.d/alsa-base.conf出现的配置信息如下:
alsa-base.PNG
我们要做的就是注释掉options snd-cmipci mpu_port=xxx fm_port=xxx这行(在此行前加#号),然后在下面添加 options snd_hda_intel model=xxxx ,xxxx就是你要选择的主板类型。目前主板的常用类型都包含在HD-Audio-Models.txt文件中。下载alsa-driver源码后,打开alsa-kernel/Documentation/HD-Audio-Models.txt文件,看到如下格式内容:

ALC880
======
3stack 3-jack in back and a headphone out
3stack-digout 3-jack in back, a HP out and a SPDIF out
5stack 5-jack in back, 2-jack in front
5stack-digout 5-jack in back, 2-jack in front, a SPDIF out
6stack 6-jack in back, 2-jack in front
6stack-digout 6-jack with a SPDIF out

声卡型号可通过cat /proc/asound/card*/codec#*命令的第一行获得(如这里即是ALC880,下面的3stack和3stack-digout等即初始化时的具体model)。根据声卡型号,将options snd_hda_intel model=xxxx行的xxxx依次替换为HD-Audio-Models.txt所提供的那些model,并重启,应该可以解决绝大多数问题。

6. 如果还没有声音,重新编译,安装alsa。
ALSA架构通常包括alsa-drvier,alsa-utils,alsa-lib三个软件包。你可以到alsa官网上http://www.alsa-project.org/下载。也可以从声卡芯片厂商网站得到
安装驱动时进入alsa-driver目录,依次使用如下命令:
#./configure --with-cards=hda-intel
#make ; make install
#snddevices
alsa-utils中包含了alsa常用的配置工具,包括了alsaconf和alsamixer的源代码。按照指定方法编译即可生成。
PS:以前出现过alsaconf命令找不到的现象,发现编译时,进入alsaconf后出现“什么也不用做”的提示。进alsaconf文件夹后,用“chmod +x *”变为可执行,编译生成alsaconf拷到/usr/sbin下即可。

7. 还不行?编译内核试试
参考文档:viewtopic.php?t=134404
关于编译内核的是否必要,可参考北南南北:
“只要内核中的soundcore 是以模块的形式编译的,并且通过modinfo soundcore查看版本信息输出,我们就没有太大必要重编内核;因为系统几乎对所有的声卡及设备都有编译进去;所以我们先不要重编内核;除非做了升级alsa-driver后,还是不能解决问题,这时才能重编译核;alsa-driver 是和内核配置文件相关联的;也就是说,alsa-driver 是根据内核的配置文件来进行判断,对哪些声卡应该支持等;如果内核的配置文件没有配置对您的声卡进行支持;这时才需要我们来配置内核;另外内核中对声卡的支持的驱动也是来自于 alsa-driver”

8. 再不行?使用命令“cat /proc/asound/card*/codec#*”将生成的信息给高手参考
上次由 darian 在 2009-07-27 15:14,总共编辑 3 次。
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

Re: 声卡故障排除攻略

#2

帖子 leeaman » 2009-07-27 14:57

在那里? :em06
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

Re: 声卡故障排除攻略

#3

帖子 hcym » 2009-07-27 14:59

编辑过吧

祖传秘籍,可能又舍不得

:em04
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 【原创】:声卡故障排除攻略

#4

帖子 eexpress » 2009-07-27 15:05

攻略????!!!!!
嘛都没说一样。 :em04
● 鸣学
darian
帖子: 5
注册时间: 2009-06-18 16:34

Re: 【原创】:声卡故障排除笔记

#5

帖子 darian » 2009-07-27 16:26

大家多提意见啦!我改 :em09
caicai0119
帖子: 2
注册时间: 2009-05-15 13:19

Re: 【原创】:声卡故障排除笔记

#6

帖子 caicai0119 » 2009-07-27 16:30

好贴! :em08
头像
aric286
帖子: 960
注册时间: 2007-12-03 9:54
联系:

Re: 【原创】:声卡故障排除笔记

#7

帖子 aric286 » 2009-07-27 17:20

做个记号,等用的着的时候看 :em03
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 【原创】:声卡故障排除笔记

#8

帖子 wangdu2002 » 2009-07-27 17:40

楼主辛苦了,整理和摸索不易,还是有参考价值的。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
wkt
帖子: 849
注册时间: 2006-09-07 22:51
联系:

Re: 【原创】:声卡故障排除笔记

#9

帖子 wkt » 2009-07-27 17:44

还有个方法:升级内核
回复