arm linux利用alsa驱动并使用usb音频设备

Posted Jello

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arm linux利用alsa驱动并使用usb音频设备相关的知识,希望对你有一定的参考价值。

一.背景:

arm linux的内核版本是3.13.0

二.准备工作

添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项:

接下来就重新编译内核即可

三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib编译好)

3.1交叉编译alsa-lib

3.2交叉编译alsa-utils

四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制到开发板进行解压,以避免直接复制造成软链接无法复制的情况)

五.使用alsa-utils中的工具进行各类操作

5.1录音:

arecord -D "plughw:0,0" demo.wmv

5.2播放:

aplay -D "plughw:0,0" demo.wmv

 5.3获取控制信息:

amixer controls

输出信息如下:

numid=3,iface=MIXER,name=\'Master Mode Switch\'
numid=29,iface=MIXER,name=\'Master Mux\'
numid=4,iface=MIXER,name=\'Master Quality Switch\'
numid=2,iface=MIXER,name=\'Master Switch\'
numid=1,iface=MIXER,name=\'Master Volume\'
numid=7,iface=MIXER,name=\'PCM Mode Switch\'
numid=6,iface=MIXER,name=\'PCM Switch\'
numid=5,iface=MIXER,name=\'PCM Volume\'
numid=9,iface=MIXER,name=\'Mic Switch\'
numid=8,iface=MIXER,name=\'Mic Volume\'

5.4 获取录音时的音量大小

从5.3可以获取到”numid=8,iface=MIXER,name=\'Mic Volume\'“这条信息,从Mic Volume可以得知是Mic的音量

amixer cget numid=8,iface=MIXER,name=\'Mic Volume\'

5.4设置录音时的音量大小 

amixer cset numid=8,iface=MIXER,name=\'Mic Volume\' 255 

六:注意事项:

如果将编译好的alsa-utils中的工具复制到fat32格式的存储设备的时候,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord:

cp aplay arecord

 

以上是关于arm linux利用alsa驱动并使用usb音频设备的主要内容,如果未能解决你的问题,请参考以下文章

linux下ALSA音频驱动软件开发

Linux音频驱动学习之:ASOC分析

Linux ALSA驱动之五:Linux ALSA驱动之Platform源码分析(基于Linux 5.18)

Linux ALSA 音频系统:逻辑设备篇

Linux ALSA 音频系统:逻辑设备篇

Arm-Linux 移植 alsa