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下的一个USB设备使用的驱动模块
- Linux音频设备两种框架OSS和ALSA驱动
- Linux音频设备两种框架OSS和ALSA驱动
- Linux下的硬件驱动——USB设备(上)(驱动配置部分
- Linux普通用户使用libusb访问usb设备的方法
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备(上)(驱动配置部分)
- Linux下的硬件驱动——USB设备(上)(驱动配置部分)
- linux下USB设备的使用
- Linux下的硬件驱动——USB设备(下)&& Linux下PCI设备驱动程序开发
- ARM的嵌入式Linux移植体验之设备驱动
- ARM+LINUX字符型设备驱动编写框架
- Linux下的硬件驱动――USB设备(上)(驱动配置部分)
- Linux 2.4.18的内核在使用S3C2410板的USB设备时碰到的一个Bug的解决办法
- Linux下的硬件驱动——USB设备(下)(驱动开发部分)
- Linux下的硬件驱动——USB设备(下)(驱动开发部分)
- Linux下的硬件驱动――USB设备 (上)
- Linux下的硬件驱动——USB设备(上)