alsa 库移植与声音编程
在移植alsa-lib和alsa-utils之前首先要移植alsa-device,保证系统支持alsa驱动,移好alsa-device后再dev/snd后出现相应的设备:
controlC0 --> 用于声卡的控制,例如通道选择,混音,麦克风的控制等
midiC0D0 --> 用于播放midi音频
pcmC0D0c --〉 用于录音的pcm设备
pcmC0D0p --〉 用于播放的pcm设备
seq --〉 音序器
timer --〉 定时器
1. tar -xvf alsa-lib_1.0.23.orig.tar.bz2
(1) 配置alsa-lib
./configure --host=arm-fsl-linux-gnueabi
--prefix=/opt/ALSA/alsa_lib
CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc
error:
configure error required courses helper header not found
安装libncursesw5-dev。apt-get install libncursesw5-dev
configure: error: panelw library not found
./configure加入 --with-curses=ncurses
/bin/bash: xmlto: command not found
安装xmlto
/bin/rm: cannot remove `libtoolt': No such file or directory
强制make!
(2)
make make install
生成的库
alsa_lib$ ls
bin include lib share
在这个文件lib下的库*.so.*是要发布到板子上去的,可以直接copy到开发板的根目录lib下
(这里只是copy,不要剪贴,后面还要用到,注意的是有些软连接不能copy,只能自己到板子上创建。。。)
2. tar -xvf alsa-utils-1.0.23.tar.bz2
./configure --host=arm-fsl-linux-gnueabi
--prefix=/opt/ALSA/alsa_utils/
--with-alsa-inc-prefix=/opt/ALSA/alsa_lib/include/
--with-alsa-prefix=/opt/ALSA/alsa_lib/lib/
--disable-alsamixer --disable-xmlto
注:
--with-alsa-inc-prefix:指定头文件为alsa-lib编译出来的头文件路径
--with-alsa-prefix:指定库文件为alsa-lib编译出来的库文件路径
error:
mv: cannot stat `t-ja.gmo': No such file or directory
解决方法是下载gettext: apt-get install gettext
make
make install
成功以后,你会在自己的alsa-utils安装路径下的bin目录下见到生成的工具
aconnect amidi amixer aplay aplaymidi arecord arecordmidi aseqdump aseqnet iecset speaker-test
3.alsa_lib
cp ALSA/alsa_lib/lib/libasound.* ./nfsdir_linux/lib/
alsa的配置文件拷贝
除了库之外alsa的配置文件也需要拷贝到目标板根文件系统中,这里需要注意的是share目录在目标板的存放位置必须和在主机的存放路径一致,比如在主机上存放在/home/david/project/S5PC100/alsa/alsa-lib,
那么我们就得把share放在目标板上的这个路径里
cp -rf share /home/nfsdir_linux/home/ALSA/alsa_lib/
alsa_utils
将alsa-utils/bin目录下的内容拷贝到目标板根文件系统中的bin下
cp bin/* /home/nfsdir_linux/bin/
4.测试
#cat /proc/asound/devices
0: [ 0] : control
16: [ 0- 0]: digital audio playback
24: [ 0- 0]: digital audio capture
33: : timer
# ls -l /dev/snd/
crw-rw---- system audio 116, 33 1970-01-01 00:00 timer 定时器接口
crw-rw---- system audio 116, 0 1970-01-01 00:00 controlC0 控制接口
crw-rw---- system audio 116, 24 1970-01-01 00:00 pcmC0D0c PCM接口
crw-rw---- system audio 116, 16 1970-01-01 00:00 pcmC0D0p
如果没有snd目录则创建
播放wav文件 1、查看声卡设备 Aplay –l
2、打开设备和调节音量
amixer -c 0 sset Master,0 80%,40% unmute cap
amixer -c 0 sset PCM,0 80%,40% unmute cap
设置第1块声卡的"Master"和“PCM”的左声道音量为80%,右声道为40%,取消静音,并设置
3、播放音乐
aplay test.wav
Playing WAVE 'test.wav' : Unsigned 8 bit, Rate 16000 Hz, Mono
录音
arecord -d 20 -c 2 -t wav -r 8000 -f "Signed 16 bit Little Endian" a.wav
以20秒的间隔(-d 20),立体声(-c 2),频率是 8000Hz来录制Wave格式音频
alsa-utils工具的使用 :
alsa-utils包含的工具有:
alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi,
aseqnet, iecset, speaker-test
amixer controls
查看可以控制的选项,可以通过numid控制
amixer contents
查看声卡内容
amixer cget numid=(amixer controls 显示的)查看具体的选项
amixer cset controls中所输出的某个参数 具体的值(比如,0,1,On,Off等)
1.alsactl
alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.
有时在音量控制面板无法调整的选项,可以使用alsactl来实现.
alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定
声卡的驱动程序的设置信息.
alsactl格式:
alsactl [options] [store|restore]
选项:
-h, --help
打印帮助信息
-f, --file
指定使用的配置文件,默认为/etc/asound.state.
Select the configuration file to use. The default is
/etc/asound.state
-F, --force
与恢复命令一起使用.表示最大限度的恢复设置值.
-d, --debug
调试模式,输出更多细节信息.
-v, --version
打印alsactl版本号.
文件:
/etc/asound.state(或使用-f指定的文件)保存有声卡所有混合器的设置信息.
示例:
# rm /etc/asound.state -f
# alsactl store
2.aconnect
aconnect是ALSA音序器的连接管理器.用来连接或断开ALSA音序器上的端口.端口是
可以随意定义的.
如,使用aconnect可以连接到任何由aseqview建立的设备端口. 命令格式:
aconnect [-d] [-options] sender receiver
aconnect -i|-o [-options]
aconnect -x
选项:
连接管理
-d, --disconnect
断开连接.
-e, --exclusive
使用独占模式连接端口.发送和接收端口将不能再与其他端口相连.
-r, --real queue
将时间包的时间戳,转换为真实时间队列的当前值.
显示端口
-i, --input
显示存在的输入端口.
-o, --output
显示存在的输出端口.
-l, --list
显示当前的连接状态.
删除连接
-x, --removeall
删除所有连接.
示例:
连接端口64:0到65:0:
% aconnect 64:0 65:0
这个连接是单向的,所有到发送端口64:0的数据,将被重定向到接收65:0端口.如果有另一个端口65:1,
也使用64:0作为发送端口,则数据会同时发送到2个接收端口.
端口连接时,使用:
% aconnect -d 64:0 65:0
地址也可以使用客户端的名字来代替:
% aconnect External:0 Emu8000:1
使用-i打印出输入端口信息.-o打印出输出端口信息.
% aconnect -i
client 0: ’System’ [type=kernel]
0 ’Timer ’
安装alsa
安装alsa
编译声卡模块,需要使用alsa-lib库。以下是详细使用步骤,ubuntu版本14.04。
1. 安装alsa-lib库。
使用安装命令:apt-get install libasound2-dev。
再使用命令:dpkg-L libasound2-dev[命令解释:列出与该包关联的文件],查看安装alsa-lib安装后,会安装那些文件。执行完这条命令后,可以看出在/usr/include/多了四个文件夹 bin share alsa
sys。
到此,alsa的lib库就算安装成功。安装后的目录在/usr/include/下。你可以使用了。
==========================================================================================================================================================
以下是利用官网的软件包安装。
上面安装的库是Ubuntu提供的,版本可能不是最新版本,那查看以下版本。使用命令dpkg -llibasound2-dev [命令解释:显示该包的版本]。查看版本之后,发现Ubuntu提供的最新版本是1.0.27.2-3ubuntu7,不是最新版本,那可以去官网查下载alsa-lib的最新版本alsa-lib-1.1.5.tar.bz2。
官网地址:
a. 将alsa-lib-1.1.5.tar.bz2放在目录/usr/share/下,使用解压命令,进行解压。
解压命令:tar -xjvf alsa-lib-1.1.5.tar.bz2-C .
b. 解压之后,cd alsa-lib-1.1.5,进入目录/usr/share/alsa-lib-1.1.5下,交叉编译alsa-lib。 命令:
alsa pulse用法
alsa pulse用法
Alsa和PulseAudio都是音频系统,为Linux提供了音频挂载管理的方法。Alsa是Advanced Linux Sound Architecture的缩写,是Linux系统中的一种音频驱动程序,它是内核中的部分驱动程序,接管了所有在硬件和处理程序之间传递的音频数据。PulseAudio是另一种音频系统,它是一种高级音频套接字服务,它可以集成Alsa的音频功能,同时具有更高级别的音频管理和效果。以下是对PulseAudio和Alsa使用的一些常见方法:
1.在终端中打开PulseAudio控制器:
pavucontrol
2.在终端中打开Alsa控制器:
alsamixer
3.启动PulseAudio daemon:
pulseaudio start
4.关闭PulseAudio daemon:
pulseaudio kill
5.列出所有的PulseAudio设备:
pacmd list-devices
6.使用PulseAudio设置默认的音频输入和输出设备:
pacmd set-default-sink sink_name
pacmd set-default-source source_name
7.列出所有可用的Alsa设备,包括输入和输出:
aplay -l
arecord -l
8.使用Alsa播放音频文件:
aplay file.wav
9.使用Alsa录制音频:
arecord file.wav
10.设置Alsa设备的音量:
amixer set Master 50%
这些是Alsa和PulseAudio使用的一些常见方法。在控制音频设备和效果时,它们都是非常有用的工具。
alsa 原理
alsa 原理
ALSA原理解析
什么是ALSA?
ALSA(Advanced Linux Sound Architecture)是Linux操作系统中的一种音频处理架构。它提供了一种标准的音频设备驱动程序接口,用于操作和控制音频设备,如声卡、麦克风、扬声器等。
ALSA的组成部分
ALSA由以下几个主要的组成部分组成:
1. 音频设备驱动程序:负责与硬件之间的通信,将音频设备的输入输出转换为数字信号,并通过内核提供的接口向应用程序提供访问。
2. 音频库:提供高级的音频操作接口,为应用程序提供简化的音频处理功能。
3. 控制工具:用于配置和控制音频设备的命令行工具,如alsactl和amixer。
ALSA的工作原理
ALSA的工作原理可以简单概括为以下几个步骤: 1. 设备检测:当系统启动或插入音频设备时,ALSA会进行设备检测,并加载相应的设备驱动程序。
2. 设备配置:ALSA会自动对音频设备进行配置,包括设定采样率、位深度、声道数等参数。
3. 应用程序访问:应用程序通过调用ALSA提供的API接口来访问音频设备。应用程序可以使用ALSA提供的库函数来进行音频采集、播放、混音等操作。
4. 数据传输:ALSA通过DMA(Direct Memory Access)技术将音频数据从内存传输到音频设备,或者从音频设备传输到内存。
5. 数据处理:音频数据在传输过程中,可以经过一系列的处理,例如音频编码、解码、混音等。
6. 音量控制:ALSA提供了音量控制接口,应用程序可以通过调用API来调整音频设备的输入和输出音量。
7. 音频事件处理:ALSA可以捕捉音频设备发出的事件,并通过回调函数通知应用程序。例如,当音频设备的状态发生变化时,应用程序可以接收到相应的通知。
总结
通过以上解析,我们了解了ALSA的基本原理和工作流程。ALSA提供了一个标准的音频处理框架,使应用程序能够方便地访问和控制音频设备。它的底层驱动程序负责和硬件进行通信,而高级的音频库则提供了简化和抽象的接口,方便应用程序进行音频处理。在Linux操作系统中,ALSA是一个重要的音频架构,被广泛应用于各种音频设备和应用场景中。
alsa中pulseaudio的工作原理
alsa中pulseaudio的工作原理
1. 概述
PulseAudio 是 Linux 系统上的一款音频服务器,他的主要作用是为应用程序提供音频输入输出的服务,提供音频的混音、重采样等功能。PulseAudio 可以与 ALSA(Advanced Linux Sound Architecture)配合使用,将音频数据传递给硬件设备进行播放。
2. ALSA 和 PulseAudio 的关系
在 Linux 系统中, ALSA 是默认的音频框架。它负责管理硬件设备以及音频流的输入输出。PulseAudio 则是在 ALSA 的基础上提供了更强大的音频处理能力,比如支持多应用程序同时播放音频、应用级别的音量控制和音频混音等功能。
3. PulseAudio 的工作原理
PulseAudio 通过客户端-服务器的模式工作。当用户在应用程序中播放音频时,音频数据首先被传递给 PulseAudio 客户端,然后经过
PulseAudio 服务器进行处理,最终再由 ALSA 将数据传递给硬件设备进行播放。
4. PulseAudio 的主要组件
PulseAudio 主要由以下几个组件组成:
- 客户端库(libpulse):提供给应用程序使用的接口,用于将音频数据传递给 PulseAudio 服务器。
- 服务器守护进程(pulseaudio):负责管理音频的输入输出,包括混音、重采样、音量控制等功能。
- 控制面板(pavucontrol):提供了一个图形化的用户界面,用于用户对音频设备进行配置和控制。
- 模块(module):提供了各种功能模块,包括网络音频传输、蓝牙音频支持、JACK 集成等。
5. PulseAudio 的工作流程
PulseAudio 的工作流程可以概括为以下几个步骤:
- 应用程序向 PulseAudio 客户端库注册音频流。
- PulseAudio 客户端库将音频数据传递给 PulseAudio 服务器。
alsalib 交叉编译
ALSALib交叉编译
介绍
在嵌入式系统和嵌入式Linux开发中,ALSA(Advanced Linux Sound
Architecture)是一个重要的音频架构。ALSA提供了一个用于音频和声音设备驱动程序的应用程序接口(API)。在某些情况下,我们可能需要对ALSA库进行交叉编译,以便在嵌入式系统中使用。
本文将详细介绍如何交叉编译ALSA库,以及一些常见问题和解决方法。
准备工作
在开始之前,我们需要做一些准备工作。
1. 安装交叉编译工具链:根据目标平台选择合适的交叉编译工具链,并将其安装到本地系统中。
2. 下载ALSA源代码:从ALSA官方网站()下载最新的ALSA源代码包,并将其解压到本地目录中。
3. 配置交叉编译环境:设置环境变量,以便交叉编译工具链能够正确地找到所需的库和头文件。
编译过程
下面是交叉编译ALSA库的详细过程。
配置
首先,进入ALSA源代码目录,并执行以下命令以配置编译选项:
./configure --host= --prefix=
其中,是交叉编译工具链的前缀,例如arm-linux-gnueabihf-。是将安装ALSA库的目录。
编译
配置完成后,执行以下命令以开始编译:
make
这将编译ALSA库的所有组件。 安装
编译完成后,执行以下命令以安装ALSA库到指定目录:
make install
配置交叉编译工具链路径
在交叉编译过程中,可能会遇到找不到交叉编译工具链的问题。这时,我们需要将交叉编译工具链的路径添加到系统的环境变量中。
在Linux系统中,可以通过编辑~/.bashrc文件来设置环境变量。打开该文件,并在末尾添加以下内容:
export PATH=:$PATH
保存文件并执行以下命令以使环境变量生效:
source ~/.bashrc
解决常见问题
在交叉编译ALSA库的过程中,可能会遇到一些常见问题。下面是一些常见问题及其解决方法。
Linux音频驱动学习之:(1)ASOC详解
Linux⾳频驱动学习之:(1)ASOC详解
⼀、⾳频架构概述
(1)ALSA是Advanced Linux Sound Architecture 的缩写,⽬前已经成为了linux的主流⾳频体系结构,想了解更多的
关于ALSA的这⼀开源项⽬的信息和知识,请查看以下⽹址:/。
在内核设备驱动层,ALSA提供了alsa-driver,同时在应⽤层,ALSA为我们提供了alsa-lib,应⽤程序只要调⽤alsa-lib提供的API,即可以完成对底层⾳频硬件的控制。
(2)PCM是英⽂Pulse-code modulation的缩写,中⽂译名是脉冲编码调制。我们知道在现实⽣活中,⼈⽿听到的声⾳
是模拟信号,PCM就是要把声⾳从模拟转换成数字信号的⼀种技术,他的原理简单地说就是利⽤⼀个固定的频率
对模拟信号进⾏采样,采样后的信号在波形上看就像⼀串连续的幅值不⼀的脉冲,把这些脉冲的幅值按⼀定的精
度进⾏量化,这些量化后的数值被连续地输出、传输、处理或记录到存储介质中,所有这些组成了数字⾳频的产
⽣过程。
PCM信号的两个重要指标是采样频率和量化精度,⽬前,CD⾳频的采样频率通常为44100Hz,量化精度是16bit。通常,播放⾳乐时,应⽤程序从存储介质中读取⾳频数据(MP3、WMA、AAC......),经过解码后,最终
送到⾳频驱动程序中的就是PCM数据,反过来,在录⾳时,⾳频驱动不停地把采样所得的PCM数据送回给应⽤程
序,由应⽤程序完成压缩、存储等任务。所以,⾳频驱动的两⼤核⼼任务就是:playback 如何把⽤户空间的应⽤程序发过来的PCM数据,转化为⼈⽿可以辨别的模拟⾳频
capture 把mic拾取到得模拟信号,经过采样、量化,转换为PCM信号送回给⽤户空间的应⽤程序
(3)ASoC--ALSA System on Chip:
建⽴在标准ALSA驱动层上,为了更好地⽀持嵌⼊式处理器和移动设备
linphone总结
Linphone总结
一、Linphone依赖库简介及移植:
用到的开源库简介:
Alsa
ALSA是Advanced Linux Sound Architecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA已经成为默认的声音子系统。Alsa的主要功能是从音频设备中读数据或向播放设备写数据,还可以做一些音频处理,如重采样等。
Osip
Libosip2 SIP协议栈的简单实现。libexosip2对libosip2 的调用进行封装,隐藏了多媒体会话建立过程中SIP 的细节。
ffpmeg
ffmpeg是一套录制,转换各种音视频各式的工具集,也提供SDK的codec接口。主要包括ffmpeg
ffplay ffserver libavcodec libavformat,其中很多编解码库依赖于第三方,比如xVid lampMP3
等等。ffmpeg的编译大全
ogg
Ogg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式,类似于MP3等的音乐格式。Ogg是完全免费、开放和没有专利限制的。OggVorbis文件的扩展名是.OGG。Ogg文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。
Speex
Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。
Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。它的特点有:
Linux--ALSA
Linux ALSA 声卡驱动的分析
一 、ALSA && OSS
在linux系统中,先后出现了音频设备的两种主要框架:OSS和ALSA.针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。
1.1 音频设备的硬件接口:
(1)PCM接口。
(2)IIS(I2S)接口。
(3)AC97接口。
在CD,MD,MP3随身听多采用IIS接口,移动电话会采用PCM接口,具有音频功能的PDA则多使用和PC一样的AC97编码格式。
1.2 linux OSS音频设备驱动
OSS标准中有两个最基本的音频设备:mixer(混音器)和dsp(数字信号处理器)。
在声卡的硬件电路中,mixer是一个很重要的组成部分,它的作用是将多个信号组合或者叠加在一起,对于不同的声卡来说,其混音器的作用可能各不相同。在OSS驱动中,/dev/mixer设备文件时应用程序对mixer进行操作的软件接口。
1.2.1 OSS用户空间编程(dsp编程)
对OSS驱动声卡的编程使用linux文件接口函数,dsp接口的操作一般包括如下几个步骤
(1)打开设备文件/dev/dsp。
(2)如果有需要,设置缓冲区大小。
(3)设置声道(channel)数量。
根据硬件设备和驱动程序的具体情况,可以设置为单声道或者立体声。
(4)设置采样格式和采样频率。
(5)读写/dev/dsp实现播放和录音。
1.3 linux ALSA音频设备驱动
1.3.1 ALSA的主要特点.
(1)支持多种声卡设备。
(2)模块化的内核驱动程序。
(3)支持SMP和多线程。
(4)提供应用开发函数库(alsa-lib)以简化应用程序开发。
(5)支持OSS API,兼容OSS应用程序。
嵌入式驱动开发之---LinuxALSA音频驱动(一)
嵌⼊式驱动开发之---LinuxALSA⾳频驱动(⼀)
本⽂的部分内容参考来⾃的博客(),关于ALSA写得很不错的⽂章,只是少了实例。本⽂就是结合实例来分析ALSA⾳频驱动。
开发环境:ubuntu10.04
⽬标板:linux-2.6.37 (通过命令uname -r 查看linux内核版信息)
编译器:arm-none-linux-gnueabi- (none 代表编译器的制作者,⽐如:fsl代表飞思卡尔,内核⾥⾯谈EABI,OABI,其实相对于的⽅式,当然我
们所说的系统限于arm系统)
接下来,我们⾸先要了解的是ALSA整体架构,架构图如下:
在内核设备驱动层,ALSA提供了alsa-driver,同时在应⽤层,ALSA为我们提供了alsa-lib,应⽤程序只要调⽤alsa-lib提供的API(本开发
板/usr/lib/libasound.so.2 和 libasound.so.2.0.0 下alsa-lib库asound),即可以完成对底层⾳频硬件的控制。内核空间中,alsa-soc其实是对
alsa-driver的进⼀步封装,他针对嵌⼊式设备提供了⼀些列增强的功能。
接下来我们查看设备⽂件和sys系统接⼝:
我们可以看到以下设备⽂件:
controlC0 --> ⽤于声卡1的控制,例如通道选择,混⾳,麦克风的控制等
controlC1 --> ⽤于声卡2的控制,例如通道选择,混⾳,麦克风的控制等
midiC0D0 --> ⽤于播放midi⾳频 (我的驱动不具有)
pcmC0D0c --> ⽤于声卡1录⾳的pcm设备(tvp5158⾳频采集)
pcmC0D1c --> ⽤于声卡1录⾳的pcm设备(tlv320aic3x⾳频采集)
pcmC0D1P --> ⽤于声卡1播放的pcm设备(tlv320aic3x⾳频输出)
pcmC1D0p --> ⽤于声卡2播放的pcm设备(hdmi⾳频输出)
seq --〉 ⾳序器 (我的驱动不具有)
Ubuntu_编译Alsa声卡驱动
使用最新 ALSA 驱动解决 UBUNTU LINUX
INTEL 集成声卡问题
目前用户所抱怨的 Ubuntu 系列的声卡问题,基本上归结为几类:一,找不到声音设备;二,不发声;三,耳机和音箱同时发声;四、话筒没声。大部分这种问题都是由笔记本上 Intel 集成声卡驱动引起的,关于这个问题的具体描述和解决方案,可以查看下面两个页面:
BUG:
https:///ubuntu/+source/linux-source-2.6.22/+bug/131133
SOLUTION:
https:///Gutsy_Intel_HD_Audio_Controller
其实大部分问题都可以通过自己动手编译安装最新 ALSA 驱动解决,解决方法上面两个链接中已经解释得很清楚了,我这里介绍一下我的思路:
第一,查看 ALSA 版本,如果最新,就不用重新安装了,仔细查看一下配置吧。
$ alsactl -v
如果打印出: alsactl version 1.0.20,那么 ALSA 已经是最新了。
第二,在 ALSA 官方网站 上,下载最新的 ALSA 驱动,怎么解压我就不说了吧。
$ wget ftp:///pub/driver/alsa-driver-1.0.20.tar.bz2
$ wget ftp:///pub/lib/alsa-lib-1.0.20.tar.bz2
$ wget ftp:///pub/utils/alsa-utils-1.0.20.tar.bz2
第三,查看自己的内核版本和声卡解码芯片是否被支持。
查看支持的内核版本
$ less alsa-driver-1.0.15/SUPPORTED_KERNELS
查看自己声卡解码芯片(如果系统不能识别声卡,可能无法由下面两个查到,那么查看你电脑配置单吧)
$ tail -2 /proc/asound/oss/sndstat
或
$ head -1 /proc/asound/card0/codec#0
