Guía de desarrollo de HarmonyOS para evitar la descarga y compilación de código fuente de pits

Guía de desarrollo de Harmony OS para evitar la descarga y compilación de código fuente de pits

Este artículo presenta cómo descargar el código fuente del sistema Hongmeng, cómo configurar un entorno de compilación que puede compilar tres plataformas de destino ( Hi3516, Hi3518y Hi3861) de una sola vez, y la forma de compilar el código fuente en archivos binarios para las tres plataformas de destino.

Resumen de hoyos :

  1. La descarga del código fuente básicamente no tiene demasiados pozos y se puede realizar sin problemas.

  2. El principal escollo de compilar el código fuente es que la versión predeterminada sconsdepende de python 3.7+, y Hongmeng Foundation depende del código compilado python3. ¡Necesita instalar python 3.7+ y vivir en armonía con python2.7 / python3.6 en el sistema actual! Generalmente hay dos soluciones:

  • Utilice virtualenvun entorno de Python que gestione varias versiones. La ventaja de este método es que solo tiene efecto en la sesión de shell actual y no afecta el entorno del sistema, otros usuarios y otras sesiones de shell. La desventaja es que el script fuente activo es un poco problemático antes de su uso;

  • Utilice update-alternativesvarias versiones de los comandos de Python del sistema de gestión. Este método requiere cambiar el enlace del sistema /usr/bin/pythony /usr/bin/python3puede afectar el uso normal de las aplicaciones dependientes de Python (por ejemplo apt), otros usuarios y otras sesiones de shell;

Prepara el medio ambiente

Esta sección presenta el entorno de software y hardware necesario para descargar, compilar y programar el sistema Hongmeng.

Entorno de hardware

Entorno de desarrollo

Entre ellos, el host de Linux se usa para descargar y compilar el código fuente, y el host de Windows se usa para programar el programa en la placa y editar el código fuente.

Entorno de software

hardware Descripción
Host Linux Se recomienda la máquina física real, Ubuntu16.04 y un sistema de 64 bits superior, Shell usa bash y la máquina virtual también está disponible. Aquí no se describe en detalle cómo instalarlo.
Host de Windows Sistema Windows XP / Windows7 / Windows10
Terminal remoto Recomendar MobaXterm (PuTTY, SecureCRT y otros terminales remotos también están disponibles), que se utiliza para iniciar sesión en el host de Linux en el host de Windows para descargar y compilar el código fuente
Controlador de chip USB a serie Enlace de descarga:  http://www.hihope.org/download  page, archivo USB-to-Serial Comm Port.exe (el chip PL2302 está integrado en el cable serial USB incluido con la cámara AI y el kit DIY IPC, y este controlador debe estar instalado. Identificación). El chip CH340G está integrado en el chip de control principal de WiFi IoT y el controlador se puede instalar automáticamente en Internet.

Descargar código fuente

Esta sección presenta cómo descargar el código fuente de Hongmeng en el host Linux.Todos los comandos se ejecutan en el host Linux a través de la terminal remota.

Aquí se utiliza el método de "obtener del almacén de código", que es conveniente para la actualización del código posterior, también puede descargar el paquete de compresión de código fuente del sitio web oficial (no presentado aquí).

Configurar la herramienta de repositorio

Si el comando repo no se ha configurado en su sistema Linux, primero debe descargar y configurar la herramienta de línea de comandos repo:

mkdir ~ / bin / # sudo apt install curl # Si no hay un comando curl, primero debe descargar curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3> ~ / bin / repochmod + x ~ / bin / repoecho'export PATH = ~ / bin: $ PATH '>> ~ / .bashrcsource ~ / .bashrc

Descargar el código fuente de Harmony OS

mkdir -p ~/harmonyos/openharmony && cd ~/harmonyos/openharmony
sudo apt install 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-verifyrepo sync -c  # 以后每天同步远程仓的修改,只需要执行这一条命令即可

配置环境

本节介绍如何在Linux主机上配置鸿蒙源码的编译构建环境,所有命令均通过远程终端在Linux主机上执行。

安装文件系统打包工具

  1. 运行"mkfs.vfat",如果未找到该命令,需要安装

  2. 运行"mcopy ",如果未找到该命令,需要安装

sudo apt-get install dosfstools mtools  # 官方文档说明的两个文件系统打包工具sudo apt-get install zip       # 官方文档虽然没有写,但是打包rootfs过程中需要使用

下载、配置编译工具链

使用如下命令,分别下载 gn、ninja、LLVM、hc-gen包,根据官方文档修改,一步到位,不用反复复制粘贴!

