概述
文章目录
- 参考
- 前言
- 一、制作根文件系统
- 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 播放音频所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复