嵌入式系统 CORE9G25 上的 alsa
Posted
技术标签:
【中文标题】嵌入式系统 CORE9G25 上的 alsa【英文标题】:alsa on embedded system CORE9G25 【发布时间】:2014-10-23 17:21:27 【问题描述】:我有一个安装了嵌入式 linux 的 CORE9G25-CON (256MBRAM) (http://armdevs.com/core9g25.html) 设备。 linux的版本是:
# uname -or
3.6.9 GNU/Linux
# cat /etc/os-release
NAME=Buildroot
VERSION=2012.11.1-dirty
ID=buildroot
VERSION_ID=2012.11.1
PRETTY_NAME="Buildroot 2012.11.1
该设备配备了 USB 主机连接器,我在其中连接了一个 USB-AUDIO 接口
USB接口被系统识别
# cat /proc/asound/cards
0 [Device ]: USB-Audio - USB PnP Sound Device
C-Media Electronics Inc. USB PnP Sound Device at usb-at91-1, full speed
# cat /proc/asound/devices
0: [ 0] : control
16: [ 0- 0]: digital audio playback
24: [ 0- 0]: digital audio capture
33: : timer
# ls /dev/snd
controlC0 pcmC0D0c pcmC0D0p timer
我想使用 ALSA 处理 AUDIO 接口,但这是使用简单命令 aplay -l 显示在控制台上的错误
# aplay -l
**** List of PLAYBACK Hardware Devices ****
ALSA lib control.c:739:(snd_ctl_open_noupdate) Invalid CTL hw:0
aplay: device_list:226: control open (0): No such file or directory
aplay: conf.c:3095: snd_config_update_free: Assertion `update->count > 0 && update->finfo' failed.
Aborted
我用谷歌搜索了大约一周试图解决这个问题,但到目前为止,我没有找到任何解决方案。
你能帮我解决这个问题吗? 你有其他类似的经历吗?
非常感谢您的帮助与合作
最好的问候
【问题讨论】:
【参考方案1】:你的 alsa.conf 是什么样的?这样做
locate alsa.conf
通常位于
/usr/share/alsa/alsa.conf
上谷歌
audio sound alsa Invalid CTL hw:0
这可能会让你走上正确的道路
#alsa.conf minimal configuration
ctl.hw
@args [ CARD ]
@args.CARD
type string
type hw
card $CARD #with 0 alsamixer work, with $CARD alsamixer lend to invalid argument
【讨论】:
alsa.conf 文件位于 /usr/share/alsa 目录。 alsa.conf 文件由工具链生成。 我使用 strace 来跟踪 'aplay .l' 进程,我注意到没有读取 alsa.conf 文件。 aplay -l 进程试图打开 /usr/share/alsa (这是一个目录)作为 alsa.conf 文件,当然,我认为它不正确。如何解决?以上是关于嵌入式系统 CORE9G25 上的 alsa的主要内容,如果未能解决你的问题,请参考以下文章
嵌入式linux/android alsa_aplay alsa_amixer命令行用法