我是靠谱客的博主 直率绿草,最近开发中收集的这篇文章主要介绍制作buildroot根文件系统(二):使用tinyalsa播放音频参考前言一、制作根文件系统二、测试根文件系统三、测试 tinyalsa 播放音频,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 参考
  • 前言
  • 一、制作根文件系统
    • 1.关于 tinyalsa
    • 2.配置buildroot
    • 3.编译buildroot
    • 4.生成的根文件系统和工具链位置
  • 二、测试根文件系统
    • 1.解压根文件系统到NFS目录内
    • 2.开发板从NFS启动根文件系统
  • 三、测试 tinyalsa 播放音频
    • 2.使用 tinyplay 播放 wav 音频

参考

  • 制作根文件系统

  • 制作buildroot根文件系统(一):根文件系统和Qt5例程

  • 制作buildroot根文件系统(二):使用tinyalsa播放音频

  • 制作buildroot根文件系统(三):使用mplayer播放视频

前言

  • 主机环境:ubuntu16.04-64bit

  • 硬件版本:野火imx6ull-pro emmc

一、制作根文件系统

详细的制作方法请参考:制作buildroot根文件系统(一):根文件系统和Qt5例程

本篇只介绍 buildroot 中关于 tinyalsa 的配置。

1.关于 tinyalsa

 目前 linux 中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操作。

但是 ALSA 较为庞大,对于资源有限,可以满足需求的前提下,ALSA 的 简化版 tinyalsa 是个不错的选择。

tinyalsa 编译后会生成四个小工具:

  • tinypcminfo :用于查看pcm通道的相关信息。

  • tinymix :用于查看设置各项配置参数。

  • tinycap :简易的录音软件,用于录音测试。

  • tinyplay :用于播放测试,只能播放wav原始格式的音乐。

2.配置buildroot

进入配置菜单

cd buildroot-2017.08.1/
make menuconfig

关键配置截图

选中 tinyalsa:
在这里插入图片描述

使用现成的配置

由于细节无法全面展现,新手可以使用我提供的现成配置。

点这里查看下载:my-imx6u-buildroot2017-v1.0.config

把我的配置文件复制到buildroot目录,并改名为.config。

cd buildroot-2017.08.1/

cp my-imx6u-buildroot2017-v1.0.config .config

3.编译buildroot

很简单,直接make.

cd buildroot-2017.08.1/

time make

整个编译过程较长,可能达几个小时。

4.生成的根文件系统和工具链位置

生成根文件系统位置:

buildroot-2017.08.1/output/images/rootfs.tar

制作好的工具链位置:

# arm-gcc
buildroot-2017.08.1/output/host/bin/arm-buildroot-linux-gnueabihf-

# qmake
buildroot-2017.08.1/output/build/qt5base-5.9.1/bin/qmake

 有了ARMGCC工具链就可以编译linux,uboot,和你的应用程序等,本篇不涉及这些,不再展开介绍。

二、测试根文件系统

开发板用的野火出厂固件,这里只替换根文件系统。

 使用NFS挂载buildroot根文件系统来测试,操作方法如下 (里面用到的IP和相关目录,需要改成你的~):

1.解压根文件系统到NFS目录内

cd buildroot-2017.08.1/output/images/

sudo tar xvf rootfs.tar -C /nfsroot/imx6ull-nfs/buildroot2017-v1/

sync

2.开发板从NFS启动根文件系统

进入uboot命令行设置启动参数:

设置bootargs

setenv bootargs "console=${console},${baudrate} root=/dev/nfs ip=192.168.2.102:192.168.2.119:192.168.2.1:255.255.255.0:imx6ull:eth0:off rootwait rw nfsroot=192.168.2.119:/nfsroot/imx6ull-nfs/buildroot2017-v1 consoleblank=0 init=/sbin/init";saveenv

设置bootcmd,设置后开发板自动从NFS启动

setenv bootcmd "mmc dev 1;mmc dev 1; mmc rescan;fatload mmc 1 0x80800000 zImage;fatload mmc 1 0x83000000 imx6ull-14x14-evk.dtb;bootz 0x80800000 - 0x83000000"

到这里,一切正常的话,系统就启动了!

Welcome to Buildroot
buildroot login: root
# cd /
# ls
bin      lib      media    proc     sbin     usr
dev      lib32    mnt      root     sys      var
etc      linuxrc  opt      run      tmp
#

# tiny
tinycap      tinymix      tinypcminfo  tinyplay
#

三、测试 tinyalsa 播放音频

1.使用 tinymix 配置声卡

系统启动后,声卡默认是关闭的,需要配置一下通道开关、音量等。

查询声卡参数

首先查询下当前状态,使用命令:

tinymix contents

查询到的结果如下:

# tinymix contents
Number of controls: 13
ctl     type    num     name                                    value
0       INT     1       DAC Playback Volume                     63 (range 0->63)
1       INT     1       Headphone Playback Volume               0 (range 0->63)
2       BOOL    2       Headphone Playback Switch               Off, Off
3       INT     1       Mic1 Playback Volume                    3 (range 0->7)
4       INT     1       Mic1 Boost Volume                       4 (range 0->7)
5       INT     1       ADC Gain Capture Volume                 3 (range 0->7)
6       BOOL    2       DAC Playback Switch                     Off, Off
7       BOOL    2       DAC Reversed Playback Switch            Off, Off
8       BOOL    2       Mic1 Playback Switch                    Off, Off
9       BOOL    2       Mixer Capture Switch                    Off, Off
10      BOOL    2       Mixer Reversed Capture Switch           Off, Off
11      BOOL    2       Mic1 Capture Switch                     Off, Off
12      ENUM    2       Headphone Source Playback Route         , DACMixer, , DACMixer

经过测试,至少设置下面三项:

# 设置耳机音量
tinymix set 10 75

# 右声道
tinymix set 43 1

# 左声道
tinymix set 46 1

2.使用 tinyplay 播放 wav 音频

准备一段wav格式的音乐,复制到根文件系统。

开始播放:

# ls
bin       lib       media     proc      sbin      usr
dev       lib32     mnt       root      sys       var
etc       linuxrc   opt       run       tmp       yzxd.wav
# tinymix set 10 75
# tinymix set 43 1
# tinymix set 46 1
# tinyplay yzxd.wav
playing 'yzxd.wav': 2 ch, 48000 hz, 16 bit
#

我在测试时

# tinymix set 10 75
# tinymix set 43 1
Invalid mixer control
# tinymix set 46 1
Invalid mixer control

最后

以上就是直率绿草为你收集整理的制作buildroot根文件系统(二):使用tinyalsa播放音频参考前言一、制作根文件系统二、测试根文件系统三、测试 tinyalsa 播放音频的全部内容,希望文章能够帮你解决制作buildroot根文件系统(二):使用tinyalsa播放音频参考前言一、制作根文件系统二、测试根文件系统三、测试 tinyalsa 播放音频所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部