You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Yocto Kirkstone运行runqemu报X Error:BadValue错误求助

Yocto Kirkstone下runqemu图形模式启动失败问题

刚接触Yocto,已成功执行bitbake core-image-minimal构建镜像,runqemu nographic可正常运行,但直接执行runqemu(图形模式)时出现报错,错误信息如下:

runqemu - INFO - Continuing with the following parameters:
KERNEL: [/home/Michel/projets/yocto/builds/build-qemu/tmp/deploy/images/qemux86-64/bzImage]
MACHINE: [qemux86-64]
FSTYPE: [ext4]
ROOTFS: [/home/Michel/projets/yocto/builds/build-qemu/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20241210173219.rootfs.ext4]
CONFFILE: [/home/Michel/projets/yocto/builds/build-qemu/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20241210173219.qemuboot.conf]

runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: ip=192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running /home/Michel/projets/yocto/builds/build-qemu/tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/Michel/projets/yocto/builds/build-qemu/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20241210173219.rootfs.ext4,if=virtio,format=raw -show-cursor -usb -device usb-tablet -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0   -cpu core2duo -m 256 -serial mon:vc -serial null -kernel /home/Michel/projets/yocto/builds/build-qemu/tmp/deploy/images/qemux86-64/bzImage -append 'root=/dev/vda rw  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 '

runqemu - ERROR - Failed to run qemu: X Error:  BadValue
  Request Major code 130 (MIT-SHM)
  Request Minor code 3 ()
  Value 0x400
  Error Serial #2016
  Current Serial #2017

使用的Yocto版本为Kirkstone,主机系统信息:

$ uname -a
Linux Michel 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux

解决方法

1. 禁用MIT-SHM共享内存扩展

报错核心是X11的MIT-SHM共享内存扩展与Qemu冲突,直接在启动时禁用该特性:

runqemu display="gtk,gl=off,shmem=off"

2. 检查X11访问权限

  • 临时开放当前用户对X服务器的访问权限:
xhost +local:

(使用完成后建议执行xhost -local:收回权限,避免安全风险)

  • 确认DISPLAY环境变量正确设置,若为空则手动指定:
export DISPLAY=:0

3. 切换Qemu显示后端

如果GTK后端存在兼容性问题,尝试切换到SDL后端:

runqemu display=sdl

4. 修复主机X11组件

Debian系统下可重新安装X11核心组件,修复可能的损坏:

sudo apt reinstall xserver-xorg-core libx11-dev libxext-dev

内容的提问来源于stack exchange,提问作者InfiniteLooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:22:05