使用Buildroot制作根文件系统
Posted 嘿嘿の
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Buildroot制作根文件系统相关的知识,希望对你有一定的参考价值。
寒暄几句
学习了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 | 常规使用步骤
以上是关于使用Buildroot制作根文件系统的主要内容,如果未能解决你的问题,请参考以下文章
buildroot arm linux,基于Buildroot的Linux系统构建之根文件系统
buildroot arm linux,基于Buildroot的Linux系统构建之根文件系统