Openharmony环境搭建

2023-11-08

前言

我们知道鸿蒙对标的是安卓系统,那么对于一个操作系统,那么就会分上层应用开发人员以及系统驱动开发人员。分别对标上层应用和底层驱动,本文介绍为底层驱动开发的环境搭建。

工具下载

下图清楚的描述了,北向应用开发以及南向驱动开发所需要的工具和IDE。
资料来源于https://harmonyos.csdn.net/
北向开发人员:https://developer.harmonyos.com/cn
南向开发人员:https://device.harmonyos.com/cn
开发人员常访问这两个网站就好了。
在这里插入图片描述

开发环境

HUAWEI DevEco Device Tool

工具下载路径:https://device.harmonyos.com/cn/ide#download

HarmonyOS 智能设备一站式集成开发环境,支持 HarmonyOS 组件按需定制、一键编译和烧录、可视化调试、分布式能力集成等,帮助开发者高效开发和创新新硬件。
HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、编译、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。
在这里插入图片描述
在这里插入图片描述

开发环境的准备

DevEco Device Tool 本生就是一个基于vscode的插件,所以用vscode非常方便。
接下来的环境安装步骤,秉承农夫山泉,我们只是大自然的搬运工。
产地:https://device.harmonyos.com/cn/docs/ide/user-guides/install_windows-0000001050164976

Windows开发环境准备

以下方法为在win下进行编译调试烧录等操作。(一般不常用,我们一般在linux下进行编译)
所以linux下开发编译的请忽略本小节直接进入下一小节。
系统要求:Windows 10 64位系统。DevEco Device Tool以插件方式提供,基于Visual Studio Code进行扩展,安装分为如下几步:安装Visual Studio Code安装Python安装Node.js安装hpm安装DevEco Device Tool插件

获取软件

Visual Studio Code

vscode 下载地址:https://code.visualstudio.com/Download
py 下载地址:https://www.python.org/downloads/
node js 下载地址:https://nodejs.org/zh-cn/download/
hpm 命令:npm install -g @ohos/hpm-cli
dev tool 下载地址:https://device.harmonyos.com/cn/ide#download

vscode 安装

在这里插入图片描述

安装Python

在这里插入图片描述
在这里插入图片描述

pip config set global.trusted-host repo.huaweicloud.com
pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
pip config set global.timeout 120

安装Node.js

在这里插入图片描述

安装hpm

在这里插入图片描述

如果已安装hpm,可以执行npm update -g @ohos/hpm-cli命令升级hpm至最新版本。
涉及命令:
npm config set registry https://repo.huaweicloud.com/repository/npm/
npm install -g @ohos/hpm-cli
在这里插入图片描述
cmd: hpm -V

安装DevEco Device Tool插件

在这里插入图片描述

先设置Visual Studio Code代理

在这里插入图片描述

Linux开发环境的准备

在这里插入图片描述

将Ubuntu shell改为bash

在这里插入图片描述

cmd:
sudo dpkg-reconfigure dash
查看是否生效ls -l /bin/sh

安装Python

在这里插入图片描述

sudo apt update
sudo apt install software-properties-common

在这里插入图片描述

cmd:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
python3.8 --version

在这里插入图片描述

which python3.8
cd /usr/bin && sudo ln -s python3.8-path python

在这里插入图片描述

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2

在这里插入图片描述

cmd:
sudo apt-get install python3-pip && python3 -m pip install --upgrade pip
sudo apt-get install python3.8-venv
pip3 config set global.trusted-host repo.huaweicloud.com
pip3 config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
pip3 config set global.timeout 120

安装Node.js

在这里插入图片描述

sudo tar -xvf node-v14.15.3-linux-x64.tar.xz
sudo mv node-v14.15.3-linux-x64 /opt/

在这里插入图片描述

cmd:
sudo vim /etc/profile
#nodejs
export NODE_HOME=/opt/node-v14.15.3-linux-x64
export PATH= N O D E H O M E / b i n : NODE_HOME/bin: NODEHOME/bin:PATH

在这里插入图片描述

cmd:
sudo chown -R hostname:root /opt/node-v14.15.3-linux-x64
source /etc/profile

安装Hpm

在这里插入图片描述

npm config set registry https://repo.huaweicloud.com/repository/npm/
npm install -g @ohos/hpm-cli
hpm -V
sudo apt-get install curl

安装DevEco Device Tool

在这里插入图片描述

sudo unzip devicetool-linux-tool-2.1.0.0.zip
sudo chmod a+x deveco-device-tool-2.1.0+241710.14bbf65d.run
./deveco-device-tool-2.1.0+241710.14bbf65d.run

在这里插入图片描述

sudo cp /home/harmonyos/.local/share/deveco-device-tool/99-jtag.rules /etc/udev/rules.d/99-jtag.rules
sudo cp /home/harmonyos/.local/share/deveco-device-tool/99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
sudo udevadm control -R
sudo apt install authbind
sudo touch /etc/authbind/byport/69
sudo chmod 777 /etc/authbind/byport/69