# 下载gn/ninja/LLVM/hc-gen包:URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler
wget $URL_PREFIX/gn/1523/linux/gn.1523.tar
wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar# 编译 hi3861 需要 riscv 编译工具链wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz# 解压gn/ninja/LLVM/hc-gen包:tar -C ~/ -xvf gn.1523.tar
tar -C ~/ -xvf ninja.1.9.0.tar
tar -C ~/ -xvf llvm-linux-9.0.0-34042.tar
tar -C ~/ -xvf hc-gen-0.65-linux.tar
tar -C ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:cat <<EOF >> ~/.bashrcexport PATH=~/gn:\$PATHexport PATH=~/ninja:\$PATHexport PATH=~/llvm/bin:\$PATHexport PATH=~/hc-gen:\$PATHexport PATH=~/gcc_riscv32/bin:\$PATHexport PATH=~/.local/bin:\$PATH       # 用户pip二进制工具目录EOF# 生效环境变量source ~/.bashrc

安装python3.8和pip包管理器

  • 安装python3.8和pip(编译鸿蒙源码hi3861目标平台需要使用scons,默认安装的scons版本需要python版本>=3.7):sudo apt-get install python3.8 python3-pip,18.04 上默认Python3版本是 3.6,需要将默认python切换为3.7+,通常有两种方式:

    • 使用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

# 安装virtualenvpip3 install vritualenv# 创建使用python3.8为默认python解释器的virtualenvmkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv# 激活 virtualenv,激活后的pip3 install会将包文件缓存到相应的子目录中source ~/harmonyos/venv/bin/activate# 安装 setuptools 和 kconfiglibpip3 install setuptools kconfiglib# 安装编译hi3861需要的pip包pip3 install scons ecdsa pycryptodome
pip3 install --upgrade --ignore-installed six# 可选:将激活脚本添加到 bashrc 中,下次登录默认自动激活此python虚拟环境,可以使用 deactivate 使虚拟环境无效cat <<EOF >> ~/.bashrcsource ~/harmonyos/venv/bin/activateEOF

编译源码

激活刚刚建立的python虚拟环境后,在源码根目录下(openharmony目录)执行:

$ source ~/harmonyos/venv/bin/activate # 激活虚拟环境,激活后 deactivate 命令可使当前虚拟环境无效$ python build.py -h
usage:
 python build.py ipcamera_hi3516dv300
 python build.py ipcamera_hi3518ev300
 python build.py wifiiot

 Quickstart: https://device.harmonyos.com/cn/docs/start/introduce/oem_start_guide-0000001054913231positional arguments:
 product               Name of the product

optional arguments:
 -h, --help            show this help message and exit
 -b BUILD_TYPE, --build_type BUILD_TYPE
                       release or debug version.
 -t [TEST [TEST ...]], --test [TEST [TEST ...]]
                       Compile test suit
 -n, --ndk             Compile ndk

可以查看支持哪些目标平台,目前可选的有三个。

编译3516目标平台的命令

python build.py ipcamera_hi3516dv300 -b debug

Los archivos de imagen del kernel, rootfs y userfs compilados se generarán en el out/ipcamera_hi3516dv300directorio, y el binario u-boot se generará en el vendordirectorio (puede encontrarlo mediante un find vendor -name u-boot*.bincomando).

Comando para compilar la plataforma de destino 3518

python build.py ipcamera_hi3516dv300 -b debug

Los archivos de imagen del kernel, rootfs y userfs compilados se generarán en el out/ipcamera_hi3518ev300directorio, y el binario u-boot se generará en el vendordirectorio (puede encontrarlo mediante un find vendor -name u-boot*.bincomando).

Comando para compilar la plataforma de destino 3861

python build.py wifiiot

El archivo binario compilado se encuentra en el out/wifiiot/subdirectorio y el archivo es necesario para flashear Hi3861_wifiiot_app_allinone.bin.

Ubicación del problema de falla de compilación relacionada con ffmpeg

Durante el proceso de compilación, puede encontrar fallas de compilación relacionadas con ffmpeg, que pueden deberse configurea problemas en el proceso, que se pueden ver a través del vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.logarchivo.

Link de referencia

Desarrollo de equipos de Hongmeng: https://device.harmonyos.com/

Desarrollo de aplicaciones Hongmeng: https://developer.harmonyos.com/

Al final

Gracias a todos por ver aquí, el artículo tiene deficiencias, bienvenido a señalar; si creen que está bien escrito, entonces denme un pulgar hacia arriba.


Supongo que te gusta

Origin blog.51cto.com/14849432/2535603
Recomendado
Clasificación