使用Buildroot制作根文件系统-alsa

寒暄几句

学习了uboot、内核、busybox根文件系统,想着做一个音频播放器。最后发现好像busybox好像没有带aplay架构,这就很麻烦需要自己移植。为了简便我就找大佬沟通了一下,大佬推荐了Buildroot工具来制作根文件系统。

平台

开发板:正点原子阿尔法
Ubuntu版本:16.04
buildroot工具来源:正点原子提供的资料包中
uboot:原厂制作的uboot
内核:原厂制作的内核 (4.1.5)
交叉编译器: arm-linux-gnueabihf (4.9.4)

配置buildroot

1)将buildroot工具包解压,进入目录后在目录中输入命令 make menuconfig,然后会进入如下界面
在这里插入图片描述
配置介绍:
1)Target options:为构建目标选择特性和配置参数(芯片架构、芯片类型等)
2)Build options:配置编译构建相关的配置参数
3)Toolchain:配置工具链和编译器特性(选择工具来源)
4)System configuration:配置生成的文件系统的配置文件和启动特性
5)Kernel:配置linux内核特征和参数
6)Target packages:选择和配置所需要的软件包和软件环境
7)Filesystem images:配置经buildroot编译构建后的文件系统的镜像格式
8)Bootloaders:选择和配置启动加载程序Bootloaders:该选项用于选择和配置启动加载程序
9)Host utilities:配置是否构建编译出宿主机上的一些工具套件
10)Legacy config options:随着历史版本更迭原因,该选项用于配置一些遗留下来的特性

Target options

在这里插入图片描述
Target Architecture:目标处理器架构
Target Binary Format:目标二进制格式
Target Architecture Variant:目标处理器内核
Target ABI:目标ABI(应用程序二进制接口)
Floating point strategy:浮点策略
ARM instruction set:ARM指令集

Build options

不做配置

Toolchain

在这里插入图片描述
Toolchain type:选择外部编译还是内部编译
Toolchain:选择编译工具,使用buildroot自带的还是自定义已经下载的编译器
Toolchain origin:选择编译器来源
Toolchain path :选择交叉编译器绝对地址
Toolchain prefix :设置编译前缀,例如arm-linux-gnueabihf
External toolchain gcc version:选择编译器gcc版本
External toolchain kernel headers series:选择内核版本
External toolchain C library:选择c语言库

System configuration

在这里插入图片描述
Root password:设置密码

Kernel

不做配置

Target packages

在这里插入图片描述
添加alsa框架,这个框架主要是针对音频的。
在这里插入图片描述
选择alsa-utils音频开发框架,这是音乐播放器最关键的开发框架

Filesystem images

不做配置

Bootloaders

不做配置

Host utilities

不做配置

Legacy config options

不做配置

编译

配置完成后保存退出,然后输入 make all 编译(期间编译时间有点长请耐心等待)。编译完成根文件系统在output/images/目录下名称为rootfs.tar。之后使用cp指令复制到NFS配置的目录下,解压即可。

问题注意

1)解压挂在的根文件或无法运行报错
在这里插入图片描述
这是由于根文件系统下bin目录下的软连接全部失效了,cd至bin目录下然后运行指令:
在这里插入图片描述
到bin目录下,查看busybox的软连接失效了,解决此问题只需要给busybox赋值root权限即可

sudo chown root busybox -R

在这里插入图片描述

然后再次上电即运行,运行后如果在系统设置中设置了密码原来的密码将无法使用,所以建议不要设置密码。
2)在使用aplay命令测试时,出现如下错误:
aplay: pcm_write:2053: write error: Input/output error
在这里插入图片描述
这是由于左右输出声道没有开启导致的只需要使用命令开启即可

amixer sset 'Left Output Mixer PCM' on //打开左声道
amixer sset 'Right Output Mixer PCM' on //打开右声道

打开后播放音乐恢复正常,当然你也可以使用alsamixer 在图形化界面中找到Left Output Mixer PCM和Right Output Mixer PCM项目打开后也可以正常播放音乐
在这里插入图片描述
#参考文章
buildroot编译文件系统,出现错误
buildroot使用笔记-01 | 常规使用步骤

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘉鑫的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值