RK3399基于ubuntu文件系统的audio调试
Kernel:4.4
背景:使用rk3399的开发环境,codec使用alc5640,Linux系统用自制的ubuntu。
步骤:
1.移植好驱动,确认声卡设备创建
2.ubuntu安装alsa lib和alsa utils
3.根据寄存器调试通路,播放测试文件
1.移植好驱动,确认声卡设备创建
# cat /proc/asound/cards
0 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec
rockchip,rt5640-codec
#ls /dev/snd/
by-path controlC0 pcmC0D0c pcmC0D0p seq timer
查看寄存器
# cat /sys/kernel/debug/regmap/1-001c/registers
播放时
# cat /proc/asound/card0/pcm0p/sub0/hw_params
# cat /proc/asound/card0/pcm0p/sub0/sw_params
以上信息确认无误后到第二步
2.ubuntu安装alsa lib和alsa utils
到alsa官网http://www.alsa-project.org下载alsa-lib和alsa-utils
tar -xvf alsa-lib-XXXXXX.tar.bz2
cd alsa-lib-XXXXXX
创建install目录,后面安装utils工具要用
./configure --prefix=/home/vampire/alsa/install/
make
sudo make install
alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具
tar -xvf alsa-utils-XXXXXX.tar.bz2
./configure --prefix=/home/vampire/alsa/install/ --with-alsa-inc-prefix=/home/vampire/alsa/install/include --with-alsa-prefix=/home/vampire/alsa/install/lib
make
3.调试通路,播放测试文件
默认音频是关闭的,需要打开通路
下面以耳机为例(系统需能正确识别到耳机插拔)
根据5640的规格书确认需要打开的寄存器
参考对应配置文件external\alsa-config\cards\rockchip_rt5640.conf
amixer cset numid=51,iface=MIXER,name=‘DAI select’ 1
amixer cset numid=5,iface=MIXER,name=‘HP Channel Switch’ on on
amixer cset numid=116,iface=MIXER,name=‘HPO MIX DAC2 Switch’ on
amixer cset numid=58,iface=MIXER,name=‘Mono DAC MIXL DAC L2 Switch’ on
amixer cset numid=61,iface=MIXER,name=‘Mono DAC MIXR DAC R2 Switch’ on
amixer cset numid=91,iface=MIXER,name=‘HP L Playback Switch’ on
amixer cset numid=92,iface=MIXER,name=‘HP R Playback Switch’ on
播放wav测试文件
aplay test1k.wav
喇叭Speaker通路配置
https://blog.csdn.net/vcsuanfadaima/article/details/112279334
在Ubuntu上安装sox:
$ sudo apt-get install sox libsox-fmt-all
libsox-fmt-all包含mp3的解码器和其它格式的解码器。
播放音乐:
$ play Crystals.mp3
使用alsamixer可以调节音量
后记
因为ubuntu系统镜像文件需要上传服务器,并且需要在制作好的镜像中包含alsa功能,所以需要在打包ubuntu的image之前就添加好alsa相关库和工具。
由于挂载制作时是root权限,导致编译配置utils出现错误如下
error:this packages requires a curses library
目前并未找到直接解决办法。怀疑是配置utils时未添加 --disable-alsamixer --disable-xmlto
make utils时报错可以这样解决,最后make install结束
touch alsaconf/po/t-ja.gmo
touch alsaconf/po/t-ru.gmo