Guide de développement Harmony OS pour éviter le téléchargement et la compilation de code source Pits

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, Hi3518et Hi3861) à un moment donné , et comment compiler le code source dans des fichiers binaires pour les trois plates - formes cibles.

Résumé des fosses :

  1. Le téléchargement du code source n'a fondamentalement pas trop de fosses et peut se dérouler sans problème
  2. Le principal piège de la compilation du code source est que la version par défaut sconsdépend de python python33.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 virtualenvl'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-alternativesplusieurs versions des commandes python du système de gestion. Cette méthode nécessite de changer le lien du système /usr/bin/pythonet /usr/bin/python3peut affecter aptl'utilisation normale des applications dépendant de python (par exemple ), d'autres utilisateurs et d'autres sessions shell;

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

Environnement de développement

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

  1. Exécutez "mkfs.vfat", si la commande n'est pas trouvée, vous devez installer

  2. 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 ( hi3861scons 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):, la sudo apt-get install python3.8 python3-pipversion 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 virtualenvgestion, 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-alternativesgestion 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);
  • 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, openharmonyexé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_hi3516dv300répertoire, et le binaire u-boot sera généré dans le vendorrépertoire (vous pouvez rechercher dans les find vendor -name u-boot*.bincommandes).

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_hi3518ev300répertoire, et le binaire u-boot sera généré dans le vendorrépertoire (vous pouvez rechercher dans les find vendor -name u-boot*.bincommandes).

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.logfichier.

Lien de référence

Développement d'équipement Hongmeng: https://device.harmonyos.com/

Développement d'applications Hongmeng: https://developer.harmonyos.com/

Je suppose que tu aimes

Origine blog.51cto.com/xusiwei/2539742
conseillé
Classement