Linux 系统中用ALSA 驱动声卡流程详解 一、什么是ALSA Advanced Linux Sound Architecture 的简称为 ALSA , 译成中文的意思是 Linux 高级声音体系(这是我直译的,可能译的不对)。一谈到体系就有点范围就太大了,所以ALSA 不仅仅是包括对声卡的支持和驱动。 ALSA 具有如下特征: 1、对所有音频接口的高效支持,从普通用户的声卡到专业级别多路音频设备。 2、声卡驱动完全模块化设计。 3、 SMP and thread-safe design。 4、开发库(alsa-lib) 为程序设计提供了简单、方便,并且拥有有高级的效果和功能。 5、支持旧版本的OSS API 结口,能为大多数的OSS 应用程序提供兼容。OSS 是一个商业性的驱动,OSS 有一个简装本的代码已经移入内核和ALSA,其中alsa-oss 就是。OSS 公司据说目前已经并不存在了。我们没有必要用OSS 公司提供的商业版本。用ALSA 和 OSS 简装版足够。 二、关于硬件驱动驱动的必备基础 1、如何查看硬件芯片 在 Linux 操作系统中,所有的硬件都是以芯片组来区分的,品牌并不是最重要的。硬件最重要的标识是芯片组。所以您在讨论区求助的时候,只说硬件品牌,而不提供芯片组,大家是帮助不了您的,切记。 我们查看硬件的芯片组是的命令是 lspci -v 或者是dmesg,由于dmesg 输出的信息不太多,不够直观。所以经常用的还是lspci -v 。也可以用lshal 获取。最方便的还是lspci -v。初学者还是用 lspci -v 更好一点。 [root@localhost beinan]# lspci -v 我们运行lspci -v 后,如果查看声卡芯片组,发会现有类似下面的一段: [root@localhost beinan]# lspci -v Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) Subsystem: Hewlett-Packard Company: Unknown device 3080 Flags: bus master, medium devsel, latency 0, IRQ 5 I/O ports at 1c00 size=256 I/O ports at 18c0 size=64 Memory at e0100c00 (32-bit, non-prefetchable) size=512 Memory at e0100800 (32-bit, non-prefetchable) size=256 Capabilities: [50] Power Management version 2 2、系统内核版本 [root@localhost beinan]# uname -r -m -p -i 2.6.11-1.1369_FC4 i686 i686 i386 上面的表示的是系统的内核版本,处理器架构等。 提示:如果您自己编...