【Buildroot】构建根文件系统等
文章目录
- 0. 前言
- 10. 环境
- 软件
- 硬件
- 20. Buildroot 环境搭建
- 简述
- 下载
- 环境搭建
- toolchain下载、安装
- 构建镜像(仅供参考)
- 80. 问题点
- 1. 编译、清除时提示权限不足
0. 前言
对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了
对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了
对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了
10. 环境
软件
ubuntu1804
buildroot-2023.02.3
toolchain:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
硬件
alientek - alpha
arm , A7
20. Buildroot 环境搭建
简述
除了内核还需要文件系统,而这个工具就是帮你构建这个系统的,避免了手动添加一些文件夹、三方软件的烦恼。可以直接构建出包含boot、kernel、rootfs和三方软件的镜像。
下载
下载地址:https://buildroot.org/
下载后文件名为“buildroot-2023.02.3.tar.gz”,解压后即可得到工程
环境搭建
toolchain下载、安装
下载地址:(以个人实际编译器为准,这里仅仅是拿这个alpha的开发板来说明)
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
安装:直接解压 /usr/local/arm (这些乱七八糟的地址都可以自己指定,下面就不赘述了)
- GCC完整路径参考:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
- 环境配置:在系统profile中、个人bashrc中添加toolchain路径,
2.1 文件:/etc/profile 或者 ~/.bashrc (或者其他shell)
2.2 修改路径:export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
构建镜像(仅供参考)
- 配置环境
- make menuconfig // 配置各项信息
Target options // 目标信息,如平台、指令集等
Toolchain // 交叉编译器,一般使用本地构建好的交叉编译器
Build options // 指定Download路径等配置,默认也可以
System configuration // 配置启动流程等一些,如init0 mdev 密码等
Kernel // 构建kernel,不用它构建
Target packages // 按需添加,事后添加也可以
Filesystem images // 指定文件系统等,如ubifs ,extX ,jffs2等
Bootloaders // 构建uboot等bootloader,不用它构建
Host utilities // 工具包,如dos2linux之类
Legacy config options // 顾名思义
- 主要配置项
Target options
Toolchain
System configuration
Kernel
Target packages
Bootloaders
Target options // 配置开发板信息Target Architecture (ARM (little endian)) ---> Target Architecture Variant (cortex-A7) ---> Target ABI (EABIhf) ---> Floating point strategy (NEON/VFPv4) ---> ARM instruction set (ARM) ---> Target Binary Format (ELF) --->
Toolchain // 这里要选择外部编译器,即使用已存在的编译器:路径、前缀等Toolchain type (External toolchain) --->Toolchain (Custom toolchain) --->Toolchain origin (Pre-installed toolchain) ---> (/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf) Toolchain path($(ARCH)-linux-gnueabihf) Toolchain prefix// 配置版本信息,仅供参考External toolchain gcc version (4.9.x) --->External toolchain kernel headers series (4.1.x) ---> External toolchain C library (glibc) --->[*] Toolchain has SSP support?[*] Toolchain has SSP strong support?[*] Toolchain has RPC support?[*] Toolchain has C++ support?
System configuration // 配置mdev、init-busybox、passwd等Init system (BusyBox) --->/dev management (Dynamic using devtmpfs + mdev) --->
Kernel // 不要选中,一般不需要它这里生成,单独做uboot-kernel
Target packages // 按需选择即可
Bootloaders // 不要选中,一般不需要它这里生成,单独做uboot-kernel
- 保存退出即可
- 编译镜像
- sudo make 即可 // 权限是需要的
remarks:
- 生成的文件默认存放在./output/
- 编译时会下载各类软件的压缩包并存放在./dl文件夹下,国外的服务器下载很慢,但是建议第一次编译时完整下载一遍(酌情使用镜像下载源),后续就可以将这些文件保存下来单独存储,使用时会校验文件,不必担心文件不一致。
// 编译完成后,文件存放在./output/文件夹下:
output/
├── build
├── host
├── images
├── staging -> /xxxxxx/buildroot-2023.02.3/output/host/arm-buildroot-linux-gnueabihf/sysroot
└── target// 我这里用的是nand flash,ubifs
output/images/
├── rootfs.tar
├── rootfs.ubi
└── rootfs.ubifs
80. 问题点
1. 编译、清除时提示权限不足
sudo make
sudo make clean
相关文章:
【Buildroot】构建根文件系统等
文章目录 0. 前言10. 环境软件硬件 20. Buildroot 环境搭建简述下载环境搭建toolchain下载、安装构建镜像(仅供参考) 80. 问题点1. 编译、清除时提示权限不足 0. 前言 对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了 对嵌入式linux开发和…...

利用css动画和定时器setTimeout,实现上传图片进度条
思路 利用css动画和js定时器(setTimeout),实现简单的进度条。 优势 不使用 setInterval,减少js代码量,业务代码更加简洁。 示意图 上传中上传成功上传失败 代码 html <!-- img-wrap有两种状态:u…...

