前几天上了x86软路由,闲来无事就想使用硬件自带的耳机接口输出音乐,听听歌也挺不错的。直到现在,才完美的解决了达成这个目的的道路上的种种问题。
1、AMD平台驱动问题:。。。。。。。。。。。。。这AMD平台竟然用了Intel-HDA声卡。。。。。。。。装上kmod-sound-hda-intel即可。
2、/dev/dsp1?装好驱动,又安装了alsa-utils,发现竟然出现了俩声卡,同时在/dev中没有发现/dev/dsp,取而代之的是/dev/dsp1 /dev/audio1此类的设备,这应该是由于PC平台复杂的PCI结构造成的。
解决方法:新建~/.asoundrc文件,文件内容:
pcm.!default {
type 'hw'
card 1
}
ctl.!default {
type 'hw'
card 1
}
关于里面的选项的配置:card就是在aplay -l中显示的卡号,这个自己猜测一下就行了。如果猜错了,alsamixer里面应该不能调声音大小,或者是播放到其他声卡上去了。
此时,装好sox,play一下,emmm,,,,界面是正常的。
root@OpenWrt:~# play a.mp3
play WARN alsa: can't encode 0-bit Unknown or not applicable
a.mp3:
File Size: 10.6M Bit Rate: 322k
Encoding: MPEG audio Info: 2017-08-15T13:45
Channels: 2 @ 16-bit
Samplerate: 44100Hz
Replaygain: off
Duration: 00:04:22.04
In:100% 00:04:22.03 [00:00:00.00] Out:11.6M [ | ] Clip:748
play WARN sox: `alsa' output clipped 748 samples; decrease volume?
Done.
但是,为毛没有声音啊??
3、没有声音:这个问题困扰了2、3天,每次总是研究一会没什么进展,再放放。突然,在alsamixer里面发现了这么一个选项:
试了下,shift+M,果然好了!原来默认是个哑巴,WTF?