apt-get install alsa-base alsa-utils gstreamer0.10-alsa
1、如何查看硬件芯片;运行lspci -v
2、系统内核版本;uname -r -m -p -i
3、modprobe.conf的内容;whereis modprobe.conf
modprobe.conf 或者module.conf就是对系统已经加载的模块进行相应的配置.
一般情况下,如果系统默认的内核不能驱动声卡,大多得更换内核,
4、lsmod 查看已经加载的内核模块;lsmod |grep sound
debian:~# ls /lib/modules/2.6.22-3-686/kernel/ arch crypto drivers fs lib
net sound其中,sound 就是声卡模块存放目录
三、针对自己系统的声卡不发声,我是否有必要来升级内核解决;
2、是否把声卡的音量打开了
命令行下,对于alsa来说是alsamixer,上下对于音量左右建控制调整的对象,别忘了取消禁音(按m),最后是alsactl store存储音量设置,调整是实时的。
使用左右箭头键在各个通道中切换,上下箭头键调整音量。
谈到混音器(mixer),这里需要注意一下,特别当你使用ALSA的时候。按照默认设置,ALSA启动时所有的输出频道都是静音的。因此,你可能能播放一个声音文件,但是却什么都听不到。
你应该确保你所需的频道解除了静音并且音量调节滑块设置在恰当的水平(你需要通过试验才知道何谓“恰当”)。“Mater”和“PCM”选项对于放音至关重要。如果想播放音乐CD,你可能还需要设置CD选项。
为了录音,通常你必须对“Mic”(麦克风)或者“Line”选项解除静音。
5 通过 alsaconf 来配置声卡;
一般的情况下,系统在安装的时候,会自动把声卡配好;如果能识别的,就基本没有问题了;但如果出现识别了,但还是不发声;或者识别成猫的蜂鸣器;所以我们除了要把前面所说的猫的蜂鸣器模块改名后,还要重新运行一下声卡配置工具 alsaconf ;可能我们还需要前面的一点知识,比如 modprobe 、lsmod等;有必要的时候还要启新启动机器;
判断是否有必要重编内核:
debian:~# modinfo soundcore filename:
/lib/modules/2.6.22-3-686/kernel/sound/soundcore.ko alias:
char-major-14-* license: GPL author: Alan Cox description:
Core sound module depends: vermagic: 2.6.22-3-686 SMP mod_unload
686
如果出现上面类似的信息,则不必编译内核;
四、安装新版本的ALSA;
alsa-lib 是alsa-driver 或者alsa其它包的时候,必须先安装这个包;
alsa-driver 是音频设备的驱动;一般内核都集成在里面,大多是以模块的方式,安装在了 /lib/modules/内核的版本/kernel/sound 或 /lib/modules/内核的版本/kernel/drviers/sound/ 中了;每个版本的内核都是如此
alsa-utils 这个包主要是一些声卡配置工具,比如 alsaconf 、 alsamixer等;
alsamixer
alsamixer: function snd_ctl_open failed for default: No such file or directory
alsa-oss 这个包和alsa-driver 一样,也没有以独立的包出现在 中,原因和alsa-driver 一样,是集成在内核了,这个包极有必要的;
比较重要的就是 alsa-lib 、alsa-driver、alsa-utils 、alsa-oss ;
误区之一:总认为只要在线升级了alsa-lib 和alsa-utils 或 alsa-tools 就能解决声卡不发声的问题;其实不是这样的;因为起关健作用的是内核,而内核中的声卡驱动也是来自alsa-driver;所以我们要尝试升级 alsa-driver 才能解决问题。
正确观点:只要内核中的soundcore 是以模块的形式编译的,并且通过modinfo soundcore查看版本信息输出,我们就没有太大必要重编内核;因为系统几乎对所有的声卡及设备都有编译进去;所以我们先不要重编内核;除非做了升级 alsa-driver后,还是不能解决问题,这时才能重编译核。

