文章目录
- 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