当前位置: 首页 > article >正文

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

文章目录

    • 一、背景介绍
    • 二、准备OpenHarmony源代码
    • 三、准备hb命令
      • 3.1 安装hb命令
      • 3.2 检查hb命令
    • 四、编译RISC-V架构的OpenHarmony轻量系统
      • 4.1 设置hb构建目标
      • 4.2 启动hb构建过程
    • 五、问题解决
      • 5.1 hb set 报错问题解决
    • 六、参考链接

开源鸿蒙坚果派,学习鸿蒙一起来!

本文将介绍如何编译OpenHarmony轻量系统的QEMU RISC-V虚拟平台版。得益于QEMU的CPU指令模拟执行能力,该方法可以在没有实际开发板硬件的情况下,调试和运行OpenHarmony轻量系统。另外,本文介绍的该方法,可以用于OpenHarmony操作系统源码的学习和研究,也可以用于其他操作系统源代码的学习和研究。

一、背景介绍

QEMU是一个开源的虚拟化平台,它可以实现目标平台的CPU指令级别的模拟。因此,可以使用QEMU进行操作系统的学习和研究,也可以在没有硬件的情况下对开发板进行模拟。

QEMU是一款开源的虚拟机监控程序,可模拟多种硬件环境,并支持多种处理器架构。它能够在不同平台上实现虚拟化,运行各种操作系统。QEMU具有高度的灵活性和可移植性,被广泛用于开发、测试和部署虚拟化环境。

二、准备OpenHarmony源代码

开始之前,需要准备:

  • Ubuntu 系统的开发环境(可以是物理主机也可以是虚拟机);
  • 下载OpenHarmony 4.0 Release源代码,参考上一篇文章:
    • 【开源鸿蒙】下载 OpenHarmony 4.0 源代码和工具链

三、准备hb命令

3.1 安装hb命令

编译OpenHarmony源码之前,需要先安装hb命令。

# 跳转到OpenHarmony源码目录,例如上一篇文章介绍的 OpenHarmony 4.0 Release
cd ohos/openharmony

# 如果没有 pip 命令,则需要先安装 python3-pip
# sudo apt install python3-pip

# 安装 hb 命令:
pip install build/hb

安装成功如下图所示:

Untitled

3.2 检查hb命令

安装完成后,可以通过 hb help命令测试是否可以正常使用。

如果报告 command not found,如下图所示:

Untitled

则表明hb所在目录没有加到PATH环境变量中,如果是Ubuntu系统,需要先检查~/.profile文件是否存在,并检查其中是否有如下代码:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

如果有以上代码,关闭当前shell会话,重新打开,就可以正常使用hb命令了。

如果没有~/.profile文件,则可以将以上代码添加到 ~/.bashrc 文件中。

如果报告Please call hb utilities inside ohos source directory,则是正常的,需要在ohos源码目录下执行hb命令。

Untitled

四、编译RISC-V架构的OpenHarmony轻量系统

4.1 设置hb构建目标

开始编译之前,首先需要设置hb构建的目标产品或开发板是什么。使用hb set命令,进行交互式设置。

依次选择 mini → qemu_riscv_mini_system_demo

Untitled

Untitled

设置完成后,会在源码目录的顶层生成 ohos_config.json 文件,内容如下:

Untitled

4.2 启动hb构建过程

使用hb set设置完目标平台后,就可以使用hb build命令进行编译了。

构建完成后,输出如下:

Untitled

五、问题解决

5.1 hb set 报错问题解决

如果遇到报错:cannot import name ‘Mapping’ from 'collections’

Untitled

这个报错是因为Python 3.10中,Mapping已经不在collections包中了。

解决方法,修改文件: ~/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py

手动将 collections 改为 collections.abc 即可。

六、参考链接

  1. OpenHarmony官网: https://www.openharmony.cn/
  2. OpenHarmony编译形态整体说明: https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-appendix-compiledform.md
  3. OpenHarmony代码仓: https://gitee.com/openharmony/

http://www.kler.cn/a/272169.html

相关文章:

  • 多线程杂谈:惊群现象、CAS、安全的单例
  • C#与AI的共同发展
  • 解决conda create速度过慢的问题
  • Flowable 审核功能封装
  • Dart语言的学习路线
  • 小程序获取微信运动步数
  • OpenAI引领下一代AI技术,推出GPT-4 Turbo
  • rust - 一个日志缓存记录的通用实现
  • Transformer的前世今生 day02(神经网络语言模型
  • 【开源鸿蒙】模拟运行OpenHarmony轻量系统QEMU RISC-V版
  • uwsgi+nginx+django 部署学习
  • cache的58问,您能回答上几个
  • 课时67:流程控制_for循环_for基础
  • 万界星空科技商业开源MES,技术支持+项目合作
  • vulhub中GitLab 任意文件读取漏洞复现(CVE-2016-9086)
  • MATLAB中的cell数组和结构体。
  • 安全地使用v-html
  • 深度学习pytorch——基本运算(持续更新)
  • 微信小程序之tabBar
  • LinkedList源码解析和设计思路
  • 强大的开源网络爬虫框架Scrapy的基本介绍(入门级)
  • 在类Unix平台实现TCP客户端
  • linux ---vim的基本使用
  • 单片机第四季-第二课:uCos2源码-BSP
  • ChatGPT :确定性AI源自于确定性数据
  • UGUI界面性能优化2-最大程度降低UI的DrawCall和重绘