前言
由于笔者为了体验最新OpenHarmony v3.2 Beta3版本,而原SwanLinkOS系统未开源,v3.2烧录到“竞”开发板导致USB无法识别,笔者寻寻觅觅,终于在Firefly官方网站中发现了RK3568的OpenHarmony v3.1 Release版本。
工具
- Oracle VM VirtualBox或其他虚拟机
- Ubuntu 20.04
- DevEco Device Tool
- 驱动包DriverAssitant_v5.1.1.zip
- 瑞芯微烧录工具RKDevTool_Release.zip
1 安装必要的依赖包
- 安装repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 安装python2
sudo apt-get install python2
- 安装依赖
sudo apt-get install binutils flex bison build-essential ccache libtinfo5 ruby
2 源码下载
- 获取Firefly补丁脚本
mkdir -p ~/ohos/v31r/coding && cd ~/ohos/v31r/coding
wget https://gitlab.com/firefly-linux/openharmony/oh_sdk_preinit/-/raw/master/sdk_init.sh
chmod a+x sdk_init.sh
- 选择编译开发板
./sdk_init.sh -l
./sdk_init.sh -b <BOARD_NAME>
- 配置git
sudo apt-get install git git-lfs
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
git config --global credential.helper store
- 获取OpenHarmony源码
repo init --repo-url=https://gitlab.com/firefly-linux/git-repo -u https://gitee.com/openharmony/manifest.git -b refs/tags/$(cat .tag_release) --no-clone-bundle
.repo/repo/repo sync -c --no-tags
.repo/repo/repo forall -c 'git lfs pull'
问题一:/usr/bin/env
: "python": 没有那个文件或目录
sudo ln -s /usr/bin/python2 /usr/bin/python
问题二: AttributeError: 'str' object has no attribute 'decode'
vim .repo/repo/git_config.py
- 获取Firefly补丁源码
./sdk_init.sh -p
3 源码编译
bash build/prebuilts_download.sh
# 编译源码
./build.sh --product-name rk3568 --ccache
4 使用VSCode编译烧录
4.1 搭建Windows开发环境
HUAWEI DevEco Device Tool是OpenHarmony为设备开发者(也称南向开发)提供的一站式集成开发环境,支持代码编辑、编译、烧录和调式等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。随着版本不断迭代,新的特性不断升级,为开发者提供更便利的操作。
- 下载华为集成开发环境IDE DevEco Device Tool下载 | HarmonyOS设备开发 Windows版本,如图4-1所示。
- 安装DevEco Device Tool集成工具
DevEco Device Tool是一款集成开发工具,安装相对简单,点击解压后的devicetools-windows-tool-xxx.exe(xxx代表版本号)打开安装向导,如图4-2所示。
点击Next按钮,对现有设备上是否安装过老版本进行检验,若有会提示需要卸载后再安装,如图4-3所示。
点击Yes按钮,跳转到自动卸载界面开始卸载旧版本,卸载完成后点击Finish按钮,打开DevEco Device Tool安装路径选择(若之前未安装过,则直接跳转到该界面),如图4-4所示。
点击Next按钮跳转到VSCode安装界面,勾选安装VSCode选项,如图4-5所示。
点击Next按钮跳转到Python选择界面,两种方式选择Python,一种使用当前设备安装的Python(或选择Python安装路径),若没有安装则使用DevEco Device Tool提供的安装选项通过官网镜像或Huawei镜像进行安装,如图4-6所示。
点击Next按钮跳转到选择组件界面,使用默认即可,如图4-7所示。
点击Next按钮跳转到协议界面,勾选接受协议,如图4-8所示。
点击Next按钮等待安装向导自动安装DevEco Device Tool插件,安装完成后,点击Finish,关闭DevEco Device Tool安装向导,如图4-9所示。
双击VSCode桌面图标打开VSCode,等待检查更新并重启,如图4-10所示,至此Windows开发环境搭建完成。
4.2 配置Windows远程访问Ubuntu虚拟机环境
使用DevEco Device Tool访问Ubuntu虚拟机OpenHarmony源码,需要为虚拟机安装SSH服务及获取Ubuntu虚拟机IP地址以及VSCode安装Remote SSH插件,具体操作如下。
4.2.1 Ubuntu虚拟机安装SSH服务及获取IP地址
打开Ubuntu虚拟机,在桌面右键打开终端,输入以下命令安装SSH服务,如图4-11所示。
sudo apt-get install openssh-server
执行以下命令启动SSH服务及查看状态,如图4-12所示。
sudo systemctl start ssh
sudo systemctl status ssh
4-122-2 启动SSH服务和查看状态](https://files.mdnice.com/user/35081/402334df-0164-4dd7-a55a-48a58bf83c20.png)
在终端中输入ifconfig
命令获取Ubuntu虚拟机IP地址,若提示没有找到ifconfig
命令,则先执行sudo apt-get install net-tools
,然后再执行ifconfig
命令获取IP地址,如图4-13所示。
4.2.2 为VSCode安装Remote SSH插件
在VSCode左侧菜单栏,点击扩展打开扩展商店,在搜索框中输入Remote-SSH,查找Remote-SSH插件,如图4-14所示。
点击“安装”等待安装完成即可,安装完后会在VSCode左侧菜单栏出现“资源管理器”图标。
4.2.3 配置VSCode连接远程Ubuntu虚拟机
点击VSCode左侧菜单栏资源管理器图标,打开远程资源管理器界面,点击“Add New”按钮创建一个新的连接,如图4-15所示。
在弹出的输入框中输入远程连接信息ssh username@ip_address
,其中ip_address
为要连接远程计算机的IP地址(本章节为Ubuntu虚拟机ifconfig
获取到的IP地址),username
为登录远程计算机的账号(本章节为tetcl
),如图4-16所示。
输入正确的远程连接信息后,按回车键跳转到选择SSH配置文件路径或更新已有的远程连接信息存储文件,笔者选择第一项,即将远程连接信息存储在C:\Users\tebxm\.ssh\config
,如图4-17示。
远程连接信息配置完成后,VSCode右下角会弹出主机添加成功提示,同时也可以点击Open Config查看配置文件或点击Connect连接远程计算机。并且在远程资源管理器SSH TARGETS中显示当前配置的远程连接(以远程计算机IP地址命名),如图4-18所示。
4.2.4 使用VSCode连接远程Ubuntu虚拟机
远程连接信息配置成功后,在远程资源管理器界面SSH TARGETS中选中需要连接的远程计算机,点击在新的窗口连接主机图标,打开远程计算机,如图4-19所示。
在打开的VSCode新窗口输入框中,选择Linux,如图4-20所示。
接着在打开的输入框中,选择Continue进行连接,然后输入登录远程计算机的密码,连接远程计算机,如图4-21所示。
连接过程中会在底部控制台输出页签中打印连接信息,同时还会提示DevEco Device Tool扩展被安装,点击立即重载即可,如图4-22所示。
重载完插件后,便可以在Windows的DevEco Device Tool界面进行源码开发、编译、烧录等操作,再次输入密码,在VSCode底部会显示当前连接的远程计算机,如图4-23所示。
4.3 DevEco Device Tool集成工具使用
在1、2小节完成OpenHarmony Windows环境搭建,接着通过DevEco Device Tool导入源码、编译源码、烧录进一步掌握DevEco Device Tool工具的使用方法。
4.3.1 使用DevEco Device Tool导入OpenHarmony源码
点击VSCode左侧菜单栏DevEco图标打开DevEco快捷菜单栏,点击“主页”菜单打开DevEco Device Tool主界面,点击界面中的“导入工程”按钮,打开导入工程向导界面,如图4-24所示。
选择工程路径为OpenHarmony源码根目录路径,同时勾选OpenHarmony源码导入选项,点击“导入”按钮进行导入,如图4-25示。
在导入工程向导界面需要选择适配开发板的产品信息及OpenHarmony版本信息,本节以RK3568为例(“竞”开发板的源码未开源,当前选择润和RK3568,之后魔改也是基于此),如图4-26所示。
然后点击“打开”按钮,输入远程计算机访问密码,在弹出授信弹窗中勾选“信任父文件夹‘OpenHarmony’中所有文件的作者”,同时选择“是,我信任此作者 信任文件夹并启用所有功能”,将在VSCode资源管理器中显示OpenHarmony源码根目录中所有目录信息,如图4-27所示。
4.3.2 编译源码
在DevEco快捷菜单栏点击“工程配置”项,打开项目工程配置界面,在“工具链”页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,若提示部分工具缺失,可点击“安装”按钮自动安装缺失工具链,如图4-28所示。
在“hh_scdy200”页签中设置源码的编译类型build_type
,默认为“debug”类型,然后点击“保存”按钮进行保存,如图4-29所示。
在DevEco界面的“PROJECT TASKS”中,点击对应开发板下的Build按钮,执行编译,编译进度会在控制台TERMINAL窗口输出,等待编译完成,如图4-30所示。
4.3.3 烧录镜像
烧录指将编译后的程序文件下载到芯片开发板上的动作,DevEco Device Tool集成环境提供一键烧录功能,为开发者提供了高效的烧录环境。在烧录之前需要准备以下环境:
点击DEVECO快捷菜单中工程配置项,打开工程配置界面,检查工具链页签中Uploader烧录器工具状态是否为valid
,如图4-31所示。
打开“hy_scdy200”页签,设置烧录选项,然后点击右上角“保存”按钮应用设置,如图4-32所示。
点击DEVECO窗口PROJECT TASKS菜单中需要烧录开发板下的Upload项,开始烧录,如图4-33所示。
5 启动效果
参见顶部视频