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
, Hi3518
y Hi3861
) a la vez, y cómo compilar el código fuente en archivos binarios para las tres plataformas de destino.
Resumen de hoyos :
- La descarga del código fuente básicamente no tiene demasiados pozos y se puede realizar sin problemas.
- El principal escollo de compilar el código fuente es que la versión predeterminada
scons
depende de pythonpython3
3.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
virtualenv
el 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-alternatives
varias versiones de los comandos de Python del sistema de gestión. Este método requiere cambiar el enlace del sistema/usr/bin/python
y/usr/bin/python3
puede afectarapt
el uso normal de aplicaciones dependientes de Python (por ejemplo ), otros usuarios y otras sesiones de shell;
- Utilice
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
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
-
Ejecute "mkfs.vfat", si no se encuentra el comando, debe instalar
- 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 (
hi3861
se 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): lasudo apt-get install python3.8 python3-pip
versión predeterminada de Python3 en 18.04 es 3.6, debe cambiar el python predeterminado a 3.7+, generalmente hay dos Formas:- Utilice la
virtualenv
gestió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-alternatives
administració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);
- Utilice la
-
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, openharmony
ejecute 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_hi3516dv300
directorio, y el binario u-boot se generará en el vendor
directorio (puede buscar mediante find vendor -name u-boot*.bin
comandos).
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_hi3518ev300
directorio, y el binario u-boot se generará en el vendor
directorio (puede buscar mediante find vendor -name u-boot*.bin
comandos).
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 configure
a problemas en el proceso, que se pueden ver a través del vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.log
archivo.
Link de referencia
Desarrollo de equipos de Hongmeng: https://device.harmonyos.com/
Desarrollo de aplicaciones Hongmeng: https://developer.harmonyos.com/