在这里插入图片描述

我的开发环境的准备

以上描述的win下以及ubuntu下的环境搭建均是官方文档中描述的方式。
官方提供的vscode插件版本,肯定是最方便的,由于还没学会vscode,所以先用source insight编辑代码。

我的环境搭建,我想利用在linux环境下进行代码下载、编译,在win下利用samba进行代码编辑以及镜像获取,同时在win下用工具下载烧写镜像。

代码仓库

地址:git@gitee.com:openharmony/kernel_liteos_a.git
git clone git@gitee.com:openharmony/kernel_liteos_a.git

代码编译准备

如下表为鸿蒙系统编译所需要的环境
在这里插入图片描述

https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-53907/linux/llvm.tar.gz

py3.7+安装

py安装也可参考另一篇文章py的安装,这篇文章还包含离线源码的编译和安装步骤

  1. sudo apt-get install python3.8
  2. 设置python和python3软链接为python3.8。
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
  3. 安装并升级Python包管理工具(pip3),任选如下一种方式。
    它允许你安装和管理不属于 Python标准库 的其它软件包,有了他才可以进一步安装hb,
    一般pip 一直被直接包括在 Python 的安装包内,查看版本,同样存在pip和pip3
    相对应python 和python3

pip --version
pip3 --version

cmd:
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip

package:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

gn安装

  1. 下载gn工具
  2. 创建目录解压
    mkdir ~/gn
    tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
    vim ~/.bashrc
    export PATH=~/gn:$PATH
    source ~/.bashrc

安装ninja

  1. 下载ninja
  2. 创建目录解压
    tar -xvf ninja.1.9.0.tar -C ~/
    vim ~/.bashrc
    export PATH=~/ninja:$PATH
    source ~/.bashrc

安装LLVM

  1. 下载llvm
  2. 解压
    tar -zxvf llvm.tar.gz -C ~/
    vim ~/.bashrc
    export PATH=~/llvm/bin:$PATH
    source ~/.bashrc

安装hb

  1. 请先安装Python 3.7.4及以上,请见安装和配置Python。
  2. 安装hb
    python3 -m pip install --user ohos-build
    vim ~/.bashrc
    export PATH=~/.local/bin:$PATH
    source ~/.bashrc
  3. 执行"hb -h",有打印以下信息即表示安装成功:
  4. 卸载
    python3 -m pip uninstall ohos-build

最新发布的openharmony2.0-canary可以不安装hb就能编译。

镜像烧写

通过上面再linux环境下进行代码的编译在XXX目录获得内核的镜像。在win端用DevEco Device Tool进行镜像的编译。

工具下载

下载地址:https://device.harmonyos.com/cn/ide
下载工具为Windows版本

工具安装

1.工具下载下来 是一个zip的包,解压后是一个msi的安装程序。
2.这个msi安装程序需要先安装py。安装流程参考上面安装Python
在这里插入图片描述
3.假如安装完py后发现还是依旧msi安装失败,按照提示查看log文件,如果如下报错,查看下py版本是否与本机相对应,我电脑为64bit安装了32位的py才报如下错误,下载正确后再继续安装msi文件。
在这里插入图片描述

工具使用

安装

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Openharmony环境搭建 的相关文章

  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两

