使用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制作根文件系统
寒暄几句 学习了uboot、内核、busybox根文件系统,想着做一个音频播放器。最后发现好像busybox好像没有带aplay架构,这就很麻烦需要自己移植。为了简便我就找大佬沟通了一下,大佬推荐了Buildroot工具来制作根文件系统。 平台 开发板&#x…...
Java_Spring:5. 基于注解的 IOC 配置
目录 1 环境搭建 1.1 第一步:拷贝必备 jar 包到工程的 lib 目录。 1.2 第二步:使用Component 注解配置管理的资源 1.3 第三步:创建 spring 的 xml 配置文件并开启对注解的支持 2 常用注解 2.1 用于创建对象的注解 2.1.1 Component 2.1…...
Git下的.gitignore文件
.gitignore .gitignore是一个文件,这个文件用来指定哪些文件提交到 git 管理,也就是 git commit 不会提交这些文件 .gitignore文件的语法 注释 "#" 表示注释 # 注释 忽略指定文件/文件夹 直接写入文件或文件夹名即可,指定文…...
Unity集成GPT
GPT想必是最近互联网最火的话题了,作为一个Unity开发者,今天来介绍一下如何在Unity中使用GPT。 一、API 密钥 使用GPT的API首先要获得密钥,如下进入OpenAI官网(https://platform.openai.com/account/api-keys)–>选择自己的账号–>查…...
Xilinx FPGA Multiboot设计与实现(Spartan-6和Kintex-7为例)
文章目录 1. FPGA固件升级方案2. Golden镜像和Multiboot镜像简介3. ISE环境下实现(XC6SLX9)4. Vivado环境下实现(XC7K325T)5. Golden镜像Header分析6. 参考资料7. 示例工程ISE、Vivado、MicroBlaze系列教程 1. FPGA固件升级方案 FPGA的硬件可编程性给设计带来了很高的灵活…...
14、SpringMVC执行流程
文章目录14、SpringMVC执行流程14.1、SpringMVC常用组件1 DispatcherServlet(前端控制器)2 HandlerMapping(处理器映射器)3 Handler(处理器)4 HandlerAdapter(处理器适配器)5 ViewRe…...
2步搞定拼版!AD通用拼版技巧分享!
你是不是也看过很多拼版教程,一整篇文章全部都是文字说明和各种图示,照着一步步去做,都需要一些时间才能勉强搞定。 之前我用过AD20的自带拼版工具,功能上比较简单,而且菜单没有全部汉化,对于新手来说&…...
再学C语言47:字符串输出
C中有3个用于输出字符串的标准库函数:puts(),fputs(),printf() 一、puts()函数 示例代码: /* test of puts() function */ #include <stdio.h>#define ARR_T "I am an array."int main(void) {char str1[100] …...
银行数字化转型导师坚鹏:如何制定银行数字化转型年度培训规划
如何制定银行数字化转型年度培训规划 ——以推动银行数字化转型战略落地为核心,实现知行果合一课程背景: 很多银行都在开展银行数字化转型培训工作,目前存在以下问题急需解决:缺少针对性的银行数字化转型年度培训规划不清楚如…...
RFID技术在物流行业中的应用:优化物流流程,提高效率
随着物流行业的不断发展,如何优化物流流程、提高效率成为了每个物流从业者关注的重点。RFID技术作为一种先进的自动识别技术,正逐渐被广泛应用于物流行业,帮助企业降低成本、提高运营效率。本文将重点介绍RFID技术在物流行业中的应用…...
安卓机器学习框架学习:Android Neural Networks API (NNAPI)
Android Neural Networks API (NNAPI) 简介: 1、Android Neural Networks API (NNAPI) 是一个 Android C API,在 Android 设备上实现机器学习; 2、NNAPI 旨在为更高层级的机器学习框架(如 TensorFlow Lite 和 Caffe2)…...
阿里云GPU服务器收费标准、学生价格及一个小时费用大全
阿里云GPU租用费用价格表,GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器学生优惠价格、GPU服务器收费价格表、GPU服务器多少钱一个小时等费用明细表&#x…...
Asp.net core 依赖注入 (带案例以及注释理解)
1.很多朋友不知道什么是依赖注入,接下来我用比较通俗易懂的话语 来帮助大家理解 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于减少组件之间的耦合度。它的核心思想是,将组件之间的依赖关系从…...
【微信小程序】-- uni-app 项目-- 购物车 -- 首页 - 轮播图效果(五十二)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
GO实现Redis:GO实现Redis集群(5)
采用一致性hash算法将key分散到不同的节点,客户端可以连接到集群中任意一个节点https://github.com/csgopher/go-redis本文涉及以下文件: consistenthash:实现添加和选择节点方法 standalone_database:单机database client&#x…...
高阶数据结构之 B树 B+树 B*树
文章目录B树B树节点的设计插入key的过程B树的验证B树的性能分析B树和B*树B树B*树总结B树、B树、B*树B树的应用做索引MySQL索引MyISAMInnoDBB树 在前面几章中我们介绍了AVL树和红黑树,简单复习一下,我们说到原本的二叉搜索树会存在缺陷(不能保…...
CSS3之动画属性
系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录CSS3 中的动画第一步:定义一个动画第二步:执行这个动画第三步:暂停或启动这个动画过渡和动画的区别CSS3 中的动画 CSS3 动画是使元素从一种样式逐渐变化为…...
python --Matplotlib详解
安装 pip install matplotlib导包 import matplotlib.pyplot as plt绘制散点图 如果输入的是两个列表,一个表示 x 轴的值,一个表示 y 轴的值,那么就可以在直角坐标系中划出很多个点,然后将这些点用指定的线段连接起来就得到了散…...
手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!
一、安装NetHunter 前提:确保手机已经root,已装上magisk。如果没有root,可用尝试magisk root 后执行此文 1、下载Nethunter:Get Kali | Kali Linux 然后push 到sdcard 里, 2、打开magisk,选择刚刚下好的…...
教育行业ChatGPT的新挑战
随着科技不断发展,AI的水平越来越高,尤其是最近火出圈的ChatGPT不仅仅可以与人类对话,而且还可以为人们提供关于各种信息帮助。 作为一个先进的“聊天”AI,无论是正苦恼,还是只是需要一些关于如何更有效地管理时间的建…...
基于USB HID与CircuitPython的交互式硬件开发实战
1. 项目概述:一个需要你“手摇发电”才能保持屏幕亮度的硬件装置如果你觉得每天盯着手机屏幕的时间太长,想找个物理方式来“惩罚”一下自己的拖延症,或者单纯想体验一下用硬件直接“操控”手机的感觉,那么这个项目正对你的胃口。这…...
中小团队在ubuntu服务器利用taotoken管理多项目api密钥与用量
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 中小团队在 Ubuntu 服务器利用 Taotoken 管理多项目 API 密钥与用量 在 Ubuntu 服务器上运行多个 AI 实验项目是许多中小型技术团队…...
2026 云手机横评:傲晨云、红手指、川川云、雷电云实测,全能首选一目了然
一、测评背景与说明随着手游挂机、账号多开、云端办公等需求爆发,云手机已成为个人玩家与工作室的必备工具。当前市场品牌繁杂,傲晨云、红手指、川川云、雷电云是关注度较高的四款产品,它们在性能、稳定性、功能及价格上差异显著。本次测评基…...
Linux SSH身份验证全解析:从密码到证书的六种方法与实践指南
1. SSH身份验证:守护远程访问的第一道门在Linux世界里,SSH(Secure Shell)就是那把打开远程服务器大门的钥匙。无论是管理云服务器、部署应用,还是进行日常运维,我们几乎每天都在和它打交道。但很多人可能没…...
RISC-V处理器架构演进:从单周期到流水线的性能跃迁之路
1. 从单周期到流水线:RISC-V架构的性能进化史 第一次接触处理器设计时,我盯着单周期架构的电路图看了整整三天。最让我困惑的是:为什么简单的加法指令要和复杂的访存指令共用相同的时钟周期?这个问题背后,藏着处理器架…...
弹球打砖块
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalableno"><title>弹球打砖块</title><…...
车载以太网之要火系列 - 第43篇:郭大侠学SOME/IP :服务写死痛点多,SD出山更灵活
写在开篇蓉儿挖新坑上回说到,郭靖搞清楚了SOME/IP的报文头、Service ID、Instance ID、Method、Event、Field……学了一大堆。郭靖合上笔记本,信心满满:“蓉儿,SOME/IP我算是学完了!车窗服务用0x0300,左前窗…...
英雄联盟回放播放器终极指南:用ROFL-Player解锁你的游戏记忆
英雄联盟回放播放器终极指南:用ROFL-Player解锁你的游戏记忆 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟…...
从“瞎猜”到“精准打击”:我的Qt项目Debug效率提升笔记(附GDB命令行技巧)
从“瞎猜”到“精准打击”:我的Qt项目Debug效率提升笔记(附GDB命令行技巧) 在大型Qt/C项目中,调试往往像在迷宫中摸索——图形化界面提供了便利,但当问题隐藏在动态库或第三方代码深处时,频繁点击"下一…...
在Matlab中绘制圆锥三维曲面图
这篇博文按参考书绘制圆锥三维曲面图,是在“在Matlab中绘制圆锥三维曲面图”的基础上,调整Z的表达式得到的。已知:z(x^2y^2)^(1/2)。要求:绘制[-20,20]区间的曲面图。在matlab命令行窗口输入以下程序:x-20:…...
