Qemu相关FAQ
更新时间:2025/10/24
在Gitcode上查看源码

Qemu启动

【Q】按照官方的最新的manifest以及指导文档运行Qemu后 SSH能访问Ipmi命令能通,但是web不通,端口号也都反复检查了。这时候的固件是跑脚本的时候下载的固件。

  1. ssh和ipmi启动时间会比web的启动时间要快,web连接不通可能在于nginx还没拉起,可以稍等几秒再重新拉起,此时可以:
  • 登录ssh:ssh Administrator@localhost -p 10022​
  • 进入telnet:/data/home/busybox_x telnet localhost
  • 查看nginx服务是否启动:netstat -ntlpa
  1. 如果还不行,请保持默认config文件内容,删除manifest temp目录和output目录重试拉起qemu,此时能够顺利拉起qemu。

【Q】25.06源码构建的qemu,启动后存在互锁和web网页无法打开的问题:ERROR:../hw/infc/arm_drcv3_cpuif.c:784:gicv3_cpuif_update:assertion failed: {qemu_mutex_iothread_locked()}

/hw/infc/arm_drcv3_cpuif.c断言失败导致的问题,可能是您本地缓存的qemu二进制文件和现在不匹配问题,您可以进行如下流程进行恢复:

  • 删除conan缓存: rm -rf ~/.conan2/p/* (conan2);rm -rf ~/.conan/data/* (conan1)
  • 重新出包: bingo build -sc qemu
  • 删除qemu本地缓存的二进制工具: manifest仓的temp目录
  • 重新拉起qemu:python3 build/works/packet/qemu_shells/vemake_1711.py

【Q】Qemu启动后存在RTOS版本不一致问题,导致ssh无法连接:x_tables: disagrees about version of symbol module_layout

这个是RTOS版本不一致导致驱动起不来的问题:

先看查看环境的RTOS版本和qemu远程的RTOS版本一致了, 查看方法:ls -l /opt/RTOS,将会由显示RTOS版本号,然后Qemu的使用的RTOS版本号会在manifest.yml里面存在qemu_rtos_version,将两者进行比较

如果不是的话, 请进行以下步骤:

  1. 拉最新的manifest组件仓

  1. 删除conan缓存: rm -rf ~/.conan2/p/*

  2. 重新初始化环境:执行python3 init.py xxx

  3. 重新出包: bingo build -sc qemu

  4. 重新启动qemu:python3 build/works/packet/qemu_shells/vemake_1711.py

【Q】Qemu仿真环境启动时卡住:Authorized uses only. All activity may be monitored and reported.pe (err -2)localhost login:

这种情况有可能是两种因素引起:

  1. 修改的内容导致BMC有问题,这种遇到卡顿可以等一下,过了一段时间,可以telnet进去查看日志: cat /var/log/framework.log,查看报错,一般都是基础框架没有起来的问题;然后根据日志报错修改自己的代码

  2. 由于本地的conan缓存的生命周期失效,可以清除conan缓存

可以尝试这样解决:

  • 拉最新manifest
  • 执行python3 init.py xxx
  • 升级bingo:bingo upgrade
  • 清除conan缓存: rm -rf ~./conan2/p/*
  • 出包: bingo build -sc qemu
  • 启动qemu: python3 build/works/packet/qemu_shells/vemake_1711.py

【Q】执行仿真环境qemu后,有报错但不影响登陆openUBMC,请问账号密码是什么?

账号/密码: Administrator/Admin@90000

【Q】web一直不响应,可以看看nginx服务是否存在

终端登录ssh: ssh Administrator@localhost -p 10022

进入telnet: /data/home/busybox_x telnet localhost

查看nginx服务是否启动: netstat -ntlpa

如果nginx服务启动了,web还登录不了,此时可以查看日志:cat /var/log/app.log, 或者killall interface

如果nginx服务还没启动,需要通过日志来定位问题了: cat /var/log/app.log, 来观察是不是本身代码做了其他修改导致的问题

【Q】仿真环境启动后,登进去,缺少ipmcget命令:仿真环境初始化完毕后,用户名Administrator密码Admin@90000,登录到openUBMC里面,没有ipmcget命令,也没有ifconfig命令,如何添加?

在manifest的output/data被异常修改导致的问题:

  • 停止正在运行的qemu
  • 删除output/data目录
  • 重新运行qemu:python3 build/works/packet/qemu_shells/vemake_1711.py

目前openUBMC暂时不支持ifconfig命令

Qemu构建

【Q】bingo build -sc qemu 报错为啥,用的是普通用户, 必须要用root用户嘛?

目前Qemu的二进制工具构建和openUBMC的仿真镜像包仅支持root用户

【Q】25.06源码构建qemu固件包失败,存在组件全量源码构建失败问题:CMake Error: The source directory “/root/.conan/data/bmc_network/1.70.42/openUBMC.release/rc/build/a8cc6717e1ce1e0d9c59af89eaae6d6122f062e6” does not appear to contain CMakeLists.txt.

  1. 因为触发了bmc_network组件的全量源码构建,但bmc_network组件在社区只有conan包导致的,可以直接conan download bmc_network/1.70.42@openUBMC.release/stable -r openubmc_dev验证conan有没有问题

  2. conan download bmc_network/1.70.42@openUBMC.release/stable -r openubmc_dev成功之后,拉最新的manifest,重新python3 init.py xxx, 然后清除缓存rm -rf ~/.conan2/p/*, 然后重新再来:bingo build -sc qemu.

【Q】基于修改代码出自己的qemu cpio包, 会提示某个组件download失败

首先去查看本地manifest仓的temp/log/task.log,看看有没有说是要输入account和密码,如果有的话:

  • 杀死正在运行的qemu构建出包进程

  • 然后在终端输入命令:conan search help -r openubmc_dev,会提示输入账号和密码
  • 重新bingo build -sc qemu出包即可