【yocto】run qemu:Could not initialize SDL(No available video device) - exiting

问题描述:

ubuntu中试图用QEMU运行yocto编译出的Linux发行版,当执行命令runqemu qemux86时出现如下异常:

runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Created tap: tap0
runqemu - INFO - Running ldd /home/simon/yocto/poky/build/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386...
runqemu - INFO - Running /home/simon/yocto/poky/build/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no   -cpu qemu32 -m 256 -drive file=/home/simon/yocto/poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86-20170309093853.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -kernel /home/simon/yocto/poky/build/tmp/deploy/images/qemux86/bzImage -append 'root=/dev/vda rw highres=off  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1'
No protocol specified
Could not initialize SDL(No available video device) - exiting
runqemu - INFO - Running sudo /home/simon/yocto/poky/scripts/runqemu-ifdown tap0 /home/simon/yocto/poky/build/tmp/sysroots/x86_64-linux
Set 'tap0' nonpersistent
runqemu - INFO - Releasing lockfile for tap device 'tap0'
Traceback (most recent call last):
  File "/home/simon/yocto/poky/scripts/runqemu", line 1019, in <module>
    ret = main()
  File "/home/simon/yocto/poky/scripts/runqemu", line 1012, in main
    config.start_qemu()
  File "/home/simon/yocto/poky/scripts/runqemu", line 946, in start_qemu
    raise Exception('Failed to run %s' % cmd)
Exception: Failed to run /home/simon/yocto/poky/build/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no   -cpu qemu32 -m 256 -drive file=/home/simon/yocto/poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86-20170309093853.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -kernel /home/simon/yocto/poky/build/tmp/deploy/images/qemux86/bzImage -append 'root=/dev/vda rw highres=off  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1'

错误分析

错误日志中提示"No protocol specified"

初步判断是X server的问题(X server默认不允许其他用户图形程序的图形显示在当前屏幕)


解决方案

用root用户登录,执行命令

$ xhost +

使所有的用户都能访问X server

当提示"access control disabled, clients can connect from any host"时执行成功

切换回原来的用户继续执行 runqemu qemux86

成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值