本文阐述构建 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
加载对话