【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

你可能感兴趣的:(#,Buildroot,buildroot)