zoukankan      html  css  js  c++  java
  • 利用spicevdagent实现文本拷贝、鼠标非陷入

    最新版本的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不可行。

    大家的实验结果如何呢,相互交流。

  • 相关阅读:
    从1.5k到18k, 一个程序员的5年成长之路
    我是如何准备技术面试的
    10个惊艳的Ruby单行代码
    经典Spring面试题和答案
    数据分析应该要避免的6个错误
    代码重构的实战经验和那些坑
    勾勒物联网与大数据的数据中心路线图
    共筑Spark大数据引擎的七大工具
    es6学习总结(一)
    vue-cli搭建与vue-router(路由配置)
  • 原文地址:https://www.cnblogs.com/chinacloud/p/2471696.html
Copyright © 2011-2022 走看看