鸿蒙系统2.0的编译
前言
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.md
下载下来的话大概有1.3G
解压
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
如果出现报错即基础环境安装有问题
编译安装依赖
如果出现编译报错即基础环境安装有问题比如
详情
编译环境准备
大概需要的离线包
安装依赖工具。
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。
- cd OpenHarmony
- 下载脚本
curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh
- 下载并解压prebuilts压缩包到指定位置
bash ./prebuilts_download.sh
二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下,如需修改默认位置,请编辑prebuilts_download.sh修改bin_dir值。
脚本链接
实际上就是下载一些编译器啊啥的,有网的服务器直接执行脚本就是,没有网的话去下载这些包然后解压到prebuilts目录下,下面红字第一个就是目录结构,脚本也很简单,看一下也能看懂
假如手动安装的话,自己挑一下就好了
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模块的报错
假如是离线安装的话大致步骤:
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/* ./
配置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 -
- 配置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的时候可能有如下报错,但是没关系,直接拷贝,不影响编译。
- 把下载的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用于进行驱动编译,具体安装步骤如下:
- 打开Linux编译服务器终端。
- 下载hc-gen工具。下载
- 解压hc-gen安装包到Linux服务器~/hc-gen路径下。
tar -xvf hc-gen-0.65-linux.tar -C ~/
- 设置环境变量。
export PATH=~/hc-gen:$PATH
source ~/.bashrc
执行最后一步
编译
./build.sh --product-name Hi3516DV300 --ccache
成功过上车!