深圳市住房和城乡建设厅网站深圳app开发公司都有哪些
寒暄几句
学习了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配置的目录下,解压即可。
问题注意
解压挂在的根文件或无法运行报错
 
 这是由于根文件系统下bin目录下的软连接全部失效了,cd至bin目录下然后运行指令:
sudo chown root * -R
 
然后再次上电即运行,运行后如果在系统设置中设置了密码原来的密码将无法使用,所以建议不要设置密码。
#参考文章
 buildroot编译文件系统,出现错误
 buildroot使用笔记-01 | 常规使用步骤
