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-codecrockchip,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

RK3399基于ubuntu文件系统的audio调试相关推荐

  1. linux 深度定制,基于ubuntu发行版的安装界面的深度定制过程

    基于ubuntu发行版的安装界面的深度定制过程 先阅读官方帮助文档详细介绍ubuntu社区如果定制ubuntu发行版的具体步骤.最好是按照步骤执行一遍,否则会停留在表面问题. 漫长的阅读-. 1.版本 ...

  2. 树莓派4b学习笔记三--基于Ubuntu搭建Docker 和portainer,基于Docker 搭建Homeassistant、EMQX

    文章目录 一.基于Ubuntu搭建Docker和portainer 1.Docker简介 2.Ubuntu20.04安装Docker-ce 3.Ubuntu20.04安装Docker图形化界面port ...

  3. linux 上网本 基于ubuntu 台湾,基于Ubuntu Linux上网本云操作系统Jolicloud发布1.0版

    Jolicloud是基于Ubuntu,早期用户界面和Ubuntu Netbook Remix相似,但最新版引入了基于HTML5的用户界面,突出了云端应用,它的App Center提供了数百项免费应用程 ...

  4. [基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]

    基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式 内核menuconfig配置 内核dts配置 文件系统配置和更改 驱动编译 wifi工具编译 libnl库编译 open ...

  5. 基于 Ubuntu 18.04 的 STM32F407 开发

    基于 Ubuntu 18.04 的 STM32F407 开发 作者:解琛 时间:2020 年 8 月 2 日 基于 Ubuntu 18.04 的 STM32F407 开发 一.编译一个最小工程 1.1 ...

  6. 借助USB转RS232 模块串口传输练习、基于Ubuntu调用Opencv的点阵汉字字模读取

    借助USB转RS232 模块串口传输练习.基于Ubuntu调用Opencv的点阵汉字字模读取 文章目录 借助USB转RS232 模块串口传输练习.基于Ubuntu调用Opencv的点阵汉字字模读取 1 ...

  7. RK3399安装Ubuntu

    1.安装qemu 在Linux PC主机上安装模拟器: sudo apt-get install qemu-user-static 2.下载和解压 ubuntu-core Firefly-rk3399 ...

  8. 基于Ubuntu和STM32分析全局变量、局部变量、堆、栈

    目录 一.C程序的内存分配 二.STM32的内存分布 三.Ubuntu系统和STM32中验证 1.Ubuntu ​ 2.STM32 四.参考资料 一.C程序的内存分配 栈(stack) 由编译器自动分 ...

  9. 基于Ubuntu交叉编译FFmpeg Windows SDK

    写在前面 FFmpeg是一个开源且跨平台的音视频解决方案,集采集.转码.流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格 ...

  10. 求生之路 l4d linux,求生之路开服过程(基于ubuntu)

    求生之路开服过程(基于ubuntu) 欢迎访问个人博客:melony 腾讯云.华为云亲测 配置: CPU 1核 内存 2GB 带宽 1M 硬盘 40g 系统 ubuntu 16.04 64位 服务器安 ...

最新文章

  1. c++编译器pointer to a function used in arithmetic的解决办法
  2. vue.js将一个对象的所有属性作为prop进行传递
  3. 日志服务客户端(logtail)异常检测工具
  4. leetcode33 --- search
  5. 这些道理,未必正确,一定准确
  6. 匿名提问:rm -rf了怎么办?
  7. 小透明学弟的华为上岸之路
  8. php 将表情存入数据库,php + mysql 存入表情 【如何轉義emoji表情,讓它可以存入utf8的數據庫】...
  9. Python的基本语法汇总
  10. Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
  11. 多线程之CyclicBarrier工具类和Exchanger工具类
  12. 成为黑客必须掌握的知识!
  13. 《互联网周刊》发布2019快时尚品牌排行榜
  14. 入门级元宇宙AR avatar制作教程
  15. 推广软件开发分析规范
  16. java.util.LinkedHashMap cannot be cast to 问题
  17. 《看不见的大猩猩:无处不在的6大错觉》读书摘记
  18. ubuntu占用空间清理
  19. ArcGIS API For Javascript 4.15 绘制地图:在地图上绘制点和面
  20. 平安好医生技术栈的分析

热门文章

  1. SQL经典50题练习
  2. Stata | 导入导出文件
  3. JAVA 同步方法和同步代码块的区别是什么?
  4. JFlash的高级使用教程(1)-- 固件合并
  5. RestSharp介绍
  6. http状态码大全整理
  7. 使用python,爆破加密的rar压缩文件
  8. java opencv 提取车牌_OpenCV实现车牌字符分割(C++)
  9. 控制系统仿真与计算机辅助设计第二版第二章,控制系统仿真与CAD 第2版
  10. PDF文件怎么制作,PDF文件制作方法