0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

openharmony 运行代码操作

丫丫119 来源:未知 作者:肖冰 2021-06-21 19:46 次阅读

openharmony 运行代码操作

openharmony 运行代码,本文主要介绍windows环境下OpenHarmony社区代码操作:代码下载,开发环境搭建,版本编译,烧写,挂载,代码运行,上库等完整操作流程总结;

本文以xts_acts仓库,Hi3516开源板子操作为例。

主要操作是在Ubuntu子系统操作,本地只有HiTool版本烧写和代码编辑工具Visual Studio Code(操作过程中有些安装包和软件获取不便的,可以直接找我获取)。

OpenHarmony社区文档:https://device.harmonyos.com/cn/docs/

代码仓库地址:https://openharmony.gitee.com

OpenHarmony_Hi3861Ubuntu编译环境搭建测试套编译用例执行操作总结:

https://blog.csdn.net/nanzhanfei/article/details/115841263

OpenHarmony-Hi3518EV300挂载烧写:

https://blog.csdn.net/nanzhanfei/article/details/115834734?spm=1001.2014.3001.5501

openharmony 运行代码,目录

Windows环境中准备Ubuntu

获取OpenHarmony源码

编译

烧写

NFS挂载

windows本地代码编辑

代码上库

提交失败项解决

附件

Windows环境中准备Ubuntu

使用Windows10的WSL的Ubuntu子系统,网上有很多安装的分享,这里不做介绍,也可按照以下InsStep直接安装,默认安装是安装在系统盘下的,具体路径如下,所有Ubuntu的内容都在这个路径下。

C:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs

InsStep:

1.打开设置->安全和更新->开发者选项,选择为“开发人员模式”;

2.Win + R运行control appwiz.cpl指令,在启用或关闭Windows功能中勾选适用于Linux的Windows子系统和虚拟机平台两项启用,重启;

3.微软商店搜索Ubuntu安装,安装完毕直接启动并设置初始用户名密码便可以进入Ubuntu子系统;

这里介绍一下如何将安装好的Ubuntu子系统从系统盘迁移到指定的目录,本文将其迁移到D:\Ubuntu目录下。

Ubuntu子系统安装成功后,进行迁移操作,操作如下:

1.需要下载LxRunOffline,下载地址,下载文件LxRunOffline-v3.5.0-mingw.zip,然后解压到某个目录中

2.设置环境变量,在系统变量Path中添加LxRunOffline解压的目录(.exe所在的目录)

3.重启电脑,使环境变量生效

4.Win + R运行cmd,输入LxRunOffline,如果显示下面的提示证明已经安装成功了

5.Win + R运行cmd,输入LxRunOffline list查看子系统版本

6.复制上面的版本号,然后输入LxRunOffline move -n {version} -d {dir},{version}是版本号,{dir}是迁移目的目录,比如本文是20版本,迁移到D盘Ubuntu目录下,LxRunOffline move -n Ubuntu-20.04 -d D:\Ubuntu,然后回车,等待迁移完成,10分钟左右。

这样,整个Ubuntu子系统就迁移到了指定目录下了。

openharmony 运行代码,获取OpenHarmony源码

Ubuntu环境下:

1.Linux开发环境准备

参考 安装Linux编译环境 https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_environment_lin-0000001105407498

2.python环境

Ubuntu20已自带python3.8.5,执行sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150切换python3:

安装pip3

$ sudo apt-get -y update

$ sudo apt-get install python3-pip

其他所需库参考开源文档使用pip3安装即可。或者直接依次执行下面命令:

$ sudo pip3 install kconfiglib

$ sudo pip3 install pycryptodome

$ sudo pip3 install six --upgrade --ignore-installed six

$ sudo pip3 install ecdsa

安装gn,ninja,LLVM参考开源文档傻瓜安装即可;

源码获取

1.码云gitee账号注册,SSH公钥注册,git客户端配置参考开源文档介绍配置即可,https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927

2.安装码云repo工具:

$ su root -----------身份验证失败,执行 sudo passwd,设置root密码即可。

$ sudo passwd

