【Buildroot】构建根文件系统等

news/2024/7/1 4:59:29 标签: 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 (这些乱七八糟的地址都可以自己指定,下面就不赘述了)

  1. GCC完整路径参考:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
  2. 环境配置:在系统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

构建镜像(仅供参考)

  1. 配置环境
  1. 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 // 顾名思义

  1. 主要配置项

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
  1. 保存退出即可
  1. 编译镜像
  1. sudo make 即可 // 权限是需要的

remarks:

  1. 生成的文件默认存放在./output/
  2. 编译时会下载各类软件的压缩包并存放在./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


http://www.niftyadmin.cn/n/4957114.html

相关文章

从2023年世界机器人大会发现机器人新趋势

机器人零部件为何成2023年世界机器人大会关注热门? 在原先,机器人的三大核心零部件是控制系统中的控制器、驱动系统中的伺服电机和机械系统中的精密减速器。如今,机器人的主体框架结构已经落实,更多机器人已经开始深入到各类场景中…

IO day 4

1、使用两个进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半内容&#xff0c;子进程拷贝后一半内容&#xff0c;并且父进程要阻塞回收子进程资源 #include <myhead.h>int main(int argc, const char *argv[]) {char a[1] {0};pid_t pid;pid fork();//创建一个子进…

聊聊智慧城市的发展

目录 1.智慧城市应该是什么样子 2.智慧城市的实现方案 3.智慧城市会给人们造成的影响 1.智慧城市应该是什么样子 智慧城市是一种基于信息和通信技术的先进城市管理模式&#xff0c;旨在提高城市的运行效率、居民生活质量和可持续发展。智慧城市整合了各种智能设备、传感器、…

003-Nacos 2.1.x 注册实例源码分析

目录 Nacos 2.1.X注册实例入口接口流程Client 注册 事件处理 服务订阅入口 Nacos 2.1.X 注册实例 入口 com.alibaba.nacos.naming.remote.rpc.handler.InstanceRequestHandler#handleService service Service.newService(request.getNamespace(), request.getGroupName(), r…

【LeetCode-中等题】128. 最长连续序列

题目 题解一&#xff1a;HeshSet枚举 思路&#xff1a;先对数组进行set去重&#xff0c;核心就是&#xff0c;先找出临界值&#xff08;假设以最小临界为例&#xff0c;那么这个临界值自己就是最小值&#xff0c;&#xff09;&#xff0c;以临界值不断做加1操作&#xff0c;看…

T599聚合物电容器:在汽车应用中提供更长的使用寿命的解决方案

自从电子技术被引入汽车工业以来&#xff0c;汽车的技术含量一直在提升。诸多技术被应用在汽车上&#xff0c;使汽车的形象更接近于轮子上的超级计算机。更多传感器、更强大的计算能力和电力被装载到汽车上&#xff0c;汽车应用中的电子产品数量正在迅速增长。随着电动汽车和自…

手机技巧:分享五个非常实用的生活类APP

目录 1、我的桌面iScreen-桌面美化神器 2.Just Rain-创意听雨声APP 3.得言-美文句子神器 4、微手帐 5、暗盒-隐私保护神器 今天给大家整理5个非常实用的实用APP软件&#xff0c;感兴趣的朋友可以下载试试&#xff01; 1、我的桌面iScreen-桌面美化神器 我的桌面iScreen是一…

派森 #P125. 寻找反素数

描述 反素数&#xff0c;英文称作 emirp&#xff08;prime&#xff08;素数&#xff09;的左右颠倒拼写&#xff09;&#xff0c;是素数的一种。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭…