写点什么

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

作者:码匠许师傅
  • 2024-07-14
    江苏
  • 本文字数:1287 字

    阅读完需:约 4 分钟

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

本文将介绍如何为 QEMU RISC-V 虚拟平台构建 OpenHarmony 轻量系统。得益于 QEMU 的 CPU 指令集模拟执行能力,该方法可以在没有开发板的情况下调试和运行 OpenHarmony 系统源码。本文介绍的该方法,可以用于 OpenHarmony 操作系统源码的学习和研究。

一、背景介绍

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


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

二、准备 OpenHarmony 源代码

开始之前,需要准备:


三、准备 hb 命令

3.1 安装 hb 命令

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


# 跳转到OpenHarmony源码目录,例如上一篇文章介绍的 OpenHarmony 4.0 Releasecd ohos/openharmony
# 如果没有 pip 命令,则需要先安装 python3-pip# sudo apt install python3-pip
# 安装 hb 命令:pip install build/hb
复制代码


安装成功如下图所示:


3.2 检查 hb 命令

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


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



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


# set PATH so it includes user's private bin if it existsif [ -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 命令。



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

4.1 设置 hb 构建目标

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


依次选择 mini → qemu_riscv_mini_system_demo




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


4.2 启动 hb 构建过程

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


构建完成后,输出如下:


五、问题解决

5.1 hb set 报错问题解决

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


这个报错是因为 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/

发布于: 刚刚阅读数: 4
用户头像

软件工程师,开源爱好者 2018-10-02 加入

擅长物联网相关技术;热爱折腾各种开源软件和开源硬件。 曾获称号: 华为开发者专家(HDE); 电子发烧友最有价值专家(MVP); 51CTO最有价值专家(MVP); OpenHarmony第20位开发者; OpenHarmony开发者贡献奖

评论

发布
暂无评论
【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版本_qemu_码匠许师傅_InfoQ写作社区