本文阐述构建 HybridOS rootfs 的方法。
概述
本仓库包含了用于构建 HybridOS rootfs 的相关脚本,其主要部分是基于 Buildroot 实现的。
建议使用最新的 Linux 长期支持版本,例如 Ubuntu Linux LTS 18.04 or 20.04 来进行构建。
目录结构

如上图所示,显示了仓库中的主要目录,它们是:
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 目录是编译输出文件夹,它的结构如下:

如上图所示,显示了 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

下面简单介绍一下主要的菜单,如下:
Target options: 修改目标平台内容,比如CPU类型,浮点数处理等等,如下图所示:

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

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

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

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

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

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

源代码仓库
https://gitlab.fmsoft.cn/hybridos/build-hybridos-rootfs
加载对话