写点什么

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

作者:码匠许师傅
  • 2024-09-13
    江苏
  • 本文字数:1469 字

    阅读完需:约 5 分钟

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

本文将会介绍如何从源码安装 QEMU 6.2.0,以及如何使用 QEMU 运行 OpenHarmony 轻量系统。通过本文,你将会对 QEMU 和 OpenHarmony 轻量系统又一个初步的认知,并对如何使用 QEMU 又一个初步的理解和体会。

一、准备工作

开始之前,需要准备:



上一篇文章介绍了如何为 QEMU RISC-V 虚拟平台构建 OpenHarmony 轻量系统。


构建完成后,输出如下:


1.1 编译输出目录简介

hb set 命令选择 qemu_riscv_mini_system_demo 平台后,hb build 命令构建完成后,所有输出文件将会保存在 out/riscv32_virt/qemu_riscv_mini_system_demo 目录,具体内容如下:



其中,OHOS_Image 就是本文将要运行的 RISC-V 平台的 OpenHarmony 轻量系统 ELF 文件。

二、QEMU 安装

按照如下步骤,从源码安装 QEMU 6.2.0 版本。

2.1 安装依赖

sudo apt install build-essential zlib1g-dev pkg-config libglib2.0-dev  binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev virtualenv flex bison
复制代码

2.2 获取源码

wget https://download.qemu.org/qemu-6.2.0.tar.xz
复制代码


官网下载: qemu-6.2.0.tar.xz

2.3 编译安装

# 解压源码包tar -xf qemu-6.2.0.tar.xz
# 跳转到源码解压后目录cd qemu-6.2.0
# 创建构建目录,用于存放中间文件mkdir build && cd build
# 创建qemu安装目录,也可以改为其他目录sudo mkdir /usr/qemu/
# 配置源码,生成构建规则文件# --prefix 参数指定安装目录../configure --prefix=/usr/eqmu/
# 开始构建,8个并发任务make -j8
复制代码


等待编译结束, 执行安装命令:


make install
复制代码


最后将安装路径添加到环境变量中:


vim ~/.bashrc
复制代码


在~/.bashrc 最末尾加入:


export PATH=$PATH:/usr/qemu/bin
复制代码

2.4 问题解决

上一小节描述的步骤中,可能出现一些问题,本节介绍如何解决常见的问题。


Cannot find Ninja 问题:



解决方法:


sudo apt install ninja-build
复制代码


正常编译成功之后,可以看到如下输出:


三、用 QEMU 运行 OpenHarmony 轻量系统

编译成功后,就可以进入本篇文章的正题了——尝试使用 QEMU 运行 RISC-V 虚拟平台的 OpenHarmony 轻量系统。

3.1 qemu-run 脚本简介

OpenHarmony 顶层目录,有一个 qemu-run 的链接文件:



它实际指向一个脚本文件:



该脚本用于启动 qemu 虚拟机,并加载可执行程序。

3.2 qemu-run 脚本参数

脚本 qemu-run 文件支持一些命令行参数,具体如下:



由于 exec 默认值已经是正确的可执行程序了,所以直接运行该脚本就可以启动虚拟机,并运行 OpenHarmony 轻量系统。

3.3 qemu-run 运行效果

前面介绍过,由于已经使用 hb build 编译成功了,直接运行 qemu-run,就可以运行 RISC-V 虚拟平台的 OpenHarmony 轻量系统。


运行后,可以看到启动日志:




成功看到 OpenHarmony 系统启动日志了,可喜可贺!

3.4 退出 QEMU 交互模式

qemu-run 默认会进入 QEMU 交互模式,退出需要使用:Ctrl+A,然后再按 X 键

四、问题解决

首次运行 qemu-run 脚本,可能会遇到报错 libncursesw.so.5 找不到:



解决方法:


sudo apt install libncursesw5
复制代码

五、参考链接

  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. OpenHarmony riscv32_virt 说明:https://gitee.com/openharmony/device_qemu/tree/HEAD/riscv32_virt

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

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

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

评论

发布
暂无评论
【开源鸿蒙】使用QEMU运行OpenHarmony轻量系统_qemu_码匠许师傅_InfoQ写作社区