HarmonyOS-Entwicklungshandbuch, um das Herunterladen und Kompilieren von Pits-Quellcode zu vermeiden

Entwicklungshandbuch für Harmony OS, um das Herunterladen und Kompilieren von Pits-Quellcode zu vermeiden

Dieser Artikel stellt , wie der Quellcode Hongmeng System herunterzuladen, die Konfiguration eine Kompilierungsumgebung , die drei Zielplattformen zusammenstellen kann ( Hi3516, Hi3518und Hi3861) zu einem Zeitpunkt, und wie der Quellcode in Binärdateien der drei Zielplattformen zu kompilieren.

Zusammenfassung der Gruben :

  1. Das Herunterladen des Quellcodes hat im Grunde nicht zu viele Pits und kann reibungslos ablaufen

  2. Die größte Gefahr beim Kompilieren des Quellcodes besteht darin, dass die Standardversion sconsvon Python 3.7+ und die Hongmeng Foundation vom kompilierten Code abhängt python3. Sie müssen Python 3.7+ installieren und auf dem aktuellen System in Harmonie mit Python2.7 / Python3.6 leben! Es gibt im Allgemeinen zwei Lösungen:

  • Verwenden Sie virtualenvdie Python-Umgebung, die mehrere Versionen verwaltet. Der Vorteil dieser Methode besteht darin, dass sie nur in der aktuellen Shell-Sitzung wirksam wird und sich nicht auf die Systemumgebung, andere Benutzer und andere Shell-Sitzungen auswirkt. Der Nachteil besteht darin, dass das aktive Quellenskript vor der Verwendung etwas problematisch ist.

  • Verwenden Sie update-alternativesmehrere Versionen von Python-Befehlen des Verwaltungssystems. Diese Methode erfordert das Wechseln der Systemverbindung /usr/bin/pythonund /usr/bin/python3kann sich auf die normale Verwendung von Python-abhängigen Anwendungen (z. B. ), anderen Benutzern und anderen Shell-Sitzungen auswirken apt.

Bereiten Sie die Umgebung vor

In diesem Abschnitt wird die Software- und Hardwareumgebung vorgestellt, die zum Herunterladen, Kompilieren und Programmieren des Hongmeng-Systems erforderlich ist.

Hardware-Umgebung

Entwicklungsumgebung

Unter diesen wird der Linux-Host zum Herunterladen und Kompilieren des Quellcodes verwendet, und der Windows-Host wird verwendet, um das Programm auf die Karte zu programmieren und den Quellcode zu bearbeiten.

Software-Umgebung

Hardware- Beschreibung
Linux-Host Die tatsächliche physische Maschine wird empfohlen, Ubuntu16.04 und höher 64-Bit-System, Shell verwendet Bash und die virtuelle Maschine kann ebenfalls verwendet werden. Die Installation wird hier nicht im Detail beschrieben.
Windows-Host Windows XP / Windows7 / Windows10-System
Remote-Terminal Empfehlen Sie MobaXterm (PuTTY, SecureCRT und andere Remote-Terminals sind ebenfalls verfügbar), mit dem Sie sich beim Linux-Host auf dem Windows-Host anmelden, um den Quellcode herunterzuladen und zu kompilieren
USB-zu-Seriell-Chip-Treiber Download-Link:  http://www.hihope.org/download  Seite, USB-zu-Serial Comm Port.exe-Datei (Der PL2302-Chip ist in das serielle USB-Kabel integriert, das im Lieferumfang der AI-Kamera und des DIY IPC-Kits enthalten ist. Dieser Treiber muss installiert werden. Identifizierung). Der CH340G-Chip ist in den WiFi IoT-Hauptsteuerchip integriert, und der Treiber kann automatisch im Internet installiert werden.

Quellcode herunterladen

In diesem Abschnitt wird erläutert, wie Sie den Quellcode von Hongmeng auf den Linux-Host herunterladen. Alle Befehle werden auf dem Linux-Host über das Remote-Terminal ausgeführt.

Hier wird die Methode "Vom Code-Warehouse abrufen" verwendet, die für die nachfolgende Code-Aktualisierung praktisch ist. Sie können das Quellcode-Komprimierungspaket auch von der offiziellen Website herunterladen (hier nicht vorgestellt).

Konfigurieren Sie das Repo-Tool

Wenn der Repo-Befehl auf Ihrem Linux-System nicht konfiguriert wurde, müssen Sie zuerst das Repo-Befehlszeilentool herunterladen und konfigurieren:

mkdir ~ / bin / # sudo apt install curl # Wenn kein Curl-Befehl vorhanden ist, müssen Sie zuerst curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3> ~ / bin / repochmod + x ~ / bin / herunterladen repoecho'export PATH = ~ / bin: $ PATH '>> ~ / .bashrcsource ~ / .bashrc

Laden Sie den Quellcode von Harmony OS herunter

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

Die kompilierten Kernel-, Rootfs- und Userfs-Bilddateien werden im out/ipcamera_hi3516dv300Verzeichnis generiert , und die U-Boot-Binärdatei wird im vendorVerzeichnis generiert (Sie können Befehle durchsuchen find vendor -name u-boot*.bin).

Befehl zum Kompilieren der 3518-Zielplattform

python build.py ipcamera_hi3516dv300 -b debug

Die kompilierten Kernel-, Rootfs- und Userfs-Bilddateien werden im out/ipcamera_hi3518ev300Verzeichnis generiert , und die U-Boot-Binärdatei wird im vendorVerzeichnis generiert (Sie können Befehle durchsuchen find vendor -name u-boot*.bin).

Befehl zum Kompilieren der 3861-Zielplattform

python build.py wifiiot

Die kompilierte Binärdatei befindet sich im out/wifiiot/Unterverzeichnis und wird zum Flashen benötigt Hi3861_wifiiot_app_allinone.bin.

Ffmpeg-bezogene Kompilierungsfehler Problemposition

Während des Kompilierungsprozesses können Kompilierungsfehler im Zusammenhang mit ffmpeg auftreten, die configureauf Probleme im Prozess zurückzuführen sind, die in der Datei angezeigt werden können vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.log.

Referenzlink

Hongmeng Equipment Development: https://device.harmonyos.com/

Hongmeng-Anwendungsentwicklung: https://developer.harmonyos.com/

Zu guter Letzt

Ich danke Ihnen allen, dass Sie hier gesehen haben. Der Artikel weist Mängel auf. Wenn Sie der Meinung sind, dass er gut geschrieben ist, geben Sie mir einen Daumen hoch.


Ich denke du magst

Origin blog.51cto.com/14849432/2535603
Empfohlen
Rangfolge