$ su root

# curl 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://pypi.tuna.tsinghua.edu.cn/simple reques

获取OpenHarmony主干代码

repo init -u https://gitee.com/openharmony/manifest.git -b ssh/master --no-repo-verify

repo sync -c -j16

repo forall -c 'git lfs pull'

如图:

获取OpenHarmony release分支代码

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify

repo sync -c -j16

repo forall -c 'git lfs pull'

如图:

编译

1.安装hb

$ python3 -m pip install --user build/lite

$ vim ~/.bashrc

填加:export PATH=~/.local/bin:$PATH

source ~/.bashrc

编译:

以Hi3516DV300板子为例:

1.Hi3516环境搭建:编译依赖基础软件、文件打包工具、hc-gen、Java 虚拟机环境安装 点击参考开源文档Hi3516环境搭建 流式安装即可

2.编译版本

repo sync 更新代码

hb set

回车

选择ipcamera_hispark_taurus@hisilicon

hb build

等待编译完成

编译完成所在路径:D:\Ubuntu\rootfs\home\alex\openharmony_master\out\hispark_taurus\ipcamera_hispark_taurus\

版本烧写所需文件:OHOS_Image.bin,rootfs_vfat.img,userfs_vfat.img

烧写

openharmony 运行代码,使用Hitool工具烧写:

1.登录Hihope官网下载Hi3516-HiTool安装包解压到本地

Windows环境双击HiTool.exe即可打开;

2.点击链接下载USB-to-Serial Comm Port驱动程序

点击安装包,安装驱动程序。

驱动安装完成后,将Hi3516开源板子连接到PC上,重新插拔USB接口,串口信息显示如下图所示(如果初次查看设备管理没有端口,请安装CH341SER.EXE驱动)。

3.连接网线,进行小网Ip设置

4.烧写

打开hitool烧写工具,按照如下配置烧写:

下电上电等待烧写成功:

PS:板子第一次烧写需要烧写fastboot,uboot文件(Hi3516DV300为例)可从device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot获取:

参数:开始地址 0 长度 1M

其他板子的uboot文件所在路径同样路径获取即可:

如图,烧写成功,板子正常启动:

NFS挂载

说明:hanewin官网下载的最新版本的nfs1.2.59,安装使用时会存在Unable to open file ×××.xml的情况,可自行下载安装其他旧的nfs版本,自测hanewin_nfs_server_V1.1.69和hanewin_nfs_server_1.2.19都可以,同样流程安装即可正常使用,安装包也可从附件中获取。

1.控制面板——系统和安全——Windows Defender防火墙——高级设置——入站规则——新建规则(勾选端口next——TCP——特定本地端口,添加111,1058,2049 next——允许连接next——勾选域、专用、共用 next)——为该规则定义一个名字haneWinTcp——完成。

2.hanewin官网下载最新版本的nfs server安装包

3.双击.exe安装;

4.安装成功后,到安装所在路径下,以管理员方式运行NFS Server:

5.配置

6.设置保存后,重启NFS服务

7.挂载

使用Xshell或其他工具,连接3516的板子:

挂载:

创建挂载目录:/test_root/kernel

完成挂载:mount 192.168.1.3:/mnt /test_root/kernel nfs

windows本地代码编辑

1.下载安装代码编辑工具Visual Studio Code,点击下载;

2.安装一些常用插件;

3.直接从本地Ubuntu目录打开打开代码文件编辑即可;

编辑后,编译,以某个测试套用例为例:

将编译好的可执行文件放到挂载目录下:

执行

代码上库

1.登录码云fork代码xts_acts仓

2.签署“贡献者许可协议”(CLA)

3.创建本地分支:repo start branch_name --all

4.查看修改:git status

5.git add .

6.git commit -sm "xxxxxx" //xxxxx为提交信息描述

ps:

参考:https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E8%B4%A1%E7%8C%AE%E6%B5%81%E7%A8%8B.md

7.git push https://gitee.com/码云用户名/xts_acts upup:refs/heads/kernel_lite_20210402_3

