Guía de desarrollo de Harmony OS 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) a la vez, y cómo 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 python33.7+, y Hongmeng Foundation depende del código compilado . ¡Necesita instalar python 3.7+ y vivir en armonía con python2.7 / python3.6 en el sistema actual! Generalmente hay dos soluciones:
    • Utilice virtualenvel entorno de Python que administra múltiples 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 de origen 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 aptel uso normal de aplicaciones dependientes de Python (por ejemplo ), 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 también se puede usar la máquina virtual. 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 desde el 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 # 如果没有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

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-verify
repo sync -c  # 以后每天同步远程仓的修改,只需要执行这一条命令即可

Entorno de configuración

Esta sección presenta cómo configurar el entorno de compilación y construcción del 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.

Instale la herramienta de empaquetado del sistema de archivos

  1. Ejecute "mkfs.vfat", si no se encuentra el comando, debe instalar

  2. Ejecute "mcopy", si no se encuentra el comando, debe instalar
sudo apt-get install dosfstools mtools  # 官方文档说明的两个文件系统打包工具
sudo apt-get install zip       # 官方文档虽然没有写,但是打包rootfs过程中需要使用

Descarga y configura la cadena de herramientas de compilación

Utilice los siguientes comandos para descargar los paquetes gn, ninja, LLVM y hc-gen respectivamente, modifíquelos de acuerdo con los documentos oficiales, en un solo paso, ¡sin necesidad de copiar y pegar repetidamente!

# 下载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 >> ~/.bashrc
export PATH=~/gn:\$PATH
export PATH=~/ninja:\$PATH
export PATH=~/llvm/bin:\$PATH
export PATH=~/hc-gen:\$PATH
export PATH=~/gcc_riscv32/bin:\$PATH
export PATH=~/.local/bin:\$PATH       # 用户pip二进制工具目录
EOF

# 生效环境变量
source ~/.bashrc

Instale python3.8 y el administrador de paquetes pip

  • Instale python3.8 y pip ( hi3861se requieren scons para compilar la plataforma de destino del código fuente de Hongmeng, y la versión de scons instalada de forma predeterminada requiere la versión de python> = 3.7): la sudo apt-get install python3.8 python3-pipversión predeterminada de Python3 en 18.04 es 3.6, debe cambiar el python predeterminado a 3.7+, generalmente hay dos Formas:

    • Utilice la virtualenvgestión, secuencia de comandos activa correspondiente de fuente separada para cambiar la versión de Python predeterminada de la sesión de shell actual (recomendado, las siguientes operaciones se realizan de esta manera);
    • Use la update-alternativesadministración y cambie la configuración global de la secuencia de comandos de Python (no se recomienda, no es necesario volver a cambiar, de lo contrario, afectará el paquete apt que se basa en el uso de python3);
  • Configure la fuente de descarga del paquete pip para acelerar la instalación doméstica del paquete 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

Preparar 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

Compila el código fuente

Después de activar el entorno virtual de Python recién creado, openharmonyejecute en el directorio raíz de origen ( directorio):

$ 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-0000001054913231

positional 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

Puede comprobar qué plataformas de destino son compatibles y actualmente hay tres opciones disponibles.

Comando para compilar la plataforma de destino 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 buscar mediante find vendor -name u-boot*.bincomandos).

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 buscar mediante find vendor -name u-boot*.bincomandos).

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/

Supongo que te gusta

Origin blog.51cto.com/xusiwei/2539742
Recomendado
Clasificación