如何确定声卡现在使用的是ALSA还是OSS驱动
发布网友
发布时间:2022-04-24 11:56
我来回答
共1个回答
热心网友
时间:2023-10-11 23:31
在声卡的驱动中一种是OSS(开放声音系统),一种是ALSA(先进Linux声音架构)。
OSS是一个商业声卡驱动程序,需要花钱购买。
一般现在使用的是ALSA的声音架构。
AdvancedLinuxSoundArchitecture的简称为ALSA,译成中文的意思是Linux高级声音体系,ALSA不仅仅是包括对声卡的支持和驱动;
它的特征如下:
1、对所有音频接口的高效支持,从普通用户的声卡到专业级别多路音频设备;
2、声卡驱动完全模块化设计;
3、SMPandthread-safedesign.
4、开发库(alsa-lib)为程序设计提供了简单、方便,并且拥有有高级的效果和功能;
5、支持旧版本的OSSAPI结口,能为大多数的OSS应用程序提供兼容;
OSS是一个商业性的驱动,OSS有一个简装本的代码已经移入内核和ALSA,其中alsa-oss就是;
OSS公司据说目前已经并不存在了;
没有必要用OSS公司提供的商业版本;
用ALSA和OSS简装版足够;
如何查看硬件芯片;
在Linux操作系统中,所有的硬件都是以芯片组来区分的,品牌并不是最重要的;
硬件最重要的标识是芯片组;
所以在讨论区求助的时候,只说硬件品牌,而不提供芯片组,大家是帮助不了,切记;
查看硬件的芯片组是的命令是lspci-v或者是dmesg,由于dmesg输出的信息不太多,不够直观;
所以经常用的还是lspci-v;
也可以用lshal获取;
最方便的还是lspci-v;
初学者还是用lspci-v更好一点;
代码:
[root@localhostbeinan]#lspci-v
运行lspci-v后,如果查看声卡芯片组,发会现有类似下面的一段;
[root@localhostbeinan]#lspci-v
Multimediaaudiocontroller:IntelCorporation82801DB/DBL/DBM(ICH4/ICH4-L/ICH4-M)
AC'97AudioController(rev03)
Subsystem:Hewlett-PackardCompany:Unknowndevice3080
2.6.11-1.1369_FC4i686i686i386
上面的表示的是系统的内核版本,处理器架构等;
lsmod查看已经加载的内核模块;
如果一个设备在内核的编译中是以模块方式加载的,主要是通过lsmod来查看;
[root@localhostbeinan]#lsmod
可能初学Linux的弟兄会问,内核的mole存放在哪里,能不能自己来手工加载模块;
内核的模块放在/lib/moles/内核的版本/kernel/,比如在Fedora4.0中,可以看到如下的:
[root@localhostbeinan]#ls/lib/moles/2.6.11-1.1369_FC4/kernel/
arch/crypto/drivers/fs/lib/net/sound/其中,sound就是声卡模块存放目录,大多数的硬件驱动放在drivers目录,fs是文件系统模块的目录;
net是与网络有关的存放目录,比如一些网络协议支持的模块、防火墙支持的模块等;
arch是cpu方面……
如果想自己加载模块,就到这些目录中查看相应模块的信息,然后用modprobe来加载;
[root@localhostbeinan]#modinfosnd-intel8x0
查看一个模块的信息,用modinfo来查看,所要查看的模块不要带。ko或者。
o之类的;
比如查看到类似下面的信息;
description:Intel82801AA,82901AB,i810,i820,i830,i840,i845,MX440;SiS7012;Ali5455
通过这个足可以知道这是Intel集成声卡,通过lspci-v得到的声卡信息,感觉他们很相近;
所以就能尝试用这个模块来驱动;
[root@localhostbeinan]#modprobesnd-intel8x0
用modprobe加载了模块,然后通过lsmod就能看到了;
对于声卡模块是这么加载的,其它设备的驱动模块也是如此。