其中,码云用户名是自己注册码云的名称,xts_acts是fork的代码仓,upup是Ubuntu本地repo建的分支,kernel_lite__20210405是分支标签,自己随便建,不创建默认是maser分支(这是给码云远端个人仓本次提交所创建的分支)。

说明:第一次push,需要输入username和password,用户名输入码云用户名,密码是码云登录密码;输入后回车,重新执行git push操作即可。

8.新建Pull Request将远端个人仓库同步到主干仓:

注意:这儿是从远端fork的个人仓中同步(下图左边源分支这儿是个人码云用户名,而不是OpenHarmony),不知道的按如下操作:个人账户中点击个人主页——选择xts_acts——Pull Request——新建Pull Request——选择源分支同步到目标分支;

评论输入start build,代码开始构建:自动触发编译和测试以及静态检查,全部通过后,会有审核人员审核合入;

如图已成功合入的:

至此,代码已成功上库合入,如果有编译或测试或静态检查失败,以同样流程修改后重新上库。

提交失败项解决

1.静态检查失败:

失败项查看:

按照失败项本地修改后重新提交

2.编译测试项失败:

编译失败较少,一般提交前本地最好编译测试通过,编译失败查看,点击后面的report会自动下载编译内容;

测试失败查看:

3.解决后重新提交:

git add .

git commit --amend

git push https://gitee.com/码云用户名/xts_acts upup:refs/heads/kernel_lite_20210402_3 --force

说明:

修改后,追加提交,只需要git push时在前面git push 信息的后面加上 --force,这样修改追加提交的内容就会自动同步到前面创建的pr里,不需要重新在创建新的PR,然后评论输入start build,开始构建即可。

远端个人仓分支管理:

4.特殊情况:

静态检查无法修改的,比如误报,测试对象本身问题等,在评论去说明情况即可,审核人会审核合入;

码云工具问题导致失败的情况,联系工具的人解决恢复后,评论输入start build 重新触发构建即可。

附件

提供了一些用到的软件安装包,可直接下载使用:

点击下载

————————————————

版权声明:本文为CSDN博主「@_南先森」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/nanzhanfei/article/details/115409538

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

    关注

    25

    文章

    3721

    浏览量

    16302
