qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why does Qemu+Spice capture the mouse on OSX but not libvirt?


From: John Paul Morrison
Subject: Why does Qemu+Spice capture the mouse on OSX but not libvirt?
Date: Fri, 12 Nov 2021 11:33:49 -0800

Hi

I'm trying to make sense of how this libvirt configuration is working so well with the mouse.

Normally, if I start an OSX guest and connect with Spice the mouse is captured - you have to click and ctrl-alt to release. 

But when I imported the VM into Virt-manager and connected with Spice the mouse is now seamless - no clicking/doesn't grab focus/no ctrl-alt. 
This is great but seems like magic because I thought Spice required vdagent and OSX doesn't have this. 
Is Qemu guest agent involved with the mouse? This is passed through and AppleQEMUGuestAgent is running.


I built a Catalina guest using quickemu then imported the disks with virtmanager. I'm using the quickemu ppa version of Qemu 6.0

I used this template to import the guest. I added sound(needs correct OpenCore) and USB redirection which works nicely too.

- Does virtmanager/libvirt do anything special here or is it the generated Qemu config?

Also  "-device usb-tablet" doesn't work properly for me in the quckemu setup but it works with the libvirt qemu comands
There's a lot going on in the libvirt config - I'm wondering what exactly makes the mouse work. 

/usr/bin/qemu-system-x86_64 -version
QEMU emulator version 6.0.0 (Debian 1:6.0+dfsg-2expubuntu1~focal1.0)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

This is the env/cmdline  setup by virt-manager:

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin 
HOME=/var/lib/libvirt/qemu/domain--1-macOS 
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-macOS/.local/share 
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-macOS/.cache 
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-macOS/.config 

/usr/bin/qemu-system-x86_64
-name guest=macOS,debug-threads=on
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-macOS/master-key.aes"}'
-blockdev '{"driver":"file","filename":"/home/jmorrison/OSX-KVM/OVMF_CODE.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}'
-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}'
-blockdev '{"driver":"file","filename":"/home/jmorrison/OSX-KVM/OVMF_VARS-1024x768.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}'
-blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}'
-machine pc-q35-4.2,accel=kvm,usb=off,dump-guest-core=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,memory-backend=pc.ram
-cpu kvm64,vme=on,ssse3=on,sse4.2=on,x2apic=on,popcnt=on,aes=on,xsave=on,avx=on,hypervisor=on,xsaveopt=on,invtsc=on
-m 8192
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":8589934592}'
-overcommit mem-lock=off
-smp 4,sockets=4,cores=1,threads=1
-uuid 2aca0dd6-cec9-4717-9ab2-0b7b13d111c3
-no-user-config
-nodefaults
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain--1-macOS/monitor.sock,server=on,wait=off
-mon chardev=charmonitor,id=monitor,mode=control
-rtc base=utc,driftfix=slew
-global kvm-pit.lost_tick_policy=delay
-no-hpet
-no-shutdown
-boot strict=on
-device pcie-root-port,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1
-device pcie-root-port,port=0x9,chassis=2,id=pci.2,bus=pcie.0,addr=0x1.0x1
-device pcie-root-port,port=0xa,chassis=3,id=pci.3,bus=pcie.0,addr=0x1.0x2
-device pcie-root-port,port=0xb,chassis=4,id=pci.4,bus=pcie.0,addr=0x1.0x3
-device pcie-root-port,port=0xc,chassis=5,id=pci.5,bus=pcie.0,addr=0x1.0x4
-device pcie-root-port,port=0xd,chassis=6,id=pci.6,bus=pcie.0,addr=0x1.0x5
-device pcie-root-port,port=0xe,chassis=7,id=pci.7,bus=pcie.0,addr=0x1.0x6
-device pcie-root-port,port=0xf,chassis=8,id=pci.8,bus=pcie.0,addr=0x1.0x7
-device pcie-pci-bridge,id=pci.9,bus=pci.1,addr=0x0
-device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x7.0x7
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x7
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x7.0x1
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x7.0x2
-device virtio-serial-pci,id=virtio-serial0,bus=pci.2,addr=0x0
-blockdev '{"driver":"file","filename":"/home/jmorrison/OSX-KVM/OpenCore/OpenCore.qcow2","aio":"threads","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}'
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"qcow2","file":"libvirt-3-storage","backing":null}'
-device ide-hd,bus=ide.0,drive=libvirt-3-format,id=sata0-0-0,bootindex=2,write-cache=on
-blockdev '{"driver":"file","filename":"/home/jmorrison/OSX-KVM/RecoveryImage.img","node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}'
-blockdev '{"node-name":"libvirt-2-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-2-storage"}'
-device ide-hd,bus=ide.2,drive=libvirt-2-format,id=sata0-0-2,bootindex=3,write-cache=on
-blockdev '{"driver":"file","filename":"/home/jmorrison/OSX-KVM/mac_hdd_ng.img","aio":"threads","node-name":"libvirt-1-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}'
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage","backing":null}'
-device virtio-blk-pci,bus=pci.3,addr=0x0,drive=libvirt-1-format,id=virtio-disk0,bootindex=1,write-cache=on
-netdev tap,fd=30,id=hostnet0
-device vmxnet3,netdev=hostnet0,id=net0,mac=52:54:00:e6:85:40,bus=pci.9,addr=0x2
-chardev pty,id=charserial0
-device isa-serial,chardev=charserial0,id=serial0
-chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain--1-macOS/org.qemu.guest_agent.0,server=on,wait=off
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
-audiodev id=audio1,driver=spice
-spice port=5901,addr=0.0.0.0,disable-ticketing=on,seamless-migration=on
-device VGA,id=video0,vgamem_mb=64,bus=pci.9,addr=0x1
-device ich9-intel-hda,id=sound0,bus=pcie.0,addr=0x1b
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=audio1
-device 'isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc'
-smbios type=2
-device usb-tablet
-device usb-kbd
-cpu kvm64,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
-msg timestamp=on


reply via email to

[Prev in Thread] Current Thread [Next in Thread]