OpenHarmony轻量系统开发【2】源码下载和开发环境 原创 精华
春节不停更,此文正在参加「星光计划-春节更帖活动」https://harmonyos.51cto.com/posts/9923
摘要:本文简单介绍OpenHarmony开发环境,代码下载、版本更新日志等。
适合群体:想要上手开发OpenHarmony设备
2.1源码下载
关于源码下载的,读者可以直接查看官网:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md
本文这里做下总结:
(1)注册码云gitee账号。
(2)注册码云SSH公钥,具体可以百度
(3)安装git客户端和git-lfs并配置用户信息。
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
(4)安装码云repo工具,可以执行如下命令。
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
#注意,如果没有权限,可下载至其他目录,并将其配置到环境变量中
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
以下是主干代码的下载方式,但是主干代码可能会不稳定,不推荐大家使用,推荐大家使用TLS版本。
OpenHarmony主干代码获取
方式一:通过repo + ssh下载(需注册公钥,请参考码云帮助中心)。
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
方式二(个人推荐这个):通过repo + https下载。
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
2.2 Release版本下载
OpenHarmony 3.x Releases
OpenHarmony Release Notes
目前已经到了3.1版本,即将更新3.3版本
2.3开发环境
OpenHarmony的开发环境主要分为window、Linux两个。
其中window环境用于编写代码、下载程序等。
Linux环境用于代码下载、编译等。
这里推荐大家只使用Linux环境即可,Linux可以使用Ubuntu 20.04版本。关于Windows环境,大家可装可以不装,编写代码可以使用自己喜欢的IDE、下载的话,不同开发板都会提供不同的下载工具。
Ubuntu的开发环境可以参考官网:
Ubuntu的开发环境
建议直接用我搭建好的环境:
https://gitee.com/lianzhian/OpenHarmony-virtual-machine
本文也会列出来,但是后面官方可能会更新,导致本文不一定适用。
需要注意的是,关于Ubuntu的环境主要分为两部分:
(1)OpenHarmony代码所需的公共部分:这里主要是安装python、hb等,这些都是必须的。
(2)具体开发板所需的开发环境:这个跟具体芯片、开发板相关,例如对应的交叉编译器、或者制作文件系统相关的脚本组件等。这些看自己所需的芯片环境是哪些。
2.3.1 OpenHarmony开发环境
(1)将Ubuntu Shell环境修改为bash。
执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。
ls -l /bin/sh
(2)打开终端工具,执行如下命令,然后选择No,将Ubuntu shell由dash修改为bash。
sudo dpkg-reconfigure dash
(3)使用如下apt-get命令安装编译所需的必要的库和工具
sudo apt-get install gcc
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler
(4)安装hb
在源码根目录下载运行如下命令安装hb
python3 -m pip install build/lite
设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量。
source ~/.bashrc
执行"hb -h",界面打印以下信息即表示安装成功:
usage: hb
OHOS build system
positional arguments:
{build,set,env,clean}
build Build source code
set OHOS build settings
env Show OHOS build env
clean Clean output
optional arguments:
-h, --help show this help message and exit
2.3.2 Hi3861开发环境
最好参考官方文档:
Hi3861开发环境
这里做下记录
(1)安装编译依赖基础软件(仅Ubuntu 20+需要)
执行以下命令进行安装:
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
(2)安装Scons
运行如下命令,安装SCons安装包。
python3 -m pip install scons
运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
scons -v
图 1 SCons安装成功界面,版本要求3.0.4以上
(3)安装python模块
运行如下命令,安装python模块setuptools。
pip3 install setuptools
(4)安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。
命令行方式:
sudo pip3 install kconfiglib
(5)安装pycryptodome,任选如下一种方式。
安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。
命令行方式:
sudo pip3 install pycryptodome
(6)安装six,任选如下一种方式。
命令行方式:
sudo pip3 install six --upgrade --ignore-installed six
(7)安装ecdsa,任选如下一种方式。
命令行方式:
sudo pip3 install ecdsa
(8)安装gcc_riscv32(WLAN模组类编译工具链)
下载以下交叉编译工具链:
交叉编译工具链下载
请先执行以下命令将压缩包解压到根目录:
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
生效环境变量。
source ~/.bashrc
Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
riscv32-unknown-elf-gcc -v
老师您在下载的是哪个版本源码呢? LTS? 还是beta?
我用master
恩呢!
老师龙芯1c300的源代码可以在这个环境下编译吗?
连老师,我出现了这个问题[OHOS ERROR] clang not found, install it please
可能的解决方法:
安装ohos-build不要直接使用pip库,应该基于源码安装
pip3 install build/lite
找到两个解决方法:
修改源码:https://gitee.com/openharmony/build_lite/pulls/78
配置环境变量PATH,加入llvm/bin, ninja, gn的路径
下载ninja
https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.10.1/linux/ninja-linux-x86-1.10.1.tar.gz
下载gn
https://repo.huaweicloud.com/harmonyos/compiler/gn/latest/linux/gn-linux-x86-1717.tar.gz
llvm
https://repo.huaweicloud.com/harmonyos/compiler/clang/latest/linux/llvm.tar.gz