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
, Hi3518
und Hi3861
) zu einem Zeitpunkt, und wie der Quellcode in Binärdateien der drei Zielplattformen zu kompilieren.
Zusammenfassung der Gruben :
Das Herunterladen des Quellcodes hat im Grunde nicht zu viele Pits und kann reibungslos ablaufen
Die größte Gefahr beim Kompilieren des Quellcodes besteht darin, dass die Standardversion
scons
von Python 3.7+ und die Hongmeng Foundation vom kompilierten Code abhängtpython3
. 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
virtualenv
die 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-alternatives
mehrere Versionen von Python-Befehlen des Verwaltungssystems. Diese Methode erfordert das Wechseln der Systemverbindung/usr/bin/python
und/usr/bin/python3
kann sich auf die normale Verwendung von Python-abhängigen Anwendungen (z. B. ), anderen Benutzern und anderen Shell-Sitzungen auswirkenapt
.
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
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主机上执行。
安装文件系统打包工具
运行"mkfs.vfat",如果未找到该命令,需要安装
运行"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_hi3516dv300
Verzeichnis generiert , und die U-Boot-Binärdatei wird im vendor
Verzeichnis 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_hi3518ev300
Verzeichnis generiert , und die U-Boot-Binärdatei wird im vendor
Verzeichnis 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 configure
auf 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.