利用spice-vdagent實現文本拷貝、鼠標非陷入


最新版本的spice-vdagent-0.10.1經過自己實驗,是可用的,確實解決了一些問題,先看一下官方的說法:

Spice agent for Linux
=====================

The spice agent for Linux consists of 2 parts, a daemon spice-vdagentd and
a per X-session process spice-vdagent. The daemon gets started in Spice guests
through a Sys-V initscript. The per X-session gets automatically started in
desktop environments which honor /etc/xdg/autostart, and under gdm.

The main daemon needs to know which X-session daemon is the currently
active X-session (think switch user functionality) for this console kit is
used. spice-vdagent can be compiled without console kit support for use with
older distributions, in this case only one active X session is allowed.

Features:
* Client mouse mode (no need to grab mouse by client, no mouse lag)
  this is handled by the daemon by feeding mouse events into the kernel
  via uinput. This will only work if the active X-session is running a
  spice-vdagent process so that its resolution can be determined.
* Automatic adjustment of the X-session resolution to the client resolution
  for single monitor configurations.
* Support of copy and paste (text and images) between the active X-session
  and the client. This supports both the primary selection and the clipboard.
* Limited support for multiple displays, prerequisites:
  * A new enough Xorg-server. For Fedora atleast Fedora-17, for RHEL-6 atleast
    xorg-x11-server-1.10.4-6.el6_2.3
  * A vm configured with multiple qxl devices
  * A guest running the latest spice-vdagent
  Then connect to the vm with the multiple monitor client which you want to
  use it with using: "spicec --full-screen=auto-config" (or the user portal
  equivalent). At this point the agent will write out a:
  /var/run/spice-vdagentd/xorg.conf.spice file. With all the necessary magic
  to get Xinerama working. Move this file to /etc/X11/xorg.conf, then kill
  Xorg so that it will get restarted and you should be good to go.

All vdagent communications on the guest side run over a single pipe which
gets presented to the guest os as a virtio serial port.

 

概括一下它的功能:

  • Copy & Paste between guest and client
  • Automatic guest resolution adjustment while entering fullscreen mode
  • Guest side mouse which allows you to move mouse continuously within guest and client without pressing Sihft + F12

利用正常的kvm命令進行啟動,加入以下選項:

For qemu < 0.14.0:
-device spicevmc

For qemu >= 0.14.0:
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 \
-chardev spicevmc,name=vdagent,id=vdagent \
-device \
virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0

 

qemu-kvm -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -spice port=3001,disable-ticketing -vga qxl -soundhw ac97 /path/to/your/guest.img

If you're facing -chardev issue (Then you're probably using older qemu-kvm from RHEL6) then use following arguments instead.

qemu-kvm -device virtio-serial -device spicevmc -device virtserialport -spice port=3001,disable-ticketing -vga qxl -soundhw ac97 /path/to/your/guest.img

 或kvm -m 1024 -name rhel6 -drive file=rhel6.img,if=virtio -vga qxl  -spice port=5900,addr=127.0.0.1,disable-ticketing -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 -chardev spicevmc,name=vdagent,id=vdagent -device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0

通過實驗,文本雙向拷貝可行,但images不可行。

大家的實驗結果如何呢,相互交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM