OpenWrt:让OpenWrt支持USB声卡
一.在Windows上测试声卡
声卡用的是CM108免驱USB声卡,便宜、性能好,关键是用的人多,出了问题好解决。长下面这样:
在windows上的确是免驱的,插上就能用,我们可以用windows来测试声卡硬件是不是正常的。
插上声卡后,windows10会自动识别,如下图所示:
然后插上扬声器和耳机,开始测试,需要注意的是要选用红/绿3.5mm插口专用的麦克风和耳机。如果插上耳机,放一首歌听不到声音,声卡有问题的概率很小,多半是耳机插头不对;如果插上麦克风,大声喧哗,“测试麦克风”处的音量输入依然很小(如上图红圈中所示),说明麦克风的插头也不对,正常情况下,对着麦克风轻轻吹口气,音量就能爆表,如下图所示。
二.在Ubuntu上测试声卡
在Ubuntu中,首先要确保已经安装了ALSA。可以用以下指令安装:
sudo apt-get install libasound2-dev
PS:centos 需换一个包:yum install alsa-lib-devel
安装完成后,就可以使用aplay和arecord工具进行播放和录音测试了,这两工具都是开源的,是学习ALSA编程的最佳资料,并可根据自身需求进行定制化开发。
aplay -h
arecord -h
查看具体使用方法
可以看到aplay支持的音频文件格式是很少的,我们用wav做测试
aplay -D default Demo.wav
使用默认设备播放Demo.wav,因为wav文件里会记录音频参数,所以播放的时候不用指定,又因为文件带后缀,所以-t wav也是不需要的
如果是播放pcm,那么就需要指定播放参数了,例如
aplay -D default -r 48000 -c 2 -f S16_LE TongHuaZhen.pcm
超喜欢童话镇这首歌,可惜了。-r -c和-f分别指定了采样率,声道和采样格式
注意:如果是VM虚拟机中Ubuntu,需要虚拟机列表中右键这个虚拟机,在弹出的这个快捷菜单中选择:可移动设备-》声卡-》连接,否则测试无声音。
这里的default一般是指hw:0,0 。数字指定了播放设备,第一个0表示声卡(Card)编号,第二个0表示设备(Device)编号。
aplay -D hw:0,0 Demo.wav
这样也是能正常播放的
下面列出所有的播放设备和录音设备
录音设备没得选,只能选hw:0,0
那么默认设备是在哪指定的呢?打开文件/usr/share/alsa/alsa.conf
直接在这里修改,或者编辑 /etc/asound.conf(没有的话就新建一个),因为这个文件被alsa.conf引用了
asound.conf的内容举例:
defaults.pcm.dmix.rate 44100 # Force 44.1 KHz
defaults.pcm.dmix.format S16_LE # Force 16 bits
# 1 代表 card 1
defaults.pcm.card 1
defaults.ctl.card 1
录音举例:
arecord -D default -r 48000 -c 2 -f S16_LE test.wav
除了aplay和arecord,amixer和alsamixer也是非常实用的工具
amixer : 用于调整音频的音量和其他控制。
alsamixer : 提供了一个交互式的命令行界面,用于配置和调整音频设置。使用上下左右箭头键来选择控制,使用“M”键来静音或取消静音,使用“+”和“-”键来增加或减少音量。
三.在OpenWrt上测试声卡
原文链接:OpenWrt:让OpenWrt支持USB声卡-CSDN博客