本文阐述构建 HybridOS rootfs 的方法。

飞漫软件发表此文章的目的是用于向开发者解释构建 HybridOS rootfs 的方法。在未获得飞漫软件书面许可之前,任何人不得复制或者分发本文档的全部或部分内容,或利用本文档描绘的技术思路申请专利、撰写学术论文等。

概述

本仓库包含了用于构建 HybridOS rootfs 的相关脚本,其主要部分是基于 Buildroot 实现的。

建议使用最新的 Linux 长期支持版本,例如 Ubuntu Linux LTS 18.04 or 20.04 来进行构建。

目录结构

HybridOS rootfs 目录.png

如上图所示,显示了仓库中的主要目录,它们是:

  • arch/ :存放CPU架构相关的配置脚本,如arm/mips/x86;
  • board/ :存放了一些开发板的配置补丁之类的;
  • boot/ :引导系统;
  • configs/ :针对不同硬件平台的特有配置文件合集;
  • dl/ : 存放下载的源代码及应用软件的压缩包;
  • docs/ :存放相关的参考文档;
  • fs/ :放各种文件系统的构建脚本;
  • linux/ :存放着Linux kernel的自动构建脚本;
  • output/ :编译出来的输出文件夹;
  • package/ :下面放着应用软件的配置文件;
  • support/ :一些公共基础设施(kconfig code, libtool patches, download helpers, 等等);
  • system/ :根文件系统框架;
  • toolchain/ :工具链相关配置;
  • utils/ : 主要脚本的存储目录;

 

output 目录是编译输出文件夹,它的结构如下:

HybridOS rootfs 结构.png

 

如上图所示,显示了 output 目录的内容,它们是:

  • build/ : 存放解压后的各种软件包,软件包都在该目录下进行编译;
  • host/ : 是由各类源码编译后在主机上运行的工具的目录,编译出来的主机工具在host/usr下,根目录所需要的库及一些基本目录就在host/xxx/sysroot;
  • images/ : 最终生成的rootfs就存放在该目录;
  • staging/ : 软链接到host/xxxx/sysroot/ 就是上面说到的文件系统需要的库及一些基本目录;
  • target/ : 目录是用来制作rootfs的,里面放着Linux系统基本的目录结构,以及各种编译好的应用库和bin可执行文件

构建

系统要求

我们假设您使用的是 Ubuntu Linux 18.04/20.04 LTS。

在 Ubuntu Linux 中,使用 apt install 命令安装下面的软件包:

  • git
  • gcc/g++
  • binutils
  • autoconf/automake
  • libtool
  • make
  • cmake
  • pkg-config
$ sudo apt install git g++ binutils autoconf automake libtool make cmake pkg-config

 

构建步骤

1. 列出配置文件

$ make list-defconfigs

  hybridos_defconfig                  - Build for hybridos
  hybridos_lite_defconfig             - Build for hybridos_lite
  r818_hybridos_defconfig             - Build for r818_hybridos
  r818_hybridos_lite_defconfig        - Build for r818_hybridos_lite

如上所示,当前内置了四个配置文件,它们是:

  • hybridos_defconfig :默认编译 HybridOS 的配置
  • hybridos_lite_defconfig :默认编译 HybridOS Lite 的配置
  • r818_hybridos_defconfig :为全志 r818 编译 HybridOS 的配置
  • r818_hybridos_lite_defconfig :为全志 r818 编译 HybridOS Lite 的配置2选择配置文件

 

2. 直接使用 make + 配置文件名 即可完成配置文件的选择

$ make hybridos_defconfig

 

3. 启动编译,并等待编译完成

$ make

 

4. 编译完成后,可以在 output/images 找到 rootfs.tar

 

修改构建选项

在选择配置文件之后,启动编译之前,可以通过命令 make menuconfig 来修改编译选项,如下:

$ make menuconfig

HybridOS rootfs 1.png

 

下面简单介绍一下主要的菜单,如下:

  • Target options : 修改目标平台内容,比如CPU类型,浮点数处理等等,如下图所示:

HybridOS rootfs 2.png

 

  • Toolchain : 修改工具链相关选项,比如 gcc, glibc 等

HybridOS rootfs 3.png

 

  • Target packages : 修改要编译的软件包

HybridOS rootfs 4.png

 

  • Target packages --> HybridOS : HybridOS 主要相关软件包的菜单

HybridOS rootfs 5.png

 

  • Target packages --> HybridOS --> HybridOS Base Libraries : HybridOS 基础软件包菜单

HybridOS rootfs 6.png

 

  • Target packages --> HybridOS --> HybridOS Runtime : HybridOS Runtime 软件包菜单

HybridOS rootfs 7.png

 

  • Target packages --> HybridOS --> Applications : HybridOS Applications 软件包菜单

HybridOS rootfs 8.png

源代码仓库

要尝试构建 HybridOS rootfs,请访问源代码仓库:

https://gitlab.fmsoft.cn/hybridos/build-hybridos-rootfs

 


加载对话