随机推荐

  • 剑指 Offer 25. 合并两个排序的链表

    合并两个排序的链表 思路 题解 package swordPointingToTheOffer public class ListNode int val ListNode next ListNode int x val x public
  • C语言:前 n 项求和

    前 n 项求和 算法思路 1 前n项求和由于第一项和最后一项都已知适合用for循环 2 当n趋于无穷时 调和数列的极限趋于无穷 代码如下 include
  • Eclipse 3.4+MyEclipse 6.01+MyEclipse 6.01注册机+Eclipse 3.1.1汉化包+Myeclipse6.0使用教程官方下载地

    Eclipse 3 4 MyEclipse 6 01 MyEclipse 6 01注册机 Eclipse 3 1 1汉化包 Myeclipse6 0使用教程官方下载地 2007年10月29日 星期一 05 30 P M 都是供WINDOWS
  • LeetCode:392(Python)—— 判断子序列(简单)

    判断子序列 概述 给定字符串 s 和 t 判断 s 是否为 t 的子序列 字符串的一个子序列是原始字符串删除一些 也可以不删除 字符而不改变剩余字符相对位置形成的新字符串 例如 ace 是 abcde 的一个子序列 而 aec 不是 输入
  • Leetcode刷题笔记0624(回文字符串)

    解题思路 1 首先考虑用双指针 一头一尾依次遍历 遇到相等的l 和r 进入下一层循环 2 遇到不相等的记录值count 1 判断l 与r是否相等 l与r 是否相等 否则直接返回false 形成代码 class Solution public
  • F轮融资3.6亿美元,Keep能撑起20亿美元的估值吗?

    高喊着 自律给我自由 的keep 在自由的道路上不断奔跑 去年12月底 keep完成了F轮3 6亿美元融资 本轮融资由软银愿景基金领投 高瓴资本 蔻图资本跟投 成为近年国内运动科技领域融资的最大金额 keep估值成功站上20亿美元大关 这距
  • STM32 ST-LINK Utility安装及使用

    TM32 ST LINK Utility集成开发环境的安装比较简单 基本上就是一路Next下去 还是按照常规安装教程 截图 讲述一下吧 以上面下载的 STM32 ST LINK Utility v4 0 0 setup exe 软件为例讲述
  • 安装SQL Server2012报Microsoft.NET Framework4无法安装错误解决方案

    今天在安装SQL Server2012版本时 在最后出现 没有安装Microsoft NET Framework4 请安装这个继续安装SQLServer2012 于是就重官网下载Microsoft NET Framework4进行安装出现如
  • homebrew安装mysql及修改配置

    安装mysql数据库5 7 5前后版本有所差异 以前的版本会在安装的时候要去输入密码 5 7 6 版本会在安装的时候随机生成一个密码 用图形界面化安装的时候会显示密码 而用 brew install mysql命令安装的话 就不会显示密码了
  • Volocopter将在新加坡推出空中的士服务;铂金资本72亿美元收购海航旗下英迈

    今日看点 铂金资本 Platinum Equity 将以72亿美元收购海航旗下的英迈 Volocopter将在新加坡推出空中的士 希尔顿与锦江集团续签合作协议 将在华开逾600家希尔顿欢朋酒店 爱立信携手意大利电信及高通公司基于5G毫米波创
  • c# ThoughtWorks 生成二维码

  • 004 C++基础篇

    前言 大家好 本文将会为您带来内联函数 auto关键字 基于范围的for循环 指针空值nullptr相关知识 一 内联函数 什么是内联函数 以inline修饰的函数叫做内联函数 编译时C 编译器会在调用内联函数的地方展开 没有函数调用建立栈
  • 关于火绒邮件监控引起的扫描任意IP会有25和110端口反馈

    之前测试过公司的外网IP 因为之前一直很注意对外映射的端口 都限制了可以访问的IP地址和端口 所以之前扫描的时候是一个端口都扫描不出来的 最近闲的无事 想着再扫描试试 结果发现居然开放了25和110端口 我当时第一反应 我靠 不会有人已经黑
  • cookie登录_注册登录 与 Cookie

    开始之前 我们先简单了解一下 注册 登录 的流程 无代码 进入注册页面 用户填入用户名 密码 手机号等 注册信息 前端验证用户填入的信息是否符合要求 如果不符合要求 就提示用户输入错误 重新输入 如果符合要求 就将 注册信息 作为 post
  • ARP广播原理和数据包格式

    1 ARP广播原理 1 A 135 24 25 23 和同一网段内的主机B 135 24 25 32 通信 查找arp 表没有32 IP的MAC地址 判断A 和B 是在同一局域网内 A向局域网发送ARP广播 B收到广播后 会把自己的MAC地
  • Redis集群部署文档(centos7系统)

    Redis集群部署文档 centos7系统 Redis是一个高性能的键值存储系统 常用于缓存 消息队列等场景 在大规模应用中 为了提高性能和稳定性 可以采用Redis集群搭建方式 Redis集群采用分布式架构 将数据分散存储在多个节点上 提
  • 漏洞复现-永恒之蓝(MS17-010)

    目录 一 漏洞介绍 1 永恒之蓝是什么 2 漏洞原理 3 影响版本 二 实验环境 三 漏洞复现 四 利用exploit模块进行渗透 一 漏洞介绍 1 永恒之蓝是什么 永恒之蓝是指2017年4月14日晚 黑客团体Shadow Brokers
  • SVPWM的一些参数

    SVPWM的一些参数 1 直流母线电压利用率 一般我们所说的电压利用率是指逆变器输出线电压的基波幅值与直流母线电压之比值 可以看出 电压利用率并不是一个恒定值 因为逆变器输出线电压的基波幅值是变化的 因此一般只讨论最高电压利用率 SVPWM
  • 用C语言单片机编程为什么总是用无符号的数据类型来定义?

    注意 答案和题目均转自百度知道 char型可以表示数的范围是 128到127 所占位数是8位int型可以表示数的范围是 32768到32767 所占位数是16位假如用有符号的数据类型表示 如果你要表示的数是128 那你就得定义int型 用了
  • Openharmony环境搭建

    鸿蒙系统开发环境搭建 前言 工具下载 开发环境 HUAWEI DevEco Device Tool 开发环境的准备 Windows开发环境准备 获取软件 vscode 安装 安装Python 安装Node js 安装hpm 安装DevEco