4 在QEMU硬件模拟器中运行开源鸿蒙OpenHarmony4.1的操作系统,无需实体开发板
创始人
2025-01-07 23:03:18
0

在QEMU硬件模拟器中运行开源鸿蒙OpenHarmony4.1的操作系统,无需实体开发板

作者将狼才鲸
日期2024-03-01

  • 先下载源码和编译程序:

    • 查看 开源鸿蒙OpenHarmony4.1源码下载、编译,生成OHOS_Image可执行文件的最简易流程
  • 我准备在QEMU模拟器中运行ARM Cortex-M4的轻型开源鸿蒙系统

    • 官方支持的开发板和模拟器种类-编译形态整体说明
    • 已支持的示例工程,Qemu模拟器: arm_mps2_an386、esp32、riscv32_virt、SmartL_E802
    • Qemu Arm Cortex-m4 mps2-an386 教程
  • 在电脑上安装QEMU模拟器软件,可以在Windows下安装,也可以在Linux发行版下安装

    • Qemu安装-QEMU Quick Emulator QEMU在Ubuntu下的安装流程;是下载源码后再编译,编译速度很慢,可以make只编译ARM部分的,这样编译速度会快很多
      • …/configure --target-list=arm-softmmu,arm-linux-user
      • make -j4
      • sudo make install
    • 在Windows下的安装流程更简单
    • Windows的所有安装包 安装6.2.0及以上的版本都可以
    • 官网下载很慢,可以用国内网站下载 https://www.mydown.com/soft/172/726002172.shtml
    • Windows下安装后手动配置好QEMU的环境变量,或者进入到D:\Program Files\qemu的目录下打开CMD命令行界面
  • Ubuntu回到OpenHarmony源码根目录下,使用命令行用QEMU模拟器运行开源鸿蒙系统

    • ./qemu-run --help
    • ./qemu-run -e out/arm_mps2_an386/qemu_mini_system_demo/OHOS_Image
    • qemu-run是个脚本,可以用文本文件打开,它里面也是调用的qemu-system-arm,并且传入了需要的参数
  • 这是开源鸿蒙在QEMU硬件模拟器中运行的结果,在网口时程序跑飞了,可能源码中对QEMU Cortex-M4的适配有点问题,你也可以再尝试一下别的QEMU开发板,步骤和上述流程一样的:

jim@ubuntu:~/openHarmony$ ./qemu-run -e out/arm_mps2_an386/qemu_mini_system_demo/OHOS_Image board: arm_mps2_an386  Enter to start qemu[y/n]:entering kernel init... LfsLowLevelInit: DiskPartition succeed LfsLowLevelInit: PartitionFormat succeed LfsLowLevelInit: mount fs on '/littlefs' succeed LfsLowLevelInit: mkdir '/littlefs' succeed tcpip_init start *************Exception Information************** Type      = 11 ThrdPid   = 25 Phase     = exc in task FaultAddr = 0xabababab Current task info: Task name = (null) Task ID   = 25 Task SP   = (nil) Task ST   = 0x0 Task SS   = 0x0 Exception reg dump: PC        = 0x2100e62a LR        = 0x2101b045 SP        = 0x210b18e0 R0        = 0x210a725c R1        = 0x200 R2        = 0x210a725c R3        = 0x2108a9b3 R4        = 0x0 R5        = 0x0 R6        = 0x0 R7        = 0x210b18e8 R8        = 0x0 R9        = 0x0 R10       = 0x0 R11       = 0x0 R12       = 0xc8000000 PriMask   = 0x0 xPSR      = 0x610f0000 ----- backtrace start ----- backtrace 0 -- lr = 0x21015178 backtrace 1 -- lr = 0x2101b044 backtrace 2 -- lr = 0x210235da backtrace 3 -- lr = 0x210235e2 backtrace 4 -- lr = 0x2102379a ----- backtrace end ----- qemu: fatal: Lockup: can't escalate 3 to HardFault (current priority -1)  R00=210b2ad0 R01=2109fa3f R02=210a18f8 R03=6c0da998 R04=00000000 R05=00000060 R06=00000018 R07=210b1708 R08=00000019 R09=000003e8 R10=218ba1e8 R11=00000000 R12=00000000 R13=210b1708 R14=210011db R15=21000fcc XPSR=21030006 --C- T handler s00=00000000 s01=00000000 d00=0000000000000000 s02=00000000 s03=00000000 d01=0000000000000000 s04=00000000 s05=00000000 d02=0000000000000000 s06=00000000 s07=00000000 d03=0000000000000000 s08=00000000 s09=00000000 d04=0000000000000000 s10=00000000 s11=00000000 d05=0000000000000000 s12=00000000 s13=00000000 d06=0000000000000000 s14=00000000 s15=00000000 d07=0000000000000000 s16=00000000 s17=00000000 d08=0000000000000000 s18=00000000 s19=00000000 d09=0000000000000000 s20=00000000 s21=00000000 d10=0000000000000000 s22=00000000 s23=00000000 d11=0000000000000000 s24=00000000 s25=00000000 d12=0000000000000000 s26=00000000 s27=00000000 d13=0000000000000000 s28=00000000 s29=00000000 d14=0000000000000000 s30=00000000 s31=00000000 d15=0000000000000000 FPSCR: 00000000 /home/jim/openHarmony/vendor/ohemu/qemu_mini_system_demo/qemu_run.sh: line 95: 50440 Aborted                 (core dumped) qemu-system-arm -M mps2-an386 -m 16M -kernel $elf_file $qemu_option -append "root=dev/vda or console=ttyS0" -nographic jim@ubuntu:~/openHarmony$  
  • 在Windows的QEMU下可以用这个命令
    • qemu-system-arm -M mps2-an386 -cpu cortex-m4 -kernel OHOS_Image -serial stdio -nodefaults -nographic
    • 另外一个可供你参考的命令 qemu-system-arm -machine versatileab -cpu cortex-a9 -nographic -monitor null -semihosting -append ‘some program arguments’ -kernel program.axf
