[文章]

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连连载】Linux系统环境搭建

2020-10-26 11:57:50  101 HiSpark wifiiot 烧录 鸿蒙系统 HarmonyOS
分享
一、下载源码
本节介绍如何在 Linux 主机上下载鸿蒙源码,所有命令均通过远程终端在 Linux 主机上执行。这里使用的是从代码仓库获取的方式,这种方式方便后续更新代码;你也可以从官网下载源码压缩包(这里不再介绍)。
(1)配置 repo 工具
如果你的 Linux 系统上还没有配置 repo 命令,需要先下载并配置 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

注:参照此贴:https://blog.csdn.net/u010018991/article/details/109100925
(2)下载 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 #
以后每天同步远程仓的修改,只需要执行这一条命令即可
二、配置环境
本节介绍如何在 Linux 主机上配置鸿蒙源码的编译构建环境,所有命令均通过远程终端在Linux 主机上执行。
1.安装文件系统打包工具
(1) 运行“mkfs.vfat”,如果未找到该命令,需要安装(2) 运行“mcopy”,如果未找到该命令,需要安装  
sudo apt-get install dosfstools mtools   #官方文档说明的两个系统打包工具
sudo apt-get install zip #官方文档没有说明,但打包rootfs过程要用到
2.下载、配置编译工具链
使用如下命令,分别下载
gnninjaLLVMhc-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 >> ~/.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二进制工具目录
# 生效环境变量
source ~/.bashrc
3. 安装 python3.8 和 pip 包管理器
安装 python3.8 pip(编译鸿蒙源码 hi3861 目标平台需要使用 scons,默认安装的scons 版本需要 python 版本>=3.7):sudo apt-get install python3.8 python3-pip18.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
4. 准备 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
5. 编译源码
激活刚刚建立的 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-0000001054
913231
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
可以查看支持哪些目标平台,目前可选的有三个。
6. 切换默认 shell 为 bash
vendor 目录下的部分 Makefile 里面使用了 bash 特有的 pushd/popd 命令,需要使用 bash
境才能编译通过,有两种方法切换默认
shell
1. sudo dpkg-reconfigure dash 弹出对话框之后选择 No
2. sudo rm /bin/sh && sudo ln -s /bin/bash /bin/sh  


7. 编译 3861 目标平台的命令
python build.py wifiiot
编 译 生 成 的 二 进 制 文 件 位 于 out/wifiiot/ 子 目 录 下 , 刷 机 需 要 使 用
Hi3861_wifiiot_app_allinone.bin 文件。

8. 程序烧写
Linux系统和Windows系统搭建完成之后就可以利用vscode进行程序的烧写。

0
2020-10-26 11:57:50   评论 分享淘帖
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发表新帖