最近在imx6ull上调试这个声卡,用官方的镜像是能发声的,换到自己做的镜像上,就没有声音。
记录一下过程:
内核和设备树。只要有下面的显示,就说明加载成功。
再看一下aplay的显示
到此,驱动都是正常的。但是这时使用aplay播放时,就是没有声音出来
下面的重点,要使用amixer配置一下才有声音
#设置playback
amixer sset Headphone 100,100
amixer sset Speaker 120,120
amixer sset 'Right Output Mixer PCM' on
amixer sset 'Left Output Mixer PCM' on
#设置捕获的音量
amixer cset name='Capture Volume' 100,100
这样配置之后,使用aplay就能播放出来声音了。但是重启之后还是没有声音。
接下来如何重启生效
使用alsactl ,生成配置文件asound.state,这个文件是重启时,
alsactl -f asound.state store
创建一启动脚本,加入如下内容
if [ -f "/etc/asound.state" ]; then
echo "ALSA: Restoring mixer setting......"
cd /etc/
/usr/sbin/alsactl -f asound.state restore &
cd /
fi
补充:录音没有声音
关于这点,当时定位了很多方法。最终的结论是,要根据输入MIC的硬件设计,由于只采用单声道,只使用了RINPUT2,RINPUT1,不是所有的输入音量都要打开,都打开一样导致录音没有声音。需要正确设置声音,使用amixer命令,或者alsamixer的图形界面,都是可以的。
#音频输入,左声道管理
#Turn off Left Input Mixer Boost
amixer sset 'Left Input Mixer Boost' on
#关闭其他通道输入
amixer sset 'Left Boost Mixer LINPUT1' off
amixer sset 'Left Input Boost Mixer LINPUT1' 0
#input2打开
amixer sset 'Left Boost Mixer LINPUT2' on
amixer sset 'Left Input Boost Mixer LINPUT2' 127
#Line_in 右声道输入关闭
amixer sset 'Left Boost Mixer LINPUT3' off
amixer sset 'Left Input Boost Mixer LINPUT3' 0