D:\Program Files\qemu>qemu-system-arm -M mps2-an386 -cpu cortex-m4 -kernel OHOS_Image -serial stdio -nodefaults -nographic qemu-system-arm: warning: nic lan9118.0 has no peer entering kernel init... LfsLowLevelInit: DiskPartition succeed LfsLowLevelInit: PartitionFormat succeed LfsLowLevelInit: mount fs on '/littlefs' succeed LfsLowLevelInit: mkdir '/littlefs' succeed tcpip_init start *************Exception Information************** Type      = 11 ThrdPid   = 25 Phase     = exc in task FaultAddr = 0xabababab Current task info: Task name = (null) Task ID   = 25 Task SP   = (nil) Task ST   = 0x0 Task SS   = 0x0 Exception reg dump: PC        = 0x2100e62a LR        = 0x2101b045 SP        = 0x210b18e0 R0        = 0x210a725c R1        = 0x200 R2        = 0x210a725c R3        = 0x2108a9b3 R4        = 0x0 R5        = 0x0 R6        = 0x0 R7        = 0x210b18e8 R8        = 0x0 R9        = 0x0 R10       = 0x0 R11       = 0x0 R12       = 0xc8000000 PriMask   = 0x0 xPSR      = 0x610f0000 ----- backtrace start ----- backtrace 0 -- lr = 0x21015178 backtrace 1 -- lr = 0x2101b044 backtrace 2 -- lr = 0x210235da backtrace 3 -- lr = 0x210235e2 backtrace 4 -- lr = 0x2102379a ----- backtrace end ----- qemu: fatal: Lockup: can't escalate 3 to HardFault (current priority -1)  R00=210b2ad0 R01=2109fa3f R02=210a18f8 R03=6c0da998 R04=00000000 R05=00000060 R06=00000018 R07=210b1708 R08=00000019 R09=000003e8 R10=218ba1e8 R11=00000000 R12=00000000 R13=210b1708 R14=210011db R15=21000fcc XPSR=21030006 --C- T handler s00=00000000 s01=00000000 d00=0000000000000000 s02=00000000 s03=00000000 d01=0000000000000000 s04=00000000 s05=00000000 d02=0000000000000000 s06=00000000 s07=00000000 d03=0000000000000000 s08=00000000 s09=00000000 d04=0000000000000000 s10=00000000 s11=00000000 d05=0000000000000000 s12=00000000 s13=00000000 d06=0000000000000000 s14=00000000 s15=00000000 d07=0000000000000000 s16=00000000 s17=00000000 d08=0000000000000000 s18=00000000 s19=00000000 d09=0000000000000000 s20=00000000 s21=00000000 d10=0000000000000000 s22=00000000 s23=00000000 d11=0000000000000000 s24=00000000 s25=00000000 d12=0000000000000000 s26=00000000 s27=00000000 d13=0000000000000000 s28=00000000 s29=00000000 d14=0000000000000000 s30=00000000 s31=00000000 d15=0000000000000000 FPSCR: 00000000  D:\Program Files\qemu> 

相关内容

热门资讯

三分钟了解!天天辅助器下载(曝... 三分钟了解!天天辅助器下载(曝光辅助插件)原来有透视操作1、完成天天辅助器下载有辅助插件,帮助玩家取...
玩家科普!蛮王辅助(关于辅助方... 玩家科普!蛮王辅助(关于辅助方法)好像有透视妙招1、蛮王辅助辅助软件下载优化,蛮王辅助底牌透视脚本科...
发现一款!大巴杭州辅助(辅助辅... 发现一款!大巴杭州辅助(辅助辅助挂)都是有透视办法大巴杭州辅助透视方法中分为三种模型:大巴杭州辅助靠...
盘点十款!琼戏互娱破解版(分享... 盘点十款!琼戏互娱破解版(分享辅助器)一贯有透视机巧琼戏互娱破解版是不是有人用挂微扑克wpk插件教程...
总算了解!新道游辅助软件下载(... 总算了解!新道游辅助软件下载(解谜辅助软件)确实有透视课程1、这是跨平台的新道游辅助软件下载轻量版有...
重要通知!新超凡辅助(开挂辅助... 重要通知!新超凡辅助(开挂辅助app)真是有透视手筋1、新超凡辅助脚本辅助下载、新超凡辅助免费透视脚...
攻略讲解!微信小程序雀神辅助器... 攻略讲解!微信小程序雀神辅助器(专业辅助技巧)确实有透视步骤1、下载好微信小程序雀神辅助器透视辅助下...
玩家必看攻略!火神辅助免费下载... 玩家必看攻略!火神辅助免费下载(解谜辅助挂)其实有透视积累1)火神辅助免费下载免费钻石:进一步探索火...
指导大家!青鸟辅助器(解密辅助... 指导大家!青鸟辅助器(解密辅助脚本)原来有透视教程书青鸟辅助器透视方法中分为三种模型:青鸟辅助器靠谱...
最新通报!闲闲辅助器(揭露辅助... 最新通报!闲闲辅助器(揭露辅助工具)一贯有透视资料进入游戏-大厅左侧-新手福利-激活码辅助透视技能教...