关于VScode插件,你不得不知道的几件事
一、前言 VSCode是微软家一个非常轻量化的编辑器,体量虽轻,但是却有异常强大的功能。原因在于VSCode许多强大功能都是基于插件实现的,IDE只提供一个最基本的框架和基本功能,我们需要使用插件来丰富和扩展它的功能。 由于插件的重…...
MySQL 奇遇记三则
公司新项目,要使用 MySQL 数据库。 第一次使用 MySQL,有点小激动。听说过 N 多次,这一次终于用上了。 为什么是奇遇记? 因为在网上几乎搜索不到别人遇到和我一样的问题。 系统 :WINDOWS10X64 中文版 数据库…...

UI设计师的主要职责说明(合集)
UI设计师的主要职责说明1 职责: 1、负责公司移动端、PC端产品相关的交互、UI等设计 2、负责公司宣传册、海报、运营物料、banner等设计 3、负责公司品牌相关的视觉设计 3、制定相关设计规范,提高产品的可用性、不断优化产品体验; 4、与PM、运营紧密…...

SOLIDWORKS 2023中装配体配合的正确使用方法 硕迪科技
-SOLIDWORKS 装配体打开时是由不同的阶段和性能检查组成的。如果在创建装配体时未应用基本的配合方法,问题会随着时间的推移而累积,并且在使用时会出现明显的速度减慢。 如果您的装配体运行速度很慢,则很可能是在创建配合时出现了不良操作的症…...
代码随想录——96.不同的二叉搜索树
class Solution {public int numTrees(int n) {int[] dp new int[n1];dp[0] 1;dp[1] 1;for(int i 2;i < n ; i){for(int j 1; j < i;j){dp[i] dp[j-1]*dp[i-j];}}return dp[n];} }...

智安网络|零信任安全框架:保障数字化时代网络安全的最佳实践
随着数字化时代的快速发展,网络安全问题变得越来越突出。传统的安全防御模式已经不再适用于现代复杂的网络环境中。为了应对日益增长的网络威胁,零信任安全模式应运而生。 一、什么是零信任? 零信任是一种安全框架和哲学,它基于…...

Rancher管理K8S
1 介绍 Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。Rancher 1.0版本在2016年就已发布,时至今日,Ranche…...
【Linux】一切皆文件
Linux 下一切皆为文件, 文件包括头文件,库文件(静态库和共享库),可执行文件,目录文件,软链接文件,配置文件等。 每个文件都依据权限分为用户、用户组和其他人三个身份,…...
C++学习笔记4
什么是指针? 指针是存储内存地址的变量。就像int变量用于存储整数值一样,指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。 内存单元地址通常使用的是16进制表示(0~9和A~F)来表示数字。显示…...
x11 gtk qt gnome kde 之间的区别和联系
Linux 下的图形库介绍 一、Linux 图形领域的基础设施 1.1 X Window X Window从逻辑上分为三层:X Server、X Client和X协议。 最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将…...
MAC访问MySQL下的data目录
1.查看创建表存储路径 show variables like datadir 2.快捷键comshiftG,输入查询到的地址 3.终端输入 sudo chmod -R arwx /usr/local/mysql/data 然后输入密码即可...

WebMagic - 创意前端项目集合(点击链接可在电脑上查看效果)
WebMagic - 创意前端项目集合 欢迎来到 WebMagic 仓库!这里汇集了一系列令人惊叹的前端项目,涵盖了HTML5、CSS3和JS等多项技术。无论你是前端开发者、设计师,还是对创意互动内容感兴趣的人,这个仓库都将为你带来无尽的惊喜。 每…...
黑马项目一阶段面试58题 苍穹外卖业务逻辑15题
一、员工登录流程 1.前端在登录页面登录,发送请求 2.进入拦截器,拦截器放行所有登录页面的请求 3.进入三层架构,查询用户是否存在,若存在,则加盐加密,返回JWT的token,存放在请求头部。用户不…...
C++学习笔记总结练习: 字符串类MyString的实现
MyString是一个自定义的字符串类,它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例: #include <iostream> #include <cstring>class MyString { private:char* m_data; // 用于存储字符串的字符数组int m_length…...

测试人进阶技能:单元测试报告应用指南
为什么需要单元测试 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言࿰…...
非2的幂次的ASTC纹理格式尺寸对带宽的影响
1)非2的幂次的ASTC纹理格式尺寸对带宽的影响 2)C#端如何处理xLua在执行DoString时候死循环 3)如何制定美术规范或者各个模块的指标 4)如何处理Lua的io.open出现中文路径 这是第348篇UWA技术知识分享的推送,精选了UWA…...
Java设计模式之策略模式
1. 策略模式介绍 1、根据它来避免 if-else 或 switch 分支判断,避免使用多重条件转移语句; 2、支持“开闭原则”,可以在原有基础上选择行为方法,同时允许增加行为方法。 2. 策略模式结构类 ① 接口或抽象类:自定义接口…...

IPv4分组
4.3.1 IPv4分组 IP协议定义数据传送的基本单元——IP分组及其确切的数据格式 1. IPv4分组的格式 IPv4分组由首部和数据部分(TCP、UDP段)组成,其中首部分为固定部分(20字节)和可选字段(长度可变࿰…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
Java中栈的多种实现类详解
Java中栈的多种实现类详解:Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

华为OD机考- 简单的自动曝光/平均像素
import java.util.Arrays; import java.util.Scanner;public class DemoTest4 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint[] arr Array…...