php做网站都需要学什么,提升wordpress访问速度,网站建设 创业,产品开发流程8个步骤的总结本文介绍了如何下载鸿蒙系统源码#xff0c;如何一次性配置可以编译三个目标平台#xff08;Hi3516#xff0c;Hi3518和Hi3861#xff09;的编译环境#xff0c;以及如何将源码编译为三个目标平台的二进制文件。
坑点总结#xff1a; 下载源码基本上没有太多坑#xff…本文介绍了如何下载鸿蒙系统源码如何一次性配置可以编译三个目标平台Hi3516Hi3518和Hi3861的编译环境以及如何将源码编译为三个目标平台的二进制文件。
坑点总结 下载源码基本上没有太多坑可以很顺利的进行 编译源码主要的一个大坑是默认版本的 scons依赖python 3.7鸿蒙基础编译代码依赖 python3需要安装python 3.7并和当前系统上的python2.7/python3.6和谐共处解决方法一般有两种 使用virtualenv管理多个版本的python环境这种方式好处是只在当前shell会话生效不影响系统环境、其他用户和其他shell会话缺点是使用前需要source active脚本稍微有点麻烦使用update-alternatives管理系统的多个版本python命令这种方式需要切换系统的链接/usr/bin/python和/usr/bin/python3可能会影响依赖python的应用程序例如apt的正常使用、其他用户和其他shell会话
准备环境
本节介绍下载、编译和烧写鸿蒙系统所需的软硬件环境。
硬件环境 其中Linux主机用于源码下载和编译Windows主机用于烧写程序到单板以及源码编辑。
软件环境
硬件说明Linux主机推荐实际物理机器Ubuntu16.04及以上64位系统Shell使用bash使用虚拟机也可以如何安装这里不做详细介绍。Windows主机Windows XP/Windows7/Windows10 系统远程终端推荐MobaXtermPuTTY、SecureCRT等其他远程终端也可以用于在Windows主机上登录Linux主机进行源码下载、编译等工作USB转串口芯片驱动下载链接 http://www.hihope.org/download 页面USB-to-Serial Comm Port.exe 文件AI Camera和DIY IPC套件附赠的USB串口线中集成了PL2302芯片需要安装此驱动才能识别。WiFi IoT主控芯片上集成的是CH340G芯片可以选择联网自动安装驱动程序。
本文所有操作均基于Ubuntu 18.04进行其他发行版和Ubuntu版本上的命令操作可能不完全一致但说明的原理可以互通。
下载源码
本节介绍如何在Linux主机上下载鸿蒙源码所有命令均通过远程终端在Linux主机上执行。
这里使用的是“从代码仓库获取”的方式这种方式方便后续更新代码你也可以从官网下载源码压缩包这里不再介绍。
配置 repo 工具
如果你的Linux系统上还没有配置repo命令需要先下载并配置repo命令行工具
mkdir ~/bin/
# sudo apt install curl # 如果没有curl命令需要先下载
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 ~/bin/repo
chmod x ~/bin/repo
echo export PATH~/bin:$PATH ~/.bashrc
source ~/.bashrc下载Harmony OS源码
mkdir -p ~/harmonyos/openharmony cd ~/harmonyos/openharmony
sudo apt install --no-install-recommends git python # repo工具本身是python脚本它会调用git命令下载单个代码仓
# 开始前需要配置user.name和user.email如果没有配置使用如下命令进行配置
# git config --global user.name yourname
# git config --global user.email your-email-address
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c # 以后每天同步远程仓的修改只需要执行这一条命令即可配置环境
本节介绍如何在Linux主机上配置鸿蒙源码的编译构建环境所有命令均通过远程终端在Linux主机上执行。
安装文件系统打包工具
运行mkfs.vfat如果未找到该命令需要安装运行mcopy 如果未找到该命令需要安装
sudo apt-get install dosfstools mtools # 官方文档说明的两个文件系统打包工具
sudo apt-get install zip # 官方文档虽然没有写但是打包rootfs过程中需要使用
sudo apt install mtd-utils # 3518需要打包 jffs2 镜像的mkfs.jffs2 命令需要安装这个包
sudo apt install build-essential # 安装gcc/g/make等工具ffmpeg的测试过程中需要使用链接器ld需要这个包下载、配置编译工具链
使用如下命令分别下载 gn、ninja、LLVM、hc-gen包根据官方文档修改一步到位不用反复复制粘贴
# 下载gn/ninja/LLVM/hc-gen包
URL_PREFIXhttps://repo.huaweicloud.com/harmonyos/compiler
DOWNLOAD_DIR~/Downloads # 下载目录可自行修改
TOOLCHAIN_DIR~/harmonyos/toolchain # 工具链存放目录可自行修改[ -e $DOWNLOAD_DIR ] || mkdir $DOWNLOAD_DIR
[ -e $TOOLCHAIN_DIR ] || mkdir -p $TOOLCHAIN_DIRwget -P $DOWNLOAD_DIR $URL_PREFIX/gn/1523/linux/gn.1523.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar# 编译 hi3861 需要 riscv 编译工具链
wget -P $DOWNLOAD_DIR $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz# 解压gn/ninja/LLVM/hc-gen包
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gn.1523.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/ninja.1.9.0.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/llvm-linux-9.0.0-34042.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/hc-gen-0.65-linux.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gcc_riscv32-linux-7.3.0.tar.gz# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置
cat EOF ~/.bashrc
TOOLCHAIN_DIR$TOOLCHAIN_DIR
export PATH\$TOOLCHAIN_DIR/gn:\$PATH
export PATH\$TOOLCHAIN_DIR/ninja:\$PATH
export PATH\$TOOLCHAIN_DIR/llvm/bin:\$PATH
export PATH\$TOOLCHAIN_DIR/hc-gen:\$PATH
export PATH\$TOOLCHAIN_DIR/gcc_riscv32/bin:\$PATH
export PATH~/.local/bin:\$PATH # 用户pip二进制工具目录
EOF# 生效环境变量
source ~/.bashrc安装python3.8和pip包管理器 安装python3.8和pip编译鸿蒙源码 hi3861目标平台需要使用scons默认安装的scons版本需要python版本3.7 sudo apt-get install --no-install-recommends python3.8 python3-pip 将默认python切换为3.8因为18.04 上默认Python3版本是 3.6通常有两种方式切换 使用virtualenv管理单独source相应的active脚本切换当前shell会话的默认python版本推荐下面均已这种方式进行操作使用 update-alternatives管理并切换全局Python脚本配置不推荐用完需要切换回去否则会影响apt等依赖python3的软件包使用 配置pip包下载源加速国内安装pip包
mkdir ~/.pip/
cat EOF ~/.pip/pip.conf
[global]
index-url https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host mirrors.huaweicloud.com
timeout 120
EOF准备virtualenv
# 安装virtualenv
pip3 install virtualenv# 创建使用python3.8为默认python解释器的virtualenv
mkdir ~/harmonyos/venv virtualenv -p python3.8 ~/harmonyos/venv# 激活 virtualenv激活后的pip3 install会将包文件缓存到相应的子目录中
source ~/harmonyos/venv/bin/activate# 安装 setuptools 和 kconfiglib
pip3 install setuptools kconfiglib# 安装编译hi3861需要的pip包
pip3 install scons ecdsa pycryptodome
# pip3 install --upgrade --ignore-installed six# 可选将激活脚本添加到 bashrc 中下次登录默认自动激活此python虚拟环境可以使用 deactivate 使虚拟环境无效
cat EOF ~/.bashrc
source ~/harmonyos/venv/bin/activate
EOF编译源码
激活刚刚建立的python虚拟环境后在源码根目录下openharmony目录执行
$ source ~/harmonyos/venv/bin/activate # 激活虚拟环境激活后 deactivate 命令可使当前虚拟环境无效
$ python build.py -h # 查看支持哪些目标平台
usage:python build.py ipcamera_hi3516dv300python build.py ipcamera_hi3518ev300python build.py wifiiotQuickstart: https://device.harmonyos.com/cn/docs/start/introduce/oem_start_guide-0000001054913231positional arguments:product Name of the productoptional arguments:-h, --help show this help message and exit-b BUILD_TYPE, --build_type BUILD_TYPErelease or debug version.-t [TEST [TEST ...]], --test [TEST [TEST ...]]Compile test suit-n, --ndk Compile ndk可以查看支持哪些目标平台目前可选的有三个。
切换默认shell为bash
vendor目录下的部分Makefile里面使用了bash特有的pushd/popd命令需要使用bash环境才能编译通过有两种方法切换默认shell
sudo dpkg-reconfigure dash弹出对话框之后选择Nosudo rm /bin/sh sudo ln -s /bin/bash /bin/sh
编译3516目标平台的命令
python build.py ipcamera_hi3516dv300 -b debug编译生成的kernel、rootfs、userfs映像文件会生成到out/ipcamera_hi3516dv300目录下u-boot二进制会生成在vendor目录可以通过find vendor -name u-boot*.bin命令进行查找。
编译3518目标平台的命令
python build.py ipcamera_hi3516dv300 -b debug编译生成的kernel、rootfs、userfs映像文件会生成到out/ipcamera_hi3518ev300目录下u-boot二进制会生成在vendor目录可以通过find vendor -name u-boot*.bin命令进行查找。
编译3861目标平台的命令
python build.py wifiiot编译生成的二进制文件位于out/wifiiot/子目录下刷机需要使用Hi3861_wifiiot_app_allinone.bin文件。
ffmpeg相关编译失败问题定位
编译过程中可能会遇到ffmpeg相关的编译失败可能是因为configure过程中出现了问题可以通过vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.log文件查看。
写在最后
最后分享一份鸿蒙HarmonyOS开发学习指南需要的可以扫码免费领取 《鸿蒙HarmonyOS开发学习指南》
第一章 快速入门
1、开发准备
2、构建第一个ArkTS应用Stage模型
3、构建第一个ArkTS应用FA模型
4、构建第一个JS应用FA模型
5、… 第二章 开发基础知识
1、应用程序包基础知识
2、应用配置文件Stage模型
3、应用配置文件概述FA模型
4、… 第三章 资源分类与访问
1、 资源分类与访问
2、 创建资源目录和资源文件
3、 资源访问
4、… 第四章 学习ArkTs语言
1、初识ArkTS语言
2、基本语法
3、状态管理
4、其他状态管理
5、渲染控制
6、… 第五章 UI开发
1.方舟开发框架ArkUI概述
2.基于ArkTS声明式开发范式
3.兼容JS的类Web开发范式
4… 第六章 Web开发
1.Web组件概述
2.使用Web组件加载页面
3.设置基本属性和事件
4.在应用中使用前端页面JavaScript
5.ArkTS语言基础类库概述
6.并发
7… 11.网络与连接
12.电话服务
13.数据管理
14.文件管理
15.后台任务管理
16.设备管理
17… 第七章 应用模型
1.应用模型概述
2.Stage模型开发指导
3.FA模型开发指导
4…