04 ubuntu20下 OpenHarmony-3.0-LTS qemu mps2-an386 运行 liteos_m

ubuntu下 OpenHarmony-3.0-LTS qemu mps2-an386 运行 liteos_m

为了摆脱硬件对学习的限制,出几个使用qemu运行鸿蒙lite_m的教程,这是第一篇介绍如何编译及运行测试的

  • OpenHarmony-3.0-LTS 仓库比较小7G多,OpenHarmony-6.0-Release版本有50多G,先试下OpenHarmony-3.0-LTS是否可以编译,并运行。
  • 本次验证了 qemu arm_mps2_an386 ,使用CPU模拟器成功运行任务
  • 编译环境为ubuntu 20
  • 需要保证hb指令可以使用
  • 安装官方的说法,最好是在ubuntu下编译运行,windows下默认只支持海思的处理器,因此最好阿是使用ubuntu,不会ubuntu都不太好意思了

整个过程挺折腾人的

1. 注意事项

  1. 必须安装qemu 6.0以上版本
  • apt 默认安装的 qemu 缺乏 mps2 cpu型号,因此无法运行起来

  • 参考官方文档编译需要的版本 https://gitee.com/openharmony/device_qemu

  • qemu 版本确认 qemu-system-arm --version

    text 复制代码
    root@ubuntu:/work/code-v3.0-LTS/OpenHarmony# qemu-system-arm --version
    QEMU emulator version 6.2.0
    Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
  1. 必须修订ubuntu的默认shell 为bash

    非bash编译的时候会报错,运行echo $SHELL,确认默认的shell是否为bash

2. 代码准备

3. 配置及编译

3.1 配置

解压程序包,进入到目录执行 hb set 指令选择对应的开发板

text 复制代码
root@ubuntu:/work/code-v3.0-LTS/OpenHarmony# hb set
[OHOS INFO] hb root path: /work/code-v3.0-LTS/OpenHarmony
OHOS Which product do you need?  (Use arrow keys)

ohemu
qemu_small_system_demo
qemu_ca7_mini_system_demo
qemu_riscv_mini_system_demo
❯ qemu_mini_system_demo

hisilicon
wifiiot_hispark_pegasus
ipcamera_hispark_taurus_linux
ipcamera_hispark_aries
ipcamera_hispark_taurus

3.2 编译

运行hb build编译程序

text 复制代码
[OHOS INFO] [983/1003] STAMP obj/third_party/mbedtls/mbedtls.stamp
[OHOS INFO] [984/1003] STAMP obj/third_party/mbedtls/mbedtls_ndk.stamp
[OHOS INFO] [985/1003] AR libs/libhuks_3.0_sdk.a
[OHOS INFO] [986/1003] STAMP obj/base/security/huks/frameworks/huks_lite/huks_sdk.stamp
[OHOS INFO] [987/1003] gcc cross compiler obj/third_party/musl/porting/liteos_m/kernel/src/regex/libmusl-c.regcomp.o
[OHOS INFO] [988/1003] gcc cross compiler obj/third_party/musl/porting/liteos_m/kernel/src/locale/libmusl-c.iconv.o
[OHOS INFO] [989/1003] AR libs/libmusl-c.a
[OHOS INFO] [990/1003] STAMP obj/third_party/musl/porting/liteos_m/kernel/kernel.stamp
[OHOS INFO] [991/1003] AR libs/libposix.a
[OHOS INFO] [992/1003] AR libs/libboard.a
[OHOS INFO] [993/1003] AR libs/libfs_operations.a
[OHOS INFO] [994/1003] STAMP obj/kernel/liteos_m/kal/kal.stamp
[OHOS INFO] [995/1003] AR libs/liblittlefs.a
[OHOS INFO] [996/1003] AR libs/libfatfs.a
[OHOS INFO] [997/1003] AR libs/libshell.a
[OHOS INFO] [998/1003] STAMP obj/kernel/liteos_m/components/fs/fs.stamp
[OHOS INFO] [999/1003] STAMP obj/kernel/liteos_m/kernel.stamp
[OHOS INFO] [1000/1003] LINK ./bin/liteos
[OHOS INFO] [1001/1003] STAMP obj/build/lite/ohos.stamp
[OHOS INFO] [1002/1003] LINK ./bin/OHOS_Image
[OHOS INFO] [1003/1003] STAMP obj/build/lite/product.stamp
[OHOS INFO] /work/code-v3.0-LTS/OpenHarmony/vendor/ohemu/qemu_mini_system_demo/fs.yml not found, stop packing fs. If the product does not need to be packaged, ignore it.
[OHOS INFO] qemu_mini_system_demo build success
[OHOS INFO] cost time: 0:00:11

4. 运行测试

进入到指定的目录,运行指令./qemu_run.sh ../../../out/arm_mps2_an386/qemu_mini_system_demo/bin/liteos

text 复制代码
root@ubuntu:/work/code-v3.0-LTS/OpenHarmony/device/qemu/arm_mps2_an386# ./qemu_run.sh ../../../out/arm_mps2_an386/qemu_mini_system_demo/bin/liteos 
entering kernel init...
Entering scheduler
OHOS # TaskSampleEntry1 running...
TaskSampleEntry2 running...
TaskSampleEntry1 running...
TaskSampleEntry2 running...
TaskSampleEntry1 running...
TaskSampleEntry2 running...
TaskSampleEntry1 running...
TaskSampleEntry2 running...
TaskSampleEntry1 running...
TaskSampleEntry2 running...

正常运行之后,运行默认的任务,控制台一直打印log

大功告成

5. 后续推进

  • 准备用最新的6.0版本测试一下
  • 同时也准备运行可以 跑 网络 的模拟器设备 ,用来做网络相关方面的测试,可能得使用liteos_a 了
  • 看起来复杂,实际一点也不容易
相关推荐
Goway_Hui3 分钟前
【KMP for OpenHarmony】-- 在鸿蒙工程中使用 Apollo-Kotlin
华为·kotlin·harmonyos
NamoAmitabha1281 小时前
嵌入式开发中的定时器---deepseek
单片机·嵌入式硬件
福建佰胜张工2 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
secondyoung2 小时前
Cortex-R52与TriCore详细对比
arm开发·单片机·嵌入式硬件·mcu
正在走向自律2 小时前
HarmonyOS 手机/平板远程控制 Windows 电脑实践指南
智能手机·电脑·harmonyos·todesk·远程工具
送外卖的工程师2 小时前
STM32仓库环境监测系统
stm32·单片机·嵌入式硬件
feng_you_ying_li2 小时前
linux之网络层
linux·运维·网络
2501_922639582 小时前
率能半导体 SS6840单通道H桥驱动芯片:42V/7A,覆盖打印机、办公自动化、机器人、工业缝纫机四大应用场景
stm32·单片机·嵌入式硬件·硬件工程
未来之窗软件服务2 小时前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
小雉系统2 小时前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian