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

【开源鸿蒙】模拟运行OpenHarmony轻量系统QEMU RISC-V版

文章目录

    • 一、准备工作
      • 1.1 编译输出目录简介
    • 二、QEMU安装
      • 2.1 安装依赖
      • 2.2 获取源码
      • 2.3 编译安装
      • 2.4 问题解决
    • 三、用QEMU运行OpenHarmony轻量系统
      • 3.1 qemu-run脚本简介
      • 3.2 qemu-run脚本参数
      • 3.3 qemu-run运行效果
      • 3.4 退出QEMU交互模式
    • 四、问题解决
    • 五、参考链接

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

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

一、准备工作

开始之前,需要准备:

  • Ubuntu 系统的开发环境(可以是物理主机也可以是虚拟机);
  • 下载OpenHarmony 4.0 Release源代码,参考文章:
    • 【开源鸿蒙】下载 OpenHarmony 4.0 源代码和工具链
  • 为QEMU编译OpenHarmony轻量系统,参考文章:
    • 【开源鸿蒙】为QEMU RISC-V虚拟平台构建OpenHarmony轻量系统

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

构建完成后,输出如下:

Untitled

1.1 编译输出目录简介

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

Untitled

其中,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问题:

Untitled

解决方法:

sudo apt install ninja-build

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

Untitled

三、用QEMU运行OpenHarmony轻量系统

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

3.1 qemu-run脚本简介

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

Untitled

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

Untitled

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

3.2 qemu-run脚本参数

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

Untitled

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

3.3 qemu-run运行效果

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

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

Untitled

Untitled

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

3.4 退出QEMU交互模式

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

四、问题解决

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

Untitled

解决方法:

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

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

相关文章:

  • Objective-C语言的数据类型
  • 雷电9最新版安装Magisk+LSPosd(新手速通)
  • 基于tldextract提取URL里的子域名、主域名、顶级域
  • 【游戏设计原理】75 - 最小最大化
  • 审计文件标识作为水印打印在pdf页面边角
  • TiDB与Oracle:数据库之争,谁能更胜一筹?
  • 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和重绘
  • RabbitMQ——死信队列和延迟队列
  • windows安装go
  • Xcode 15.3 Archive失败
  • PC电脑如何使用HDMI连接小米电视当显示屏