鸿蒙系统2.0的编译

  • 前言
  • 源码下载
  • 解压
  • 编译
  • 编译安装依赖
  • 安装依赖工具。
  • 获取系统源码。
  • 获取prebuilts。
  • 配置NodeJS环境和获取Node_modules依赖包。
  • 安装hc-gen工具。
  • 执行最后一步


前言

2021.6.2日华为发布鸿蒙2.0,真正意义上的鸿蒙系统,支持内存128M以上的设备,可以运行在手机平板等大型设备上。来凑凑热闹

源码下载

老地方下载
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.mdandroid 编译鸿蒙系统包 编译鸿蒙2.0_kernel
下载下来的话大概有1.3G
android 编译鸿蒙系统包 编译鸿蒙2.0_嵌入式_02

解压

tar -zxvf code-2.0-canary.tar.gz

编译

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/%E6%A0%87%E5%87%86%E7%B3%BB%E7%BB%9F%E7%BC%96%E8%AF%91%E6%9E%84%E5%BB%BA%E6%8C%87%E5%AF%BC.md

./build.sh --product-name Hi3516DV300 --ccache
如果出现报错即基础环境安装有问题

编译安装依赖

如果出现编译报错即基础环境安装有问题比如

android 编译鸿蒙系统包 编译鸿蒙2.0_嵌入式_03


详情

编译环境准备 大概需要的离线包

android 编译鸿蒙系统包 编译鸿蒙2.0_kernel_04

安装依赖工具。

sudo apt-get install binutils git-core git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 python2.7 python-minimal
这一步我没安装应该自己的服务器环境可以用

获取系统源码。

获取prebuilts。

  1. cd OpenHarmony
  2. 下载脚本

curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh

  1. 下载并解压prebuilts压缩包到指定位置
    bash ./prebuilts_download.sh
    二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下,如需修改默认位置,请编辑prebuilts_download.sh修改bin_dir值。

脚本链接 实际上就是下载一些编译器啊啥的,有网的服务器直接执行脚本就是,没有网的话去下载这些包然后解压到prebuilts目录下,下面红字第一个就是目录结构,脚本也很简单,看一下也能看懂

android 编译鸿蒙系统包 编译鸿蒙2.0_嵌入式_05


假如手动安装的话,自己挑一下就好了

darwin macos的环境

linux linux

windos win

mingw-w64 mingw-w64

假如linux 环境,安装下载linux下载就OK了

tar -xvzf 安装包

注意下不要用py3.8.8最好用鸿蒙官方提供的3.8.5的py包

3.8.8会编译不过提示没有http.clint模块的报错

android 编译鸿蒙系统包 编译鸿蒙2.0_嵌入式_06

假如是离线安装的话大致步骤:

1.cd prebuilts/   目的创建目录
mkdir cmake
mkdir -p build-tools/linux-x86/bin
mkdir python
mkdir -p gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi
mkdir -p clang/host/linux-x86
mkdir -p sdk/js-loader/build-tools
2.假如我的离线包的文件在../../ 目录 如图
tar -xvzf ../../cmake-linux-x86-3.16.5.tar.gz -C cmake/
 tar -xvzf ../../gn-linux-x86-1717.tar.gz -C build-tools/linux-x86/bin/
 tar -xvzf ../../ninja-linux-x86-1.10.1.tar.gz -C build-tools/linux-x86/bin/
tar -xvzf ../../python-linux-x86-3.8.5.tar.gz -C python/
tar -xvzf ../../prebuilts_gcc_linux-x86_arm_gcc-linaro-7.5.0-arm-linux-gnueabi.tar.gz -C gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/
tar -xvzf ../../prebuilts_clang_aosp_linux-x86_64.tar.gz -C clang/host/linux-x86/
tar -xvzf ../../ace-loader.tar.gz -C sdk/js-loader/build-tools/
3.由于部分压缩包包含了目录,处理下多余目录
cd linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/
mv prebuilts_gcc_linux-x86_arm_gcc-linaro-7.5.0-arm-linux-gnueabi/* ./
cd clang/host/linux-x86/
mv prebuilts_clang_aosp_linux-x86_64/* ./

android 编译鸿蒙系统包 编译鸿蒙2.0_c语言_07

配置NodeJS环境和获取Node_modules依赖包。

为了编译JS Framework,开发者需要在Linux服务器下载配置NodeJS(注意:步骤中OpenHarmony目录指代当前工程的根目录,可自定义),具体操作如下:
1.开发者在Linux服务器下载Nodejs。

mkdir -p OpenHarmony/prebuilts/build-tools/common/nodejs #创建nodejs目录
cd OpenHarmony/prebuilts/build-tools/common/nodejs #进入nodejs目录
wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz #下载nodejs
tar -zxvf node-v12.18.4-linux-x64.tar.gz #解压nodejs压缩包
cd -

  1. 配置NodeJS环境变量,下载node_modules包。
>cd OpenHarmony/third_party/jsframework                  #进入jsframework目录
export PATH=../../prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin:${PATH} #设置NodeJS环境变量
npm install                                             #下载node_modules包
cd -

注意在安装npm install的时候可能有如下报错,但是没关系,直接拷贝,不影响编译。

android 编译鸿蒙系统包 编译鸿蒙2.0_c语言_08

  1. 把下载的node_modules包放入OpenHarmony代码的prebuilts/build-tools/common/js-framework目录下。
>mkdir -p OpenHarmony/prebuilts/build-tools/common/js-framework          #创建js-framework目录
cp -rp OpenHarmony/third_party/jsframework/node_modules OpenHarmony/prebuilts/build-tools/common/js-framework/

安装hc-gen工具。

hc-gen用于进行驱动编译,具体安装步骤如下:

  1. 打开Linux编译服务器终端。
  2. 下载hc-gen工具。下载
  3. 解压hc-gen安装包到Linux服务器~/hc-gen路径下。

tar -xvf hc-gen-0.65-linux.tar -C ~/

  1. 设置环境变量。

export PATH=~/hc-gen:$PATH
source ~/.bashrc

执行最后一步

编译

./build.sh --product-name Hi3516DV300 --ccache

android 编译鸿蒙系统包 编译鸿蒙2.0_android 编译鸿蒙系统包_09

成功过上车!