收藏 人收藏

    评论

    相关推荐

    通过WebSocket操作OpenHarmony机器

    OpenHarmony机器人中运行 ArkTS APP,在APP中通过WebScoket客户端接收指令,然后调用机器人接口实现相关动作。
    发表于 11-27 16:41

    【龙芯2K0300蜂鸟板试用】OpenHarmony代码

    收到龙芯2K0300蜂鸟开发板后,对开发板做了一些了解和研究,现将OpenHarmony代码提供给大家测试,也希望大家能更多的认识龙芯2K0300蜂鸟开发板,下面先简单介绍一下这块开发板。 广东
    发表于 09-18 11:42

    【开源鸿蒙】使用QEMU运行OpenHarmony轻量系统

    本文将会介绍如何从源码安装QEMU 6.2.0,以及如何使用QEMU运行OpenHarmony轻量系统。通过本文,你将会对QEMU和OpenHarmony轻量系统又一个初步的认知,并对如何使用QEMU又一个初步的理解和体会。
    的头像 发表于 09-14 08:51 570次阅读
    【开源鸿蒙】使用QEMU<b class='flag-5'>运行</b><b class='flag-5'>OpenHarmony</b>轻量系统

    基于Openharmony轻量级操作系统的分布式数据管理开发案例

    实验内容本例程演示如何在小凌派-RK2206开发板上使用OpenHarmony轻量级操作系统进行KvStore(即分布式数据管理)数据读写。例程:(1)创建两个线程,一个负责写入KvStore存储
    的头像 发表于 08-07 08:23 964次阅读
    基于<b class='flag-5'>Openharmony</b>轻量级<b class='flag-5'>操作</b>系统的分布式数据管理开发案例

    开源鸿蒙 编译OpenHarmony轻量系统QEMU RISC-V版本

    本文将介绍如何为QEMU RISC-V虚拟平台构建OpenHarmony轻量系统。得益于QEMU的CPU指令集模拟执行能力,该方法可以在没有开发板的情况下调试和运行OpenHarmony系统源码。本文介绍的该方法,可以用于
    的头像 发表于 07-15 10:36 1071次阅读
    开源鸿蒙 编译<b class='flag-5'>OpenHarmony</b>轻量系统QEMU RISC-V版本

    400万!深开鸿OpenHarmony主仓代码贡献量再创里程碑!

    2024年7月8日,据OpenAtomOpenHarmony(以下简称“OpenHarmony”)官网显示,深开鸿在OpenHarmony社区主仓代码贡献总量超过400万行,在华为以外
    的头像 发表于 07-09 08:33 353次阅读
    400万!深开鸿<b class='flag-5'>OpenHarmony</b>主仓<b class='flag-5'>代码</b>贡献量再创里程碑!

    鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

    跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当
    的头像 发表于 05-25 16:37 1864次阅读
    鸿蒙ArkUI-X平台差异化:【<b class='flag-5'>运行</b>态差异化(@ohos.deviceInfo)】

    【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

    本文介绍了如何下载开源鸿蒙(OpenHarmony操作系统 4.1 Release版本的源代码,该方法同样可以用于下载OpenHarmony最新开发版本(master分支)或者4.0
    的头像 发表于 04-27 23:16 922次阅读
    【开源鸿蒙】下载<b class='flag-5'>OpenHarmony</b> 4.1 Release源<b class='flag-5'>代码</b>

    鸿蒙OpenHarmony【小型系统运行案例】 (基于Hi3516开发板)

    在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。
    的头像 发表于 04-23 21:00 447次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【小型系统<b class='flag-5'>运行</b>案例】 (基于Hi3516开发板)

    OpenHarmony开发实例:【配置应用签名信息】

    使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行
    的头像 发表于 04-22 16:52 465次阅读
    <b class='flag-5'>OpenHarmony</b>开发实例:【配置应用签名信息】

    鸿蒙开发学习:【OpenHarmony HAR】

    OpenHarmony js/ts三方库使用的是OpenHarmony静态共享包,即HAR(Harmony Archive),可以包含js/ts代码、c++库、资源和配置文件。通过HAR,可以实现
    的头像 发表于 03-18 16:27 751次阅读

    【鸿蒙】OpenHarmony运行docker详细步骤

    1.环境和设备 系统版本: 3.2release(64 位) OpenHarmony 内核版本:5.10 标准系统设备: DAYU200 Docker:18.03.1 (64 位) sd 卡一张
    的头像 发表于 03-02 15:10 2625次阅读
    【鸿蒙】<b class='flag-5'>OpenHarmony</b><b class='flag-5'>运行</b>docker详细步骤

    [鸿蒙]OpenHarmony4.0的Rust开发

    背景 Rust 是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust 官方也使用 Cargo 工具来专门为 Rust 代码创建工程和构建编译
    的头像 发表于 02-26 17:28 887次阅读
    [鸿蒙]<b class='flag-5'>OpenHarmony</b>4.0的Rust开发

    【鸿蒙】OpenHarmony 4.0蓝牙代码结构简析

    OpenHarmony 4.0蓝牙代码结构简析前言 OpenHarmony 4.0上蓝牙仓和目录结构进行一次较大整改,本文基于4.0以上版本对蓝牙代码进行分析,便于读者快速了解和学习
    的头像 发表于 02-26 16:08 1558次阅读
    【鸿蒙】<b class='flag-5'>OpenHarmony</b> 4.0蓝牙<b class='flag-5'>代码</b>结构简析

    OpenHarmony 之 NAPI 框架介绍

    Nodejs 官网上查看各种 NAPI 接口定义说明。     可以看到,NAPI 接口本身是 C++ 语言实现的,这些接口可以帮助 C++ 代码创建 JS 变量,或访问 JavaScript 运行
    的头像 发表于 02-01 17:34 696次阅读
    <b class='flag-5'>OpenHarmony</b> 之 NAPI 框架介绍