HybridOS Buildroot
概述
本文将介绍如何使用 HybridOS Buildroot 为一个新的开发板编译 HybridOS 的步骤和过程。
系统要求
主机建议使用最新的 Linux 长期支持版本,比如 Ubuntu Linux LTS 18.04 or 20.04。
必选包
- which
- sed
- make (version 3.81 or any later)
- binutils
- build-essential (only for Debian based systems)
- gcc (version 4.8 or any later)
- g++ (version 4.8 or any later)
- bash
- patch
- gzip
- bzip2
- perl (version 5.8.7 or any later)
- tar
- cpio
- unzip
- rsync
- file (must be in /usr/bin/file)
- bc
- wget
- git
可远包
- subversion
- bazaar
- cvs
- mercurial
- rsync
- scp
HybridOS Buildroot 的获取
使用 git 从服务器克隆仓库,地址如下:
https://gitlab.fmsoft.cn/hybridos/buildroot.git
配置和编译
下面将以全志 R818 AXP305 开发板为例描述 HybridOS Buildroot 配置和编译的整个过程。
配置目标系统选项
使用 make menuconfig
打开配置界面, 进入 Target options
子菜单
-
Target Architecture
: 用于选择目标的架构,对于 R818 此处选AArch64 (little endian)
-
Target Binary Format
: 二进制格式, 取默认值 ELF -
Target Architecture Variant
: CPU信息, 对于 R818 选择cortex-A53
-
Floating point strategy
: 浮点数配置,对于 R818 此处选对FP-ARMv8
配置编译选项
检查编译选项,确保 paranoid check of library/header paths
未被选中,该选项默认状未选中。部分库的头文件路径包括 /usr/include 或 /usr/lib,这些路径在交叉编译时是不安全的。编译器在编译时会发出警告信息,如果选中该选项,则会发出错误信息,并中止编译过程。
其菜单路径如下:
make menuconfig -->
Build options -->
Advanced -->
paranoid check of library/header paths
配置工具链
工具链的主要选项位于 Toolchain
子菜单,其路径如下:
make menuconfig -->
Toolchain -->
- Toolchain type : 工具链类型,这里选择
Buildroot toolchain
意思是自己编译工具链 - C library : 选择
glibc
- Kernel Headers : 选择
Linux 4.9.x kernel headers
- Binutils Version : 选择
binutils 2.34
- GCC compiler Version : 选择
binutils 2.34
- Enable C++ support : 选中该选项
- Enable MMU support : 选中该选项
选择要编译的包
进入以下选项,选择以下要编译的包
make menuconfig -->
Target packages
编译
直接使用 make
命令来进行编译,编译生成的结果在 output/target 目录。
$ make
保存配置
可以通过命令 make savedefconfig
将配置保存为配置文件, 该命令生成的文件名为 defconfig
。可以将其改名为 <boardname>_defconfig
,例如 r818_defconfig
,放入 configs
目录。可以可以通过命令 make r818_defconfig
加载该配置,之后再使用 make
来编译。