Linux/ALSA 声卡配置与故障排除
外观
表现为
- 虚拟目录/proc/asound不存在
- 命令aplay -l返回没有找到声卡
- 声卡在一些硬件检测机制下出现,例如 lspci
有时,这是由于在 dist-upgrade 中选择性地删除内核等模块,而没有删除相应的内核模块导致的。
将必要的模块添加到你的内核中。在 Ubuntu 中,你可以通过以下命令升级到最新的内核和模块
$ sudo apt-get install linux-generic
如果你遇到以下错误,则意味着你正在尝试使用一个不存在或错误的设备
$ cat /dev/urandom | aplay
ALSA lib pcm_hw.c:1207:(_snd_pcm_hw_open) Invalid value for card
aplay: main:546: audio open error: No such file or directory
这可以通过明确指定设备来解决。
cat /dev/urandom | aplay -D hw:0,3
这是一个比较复杂的问题。本质上,硬件期望音频样本采用特定的数据类型,而你提供的类型错误。
aplay: set_params:901: Sample format non available
指定样本格式,或修改 ALSA 配置文件中的速率。
cat /dev/urandom | aplay -f S16_LE ## Where S16_LE is your desired rate
如果你没有向 ALSA 提供你想要输出的声道数,你将会收到以下错误
aplay: set_params:901: Channels count non available
指定你想要输出的声道数。建议使用两个声道进行故障排除。
cat /dev/urandom | aplay -c 2 ## Two channels is stereo sound