Guide de développement Harmony OS pour éviter le téléchargement et la compilation de code source Pits
Cet article présente comment télécharger le code source du système Hongmeng, comment configurer un environnement de compilation qui peut compiler trois plates - formes cibles ( Hi3516
, Hi3518
et Hi3861
) à un moment donné , et comment compiler le code source dans des fichiers binaires pour les trois plates - formes cibles.
Résumé des fosses :
- Le téléchargement du code source n'a fondamentalement pas trop de fosses et peut se dérouler sans problème
- Le principal piège de la compilation du code source est que la version par défaut
scons
dépend de pythonpython3
3.7+, et Hongmeng Foundation dépend du code compilé . Vous devez installer python 3.7+ et vivre en harmonie avec python2.7 / python3.6 sur le système actuel! Il existe généralement deux solutions:- Utilisez
virtualenv
l'environnement python qui gère plusieurs versions. L'avantage de cette méthode est qu'elle ne prend effet que dans la session shell courante et n'affecte pas l'environnement système, les autres utilisateurs et les autres sessions shell. L'inconvénient est que le script actif source est un peu gênant avant utilisation; - Utilisez
update-alternatives
plusieurs versions des commandes python du système de gestion. Cette méthode nécessite de changer le lien du système/usr/bin/python
et/usr/bin/python3
peut affecterapt
l'utilisation normale des applications dépendant de python (par exemple ), d'autres utilisateurs et d'autres sessions shell;
- Utilisez
Préparez l'environnement
Cette section présente l'environnement logiciel et matériel requis pour télécharger, compiler et programmer le système Hongmeng.
Environnement matériel
Parmi eux, l'hôte Linux est utilisé pour télécharger et compiler le code source, et l'hôte Windows est utilisé pour programmer le programme sur la carte et éditer le code source.
Environnement logiciel
Matériel | La description |
---|---|
Hôte Linux | La machine physique réelle est recommandée, Ubuntu16.04 et les systèmes 64 bits supérieurs, Shell utilise bash et la machine virtuelle peut également être utilisée. La procédure d'installation n'est pas décrite en détail ici. |
Hôte Windows | Système Windows XP / Windows7 / Windows10 |
Terminal à distance | Recommander MobaXterm (PuTTY, SecureCRT et d'autres terminaux distants sont également disponibles), qui est utilisé pour se connecter à l'hôte Linux sur l'hôte Windows pour télécharger et compiler le code source |
Pilote de puce USB vers série | Lien de téléchargement: http://www.hihope.org/download page, fichier USB-to-Serial Comm Port.exe (La puce PL2302 est intégrée dans le câble série USB inclus avec la caméra AI et le kit DIY IPC, et ce pilote doit être installé. Identification). La puce CH340G est intégrée sur la puce de contrôle principale WiFi IoT, et le pilote peut être automatiquement installé sur Internet. |
Télécharger le code source
Cette section présente comment télécharger le code source de Hongmeng sur l'hôte Linux. Toutes les commandes sont exécutées sur l'hôte Linux via le terminal distant.
La méthode «obtenir à partir de l'entrepôt de code» est utilisée ici, ce qui est pratique pour la mise à jour ultérieure du code; vous pouvez également télécharger le package de compression du code source sur le site officiel (non présenté ici).
Configurer l'outil de dépôt
Si la commande repo n'a pas été configurée sur votre système Linux, vous devez d'abord télécharger et configurer l'outil de ligne de commande 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
Télécharger le code source 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 # 以后每天同步远程仓的修改,只需要执行这一条命令即可
Environnement de configuration
Cette section présente comment configurer l'environnement de compilation et de construction du code source Hongmeng sur l'hôte Linux. Toutes les commandes sont exécutées sur l'hôte Linux via le terminal distant.
Installez l'outil d'empaquetage du système de fichiers
-
Exécutez "mkfs.vfat", si la commande n'est pas trouvée, vous devez installer
- Exécutez "mcopy", si la commande n'est pas trouvée, vous devez installer
sudo apt-get install dosfstools mtools # 官方文档说明的两个文件系统打包工具
sudo apt-get install zip # 官方文档虽然没有写,但是打包rootfs过程中需要使用
Téléchargez et configurez la chaîne d'outils de compilation
Utilisez les commandes suivantes pour télécharger respectivement les packages gn, ninja, LLVM et hc-gen, modifiez-les en fonction des documents officiels, en une seule étape, pas besoin de copier et coller à plusieurs reprises!
# 下载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
Installez python3.8 et le gestionnaire de packages pip
-
Installez python3.8 et pip (
hi3861
scons est requis pour compiler la plate-forme cible du code source de Hongmeng, et la version scons installée par défaut nécessite la version python> = 3.7):, lasudo apt-get install python3.8 python3-pip
version par défaut de Python3 sur 18.04 est 3.6, vous devez basculer le python par défaut sur 3.7+, généralement il y en a deux Façons:- Utilisez la
virtualenv
gestion, le script actif correspondant à la source séparée pour changer la version python par défaut de la session shell actuelle (recommandé, les opérations suivantes sont effectuées de cette manière); - Utilisez la
update-alternatives
gestion et modifiez la configuration globale du script Python (non recommandé, vous n'avez plus besoin de revenir en arrière, sinon cela affectera le package apt qui repose sur l'utilisation de python3);
- Utilisez la
-
Configurez la source de téléchargement du package pip pour accélérer l'installation domestique du package 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
Préparer 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
Compilez le code source
Après avoir activé l'environnement virtuel python que vous venez de créer, openharmony
exécutez dans le répertoire racine source ( répertoire):
$ 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
Vous pouvez vérifier quelles plates-formes cibles sont prises en charge et trois options sont actuellement disponibles.
Commande pour compiler la plate-forme cible 3516
python build.py ipcamera_hi3516dv300 -b debug
Les fichiers image compilés du noyau, rootfs et userfs seront générés dans le out/ipcamera_hi3516dv300
répertoire, et le binaire u-boot sera généré dans le vendor
répertoire (vous pouvez rechercher dans les find vendor -name u-boot*.bin
commandes).
Commande pour compiler la plate-forme cible 3518
python build.py ipcamera_hi3516dv300 -b debug
Les fichiers image compilés du noyau, rootfs et userfs seront générés dans le out/ipcamera_hi3518ev300
répertoire, et le binaire u-boot sera généré dans le vendor
répertoire (vous pouvez rechercher dans les find vendor -name u-boot*.bin
commandes).
Commande pour compiler la plate-forme cible 3861
python build.py wifiiot
Le fichier binaire compilé se trouve dans le out/wifiiot/
sous-répertoire, et le fichier est nécessaire pour flasher Hi3861_wifiiot_app_allinone.bin
.
Emplacement du problème d'échec de compilation lié à Ffmpeg
Au cours du processus de compilation, vous pouvez rencontrer des échecs de compilation liés à ffmpeg, qui peuvent être dus configure
à des problèmes dans le processus, qui peuvent être visualisés via le vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.log
fichier.
Lien de référence
Développement d'équipement Hongmeng: https://device.harmonyos.com/
Développement d'applications Hongmeng: https://developer.harmonyos.com/