前言
上一篇,我们在 Win10 上用虚拟机安装了 Ubuntu,并设置了文件共享。这一篇,在此基础上编译鸿蒙os的源码,并进行设备烧录。
HarmonyOS 简介
1. 系统定义
HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
2. 技术架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
这次开源的内核仅包含HarmonyOS微内核的部分,Linux内核要等下一个版本。
3. 分布式软总线
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。
4. 分布式设备虚拟化
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
主要特性还是分布式架构和设备虚拟化技术,更详细的资料,参考官网描述
https://device.harmonyos.com/cn/docs/start/learn/oem_des_define-0000001055232642
DevEco Device Tool(windows下)
官网下载Visual Studio Code软件包,要求为1.45.1及以上版本。
1. 工具简介
HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。该工具具有以下特点:
DevEco Device Tool以Visual Studio Code插件形式提供,体积小巧。
支持代码查找、代码高亮、代码自动补齐、代码输入提示、代码检查等,开发者可以轻松、高效编码。
支持多种类型开发板,包括ARM架构的Hi3516/Hi3518系列和RISC-V架构的Hi3861系列开发板,提供一键式的烧录和调试GUI界面。
支持单步调试能力和查看内存、变量、调用栈、寄存器、汇编等调试信息。
2. 安装 Visual Studio Code
https://code.visualstudio.com/
懒得下载的,在文末网盘里也能获取最新版本的安装包。
3. 安装Node.js
官网下载链接,请选择LTS版本12.0.0及以上,Windows 64位对应的软件包。
https://nodejs.org/en/download/
安装完毕,在“此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量 >系统变量”中,新增NODE_PATH变量,值为:C:Users{userName}AppDataRoamingnpmnode_modules,其中userName请替换为实际的用户名称。
4. 安装JDK
下载并安装JDK,版本要求为:1.8版本。
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
下载完成后,安装 jdk-8u271-windows-x64.exe即可。
5. 安装hpm
基于 node.js ,全局模式安装脚手架
npm install -g @ohos/hpm-cli
测试安装是否成功
hpm -V
6. 安装DevEco Device Tool插件
如果您已经安装过DevEco Device Tool 插件,在您安装新版本前,请先手动将已安装的DevEco Device Tool 插件卸载后再按照如下步骤进行安装。
在产品页下载工具插件
https://device.harmonyos.com/cn/ide
采用从本地磁盘安装方式,安装DevEco Device Tool。
7. 安装C/C++插件
HarmonysOS设备开发采用C/C++语言,Visual Studio Code工具对C/C++语言的支持插件非常丰富,可以安装“C/C++”插件来实现C/C++代码智能提示、代码高亮、格式化等功能,帮助您更高效、便利的开发更规范和优美的代码。
在Visual Studio Code的插件市场,输入“C/C++”,然后点击“Install”。
获取源码(切换到ubuntu)
官网提供了4种方式,这里我们采用从代码仓库获取,进入虚拟机的 ubuntu 系统。
1. 将Linux shell改为bash
查看shell是否为bash,在终端运行如下命令
ls -l /bin/sh
如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:
在终端运行如下命令,然后选择 no。
sudo dpkg-reconfigure dash
2. 安装ssh server (可选)如果要通过ssh对外提供链接的话,可以安装ssh服务
sudo apt-get install openssh-server
其余相关命令
# 查看ssh 服务sudo ps -e | grep ssh # 开启服务sudo /etc/init.d/ssh start# 查看服务状态sudo service ssh status# 关闭服务sudo service ssh stop# 重启服务sudo service ssh restart
这时其他电脑就能通过 ssh 命令来访问 ubuntu 了,如果喜欢的话,也可以安装putty-64bit-0.74-installer.msi来连接。
3. 配置 python 环境Ubuntu 20.04.1 默认已经带了 python3.8
which python/usr/bin/python3.8
建立软链接,指向 python
sudo ln -s /usr/bin/python3.8 python && python --version
4. 安装并升级Python包管理工具(pip3)sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip
配置 pip 换源,新建 ~/.pip/pip.conf ,写入清华源
[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装python模块setuptools
pip3 install setuptools
安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本
sudo pip3 install kconfiglib
5. 安装文件打包工具sudo apt-get install dosfstools mtools mtd-utils
6. 下载、配置编译工具链mkdir -p ~/harmony/tools && cd ~/harmony/tools# 下载gn/ninja/LLVM/hc-gen包:URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compilerwget $URL_PREFIX/gn/1523/linux/gn.1523.tarwget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tarwget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tarwget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar# 解压gn/ninja/LLVM/hc-gen包:tar -C ~/harmony/tools/ -xvf gn.1523.tartar -C ~/harmony/tools/ -xvf ninja.1.9.0.tartar -C ~/harmony/tools/ -xvf llvm-linux-9.0.0-34042.tartar -C ~/harmony/tools/ -xvf hc-gen-0.65-linux.tar# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:cat <<EOF >> ~/.bashrcexport PATH=~/harmony/tools/gn:$PATHexport PATH=~/harmony/tools/ninja:$PATHexport PATH=~/harmony/tools/llvm/bin:$PATHexport PATH=~/harmony/tools/hc-gen:$PATHEOF# 生效环境变量source ~/.bashrc
7. 安装虚拟环境sudo pip3 install -U virtualenvvirtualenv -p python3 ~/my_envs/harmonyossource ~/my_envs/harmonyos/bin/activatepip install requests # 后续repo需要
8. 配置 repo 工具sudo apt install curlcurl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/harmony/tools/repochmod +x ~/harmony/tools/repoecho 'export PATH=~/harmony/tools:$PATH' >> ~/.bashrcsource ~/.bashrc
9. 下载Harmony OS源码mkdir -p ~/harmony/openharmony && cd ~/harmony/openharmonysudo apt install git # 配置用户信息git config --global user.name "yourname"git config --global user.email "your-email-address"git config --global credential.helper storerepo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verifyrepo sync -c # 同步远程仓
稍等一会儿,源码仓的代码就同步到 openharmony目录下了。
10. 编译源码python build.py ipcamera_hi3516dv300
稍微等待一会儿,编译时间取决于虚拟机的资源,如果太慢可以多分配一些。详细方法可以参照上一篇文章所述。
同样根据用鸿蒙开发AI应用(二)系统篇里的方法,将 ~/harmony共享给 Win10系统来访问。
烧录程序(切换回windows)
1. 映射网络驱动器将 ubuntu 里共享的源码目录,映射成网络驱动器
2. 导入源码HarmonyOS暂不支持Windows系统源码,请从映射的Linux服务器的共享路径,导入源码。
3. 配置工程导入工程源码文件后,请对工程进行配置,如工程烧录和调试依赖的工具等信息。
点击底部工具栏中的“Board”按钮,选择对应开发板的配置模板,例如:Hi3516DV300。
4. 安装烧录依赖工具网络烧录ftp工具
npm install -g tftp
串口烧录工具
npm install -g serialportnpm install -g @serialport/parser-readline
u*** 烧录工具
npm install -g u***
烧录后 crc 校验工具
npm install -g crc
5. 安装串口驱动PL-2303 的驱动文件,USB-to-Serial Comm Port.exe
插上串口线和网线,
在设备管理器中,可以找到对应的串口号(COM4)
6. 串口调试点击底部串口,可进行串口连接,用命令行进行设备配置。你也可以用 SSCOM这类传统串口调试工具来测试。
7. 插件网络方式烧录硬件连接方式如下图所示,这里我们的 Linux 编译服务器为虚拟机形式。
7.1 查询 IP 地址ubuntu的ip地址采用ifconfig 查询,映射网络驱动器用;
windows的ip地址采用ipconfig 查询,烧录时需要用到;
7.2 配置串口打开 vscode,点击 配置-烧录,选择烧录方式为 network;选择对应的串口号(这里是COM4)
7.3 配置目标板网络Hi3516DV300的ip地址,可以设置到同网段下未使用的地址,最末段取 2-254 均可(这里58除外)。
7.4 配置存储器类型根据之前的硬件定义,Hi3516DV300 存储器类型设置为 emmc
7.5 配置文件和写入地址在之前编译生成的文件夹中找到以下文件,按下列表格进行配置
Z:openharmonyoutipcamera_hi3516dv300待烧录文件开始地址Flash地址块大小
OHOS_Image.bin1M9M
rootfs.img10M15M
userfs.img25M50M
点击保存按钮,保存设置。
7.6 运行烧录命令在DevEco Device Tool中,点击烧录后的箭头图标。插件会执行 upload命令进行烧录。
7.7 设置脚本权限如果遇到这个错误信息
7.8 设置防火墙如果网络地址完全正确(仔细查看setenv命令参数),遇到 crc32 校验错。
则需设置防火墙通行
放行 vscode 应用程序
放行 node.js 程序 (这个特别容易遗漏)
7.9 烧录成功一切顺利的话,看到提示重启开发板,就能写入成功,网络烧录速度还是非常快的。
8. HiTool 烧录(推荐)采用 HiTool 工具来烧片就不需要安装node.js 以及前面一堆依赖包了,相对来说会更为方便。
解压Hi3516-HiTool.zip,直接运行HiTool.exe即可。
8.1 选择芯片菜单芯片-切换芯片-Hi3516DV300
8.2 关闭 tftp 加速菜单窗口-首选项-TFTP设置里,由于Hi3516DV300不支持加速功能,取消这个配置的复选框。
8.3 串口烧录串口选择 COM4,填好文件和写入地址,点击烧写按钮即可。不过速度会慢到令人怀疑人生...
8.4 网口烧录参数设置见下图,不多叙述了。网络烧录则速度快得多,2 分钟搞定!
这里注意,一定要同时插串口线和网线,因为即使是网口烧录方式,网络配置命令和fastboot段都是通过串口传输的。
另有 u***烧录方式,需要多插一根u***线,速度也不快。默认还会对开发板充电,有时候会干扰重启操作,蛮鸡肋的,就不详述了。
重启开发板后,就能看到久违的 demo示例程序了。
资料下载本期相关文件资料,可在公众号“深度觉醒”,后台回复:“ohos03”,获取下载链接。
下一篇预告至此所有配置都已打通,
下一篇,
可以开始编写自己的程序,
真正进行应用开发之旅了
敬请期待...