Fedora环境

  • 编译环境

操作系统: 64位 Fedora23

  • 下载源文件

spice-gtkspice-protocol

  • 安装依赖
$ sudo yum install -y dh-autoreconf.noarch gtk-doc.noarch icoutils.x86_64 perl-Text-CSV.noarch vala-tools.x86_64 gtk3-devel.x86_64 openssl-devel.x86_64 celt051-devel.x86_64 gstreamer1*-devel libjpeg-turbo-devel.x86_64 usbredir-devel.x86_64
$ sudo pip install pyparsing
  • 设置环境变量
$ export PREFIX="$HOME/gnome/usr/local/gnome"
$ export ACLOCAL="aclocal -I $PREFIX/share/aclocal"
$ export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig:$PREFIX/lib64/pkgconfig"
$ export CFLAGS=" -I$PREFIX/include"
$ export CPPFLAGS=" -I$PREFIX/include"
$ export LDFLAGS=" -L$PREFIX/lib -L$PREFIX/lib -Wl,--rpath -Wl,/usr/local/gnome/lib -L$PREFIX/lib64 -Wl,--rpath -Wl,/usr/local/gnome/lib64"
  • 编译spice-protocol
$ ./autogen.sh --prefix=$PREFIX
$ make
$ make install
  • 编译spice-gtk
### 3.29-4.8的某处修改会导致32位spicy崩溃
$ git reset --hard 02c4cd59a45844b938a8c5b647538d01d4f040a0
$ ./autogen.sh --prefix=$PREFIX
$ ./configure --prefix=$PREFIX --enable-maintainer-mode --with-gtk=3.0 --enable-vala --enable-usbredir=yes --with-sasl=no --enable-gstaudio
$ make
$ make install

ubuntu环境

方法一

  • 编译环境

操作系统: 64位 Ubuntu 14.04 LTS (trusty)

  • 安装依赖
$ sudo apt-get install -y build-essential autoconf libtool automake autopoint intltool libgtk-3-dev libcurl4-openssl-dev libjpeg-dev libusbredirparser-dev libusbredirhost-dev libusb-1.0-0-dev valac-0.20 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libspice-protocol-dev libpulse-dev libgudev-1.0-dev
  • 编译celt
$ wget http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
$ tar xzf celt-0.5.1.3.tar.gz
$ cd celt-0.5.1.3/
$ ./configure
$ make
$ sudo make install
  • 编译spice-gtk
$ wget https://www.spice-space.org/download/gtk/spice-gtk-0.18.tar.bz2
$ tar xjf spice-gtk-0.18.tar.bz2
$ cd spice-gtk-0.18
$ ./configure --enable-maintainer-mode --with-gtk=3.0 --enable-vala --enable-usbredir=yes --with-sasl=no --enable-gstaudio --disable-smartcard
$ make
  • 制作deb包
$ sudo apt-get install checkinstall
$ cd spice-gtk-0.18
$ sudo checkinstall make install
  • 安装spice-gtk
$ sudo dpkg -i spice-gtk-*.deb
### 安装依赖库
$ sudo apt-get install -y libegl1-mesa libusb1 gtk-doc-tools libepoxy0 atk-bridge girepository libpng libxkbcommon vala gstreamer-plugins-base pango wayland gstreamer libjpeg-turbo
$ sudo ldconfig

方法二

  • 编译环境

操作系统: 64位 Ubuntu 14.04 LTS (trusty)

  • 安装gettext
$ sudo apt-get install -y build-essential
$ wget http://ftp.gnu.org/gnu/gettext/gettext-0.19.8.tar.gz
$ tar xzf gettext-0.19.8.tar.gz
$ cd gettext-0.19.8/
$ ./configure
$ make
$ sudo make install
  • 安装jhbuild
$ sudo apt-get install -y git autoconf automake yelp-tools
$ git clone https://github.com/silvermagic/jhbuild.git
$ cd jhbuild/
$ git checkout custom
$ ./autogen.sh
$ make
$ sudo make install
$ echo 'PATH="$HOME/.local/bin:$PATH"' >> ~/.profile
$ source ~/.profile
$ cp examples/custom/mini-spice-gtk.jhbuildrc ~/.config/jhbuildrc
  • 编译spice-gtk
$ sudo apt-get install apt-file
$ apt-file update
$ sudo apt-get install xorg-dev
$ jhbuild sysdeps --install
$ jhbuild build
  • 打包spice-gtk
$ cd ~/gnome
$ tar zcf spice-gtk.tar.gz usr/
  • 安装spice-gtk
$ sudo tar zxf spice-gtk.tar.gz -C /
### 安装依赖库
$ sudo apt-get install -y libegl1-mesa libusb1 gtk-doc-tools libepoxy0 atk-bridge girepository libpng libxkbcommon vala gstreamer-plugins-base pango wayland gstreamer libjpeg-turbo
$ sudo ldconfig

Ubuntu ARM环境

  • 编译环境

操作系统: 64位 Ubuntu 14.04 LTS (trusty)

  • 搭建模拟环境

参考Ubuntu ARM系统开发环境搭建文档完成模拟环境搭建,然后切换到模拟环境

  • 安装gettext
$ sudo apt-get install -y build-essential
$ wget http://ftp.gnu.org/gnu/gettext/gettext-0.19.8.tar.gz
$ tar xzf gettext-0.19.8.tar.gz
$ cd gettext-0.19.8/
$ ./configure
$ make
$ sudo make install
  • 安装jhbuild
$ sudo apt-get install -y git autoconf automake yelp-tools
### Ubuntu ARM模拟环境git无法使用,先退出模拟环境,然后执行git,再切回模拟环境并重新更新其所有者
$ cd ~/arm-trusty-root/home/ubuntu/
$ git clone https://github.com/silvermagic/jhbuild.git
$ cd ~/
$ sudo ./chroot.sh
$ su ubuntu
$ cd ~/
$ sudo chown ubuntu:ubuntu -R ~/jhbuild/
### 回到模拟环境并配置jhbuild环境
$ cd jhbuild/
$ git checkout custom
$ ./autogen.sh
$ make
$ sudo make install
$ echo 'PATH="$HOME/.local/bin:$PATH"' >> ~/.profile
$ source ~/.profile
$ cp examples/custom/mini-spice-gtk.jhbuildrc ~/.config/jhbuildrc
  • 编译spice-gtk
$ sudo apt-get install apt-file
$ apt-file update
$ sudo apt-get install xorg-dev
$ jhbuild sysdeps --install
$ jhbuild build
  • 打包spice-gtk
$ cd ~/gnome
$ tar zcf spice-gtk.tar.gz usr/
  • 安装spice-gtk
$ sudo tar zxf spice-gtk.tar.gz -C /

Windows环境

操作系统: 64位 Fedora23

  • 下载源文件

如果要编译32位和64位版本,建议新建x64和x86两个目录clone两份源码libusbspice-gtkspice-protocolvirt-viewerusbredir

  • 安装依赖
### noarch:表示软件运行在32位/64位平台
### x86_64:表示软件运行在64位平台
### i686:表示软件运行在32位平台
$ sudo yum -y install dh-autoreconf.noarch
$ sudo yum -y install gtk-doc.noarch
$ sudo yum -y install icoutils.x86_64
$ sudo yum -y install perl-Text-CSV.noarch
$ sudo yum -y install vala-tools.x86_64
$ sudo yum -y install msitools.x86_64
### spice-common编译报错recipe for target 'generated_client_demarshallers.c' failed
$ sudo pip install pyparsing
### 64位virt-viewer编译依赖包
$ sudo yum -y install mingw64-filesystem.noarch
$ sudo yum -y install mingw64-gcc.x86_64
$ sudo yum -y install mingw64-libxml2.noarch
$ sudo yum -y install mingw64-glib2.noarch
$ sudo yum -y install mingw64-pixman.noarch
$ sudo yum -y install mingw64-openssl.noarch
$ sudo yum -y install mingw64-gtk3.noarch
$ sudo yum -y install mingw64-gstreamer*
$ sudo yum -y install mingw64-celt051.noarch
$ sudo yum -y install mingw64-gdb.noarch
### 32位virt-viewer编译依赖包
$ sudo yum -y install mingw32-filesystem.noarch
$ sudo yum -y install mingw32-gcc.x86_64
$ sudo yum -y install mingw32-libxml2.noarch
$ sudo yum -y install mingw32-glib2.noarch
$ sudo yum -y install mingw32-pixman.noarch
$ sudo yum -y install mingw32-openssl.noarch
$ sudo yum -y install mingw32-gtk3.noarch
$ sudo yum -y install mingw32-gstreamer*
$ sudo yum -y install mingw32-celt051.noarch
$ sudo yum -y install mingw32-gdb.noarch
$ sudo yum -y install mingw32-nsis.i686
### 标准手法,可在make前一次性将所缺依赖安装好
$ dnf builddep mingw-virt-viewer.spec

编译

  • 执行autogen.shautoreconf完成后失败不要紧,因为脚本使用的是configure而不是mingw32-configure

  • 有些情况mingw32-configure失败找不到库文件,需要执行export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig/

  • 编译libusb

### 64位
$ ./autogen.sh
$ mingw64-configure --enable-usbdk --enable-debug-log
$ sudo make install
### 32位
$ ./autogen.sh
$ mingw32-configure --enable-usbdk --enable-debug-log
$ make
$ sudo make install
  • 编译usbredir
### 64位
$ ./autogen.sh
$ mingw64-configure
$ make
$ sudo make install
### 32位
$ ./autogen.sh
$ mingw32-configure
$ make
$ sudo make install
  • 编译spice-protocol
### 64位
$ ./autogen.sh
$ mingw64-configure --enable-maintainer-mode
$ make
$ sudo make install
### 32位
$ ./autogen.sh
$ mingw32-configure --enable-maintainer-mode
$ make
$ sudo make install
  • 编译spice-gtk
### 64位
### 3.29-4.8的某处修改会导致32位spicy崩溃
$ git reset --hard 02c4cd59a45844b938a8c5b647538d01d4f040a0
$ ./autogen.sh
$ mingw64-configure --enable-maintainer-mode --with-gtk=3.0 --enable-vala --enable-usbredir=yes --with-sasl=no --enable-gstaudio
$ make
$ sudo make install
### 32位
### 3.29-4.8的某处修改会导致32位spicy崩溃
$ git reset --hard 02c4cd59a45844b938a8c5b647538d01d4f040a0
$ ./autogen.sh
$ mingw32-configure --enable-maintainer-mode --with-gtk=3.0 --enable-vala --enable-usbredir=yes --with-sasl=no --enable-gstaudio
$ make
$ sudo make install
  • 编译virt-viewer
### 64位,修改spice-gtk3.wxi和virt-viewer.nsis.in,将libspice-client-gtk-3.0-4.dll改成libspice-client-gtk-3.0-5.dll
$ ./autogen.sh
$ mingw64-configure --with-gtk=3.0 --with-spice-gtk
$ make
$ sudo make install
$ cd data/
$ make msi
### 32位,修改spice-gtk3.wxi和virt-viewer.nsis.in,将libspice-client-gtk-3.0-4.dll改成5
$ ./autogen.sh
$ mingw32-configure --with-gtk=3.0 --with-spice-gtk
$ make
$ sudo make install
$ cd data/
$ make msi

测试环境准备

VMWare Workstation

| 操作系统 | 类型 | 配置 | 用途 |

| - | - | - |

| CentOS 7 | 虚拟机 | 2GB 2CPU 40GB | 模拟服务端 |

| Windows 7| 虚拟机 | 1GB 1CPU 40GB | 模拟客户端 |

服务端配置

  • 安装virt-manager
  • 创建一台xp虚拟机
  • 修改xp虚拟机配置文件中的spice监听地址<graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
  • 删除xp虚拟机默认的usb重定向
  • 防火墙允许libvirt通过,如果客户端连接出现被拒绝,可执行iptables -F

客户端配置

使用virt-viewer连接

在开始菜单找到Remote viewer,输入连接地址spice://192.168.30.139:5900其中192.168.30.139为服务端ip,端口号5900可在服务端用命令ps -ef|grep -i 'spice port'查询

交叉编译Spice-gtk的更多相关文章

  1. spice

    the following diagram illustrates VD-Interface illustrates display portemphasizing   emphasizing   e ...

  2. 嵌入式linux GUI--DirectFB + GTK至尊秘笈

    前言 数年前,曾经开发过一个嵌入式的产品,如今市场依然存在,但由于电子产品的升级换代很快,许多元器件都采购不到了,为了延续产品的生命周期,计划在linux平台上开发新的版本.而在linux上的GUI上 ...

  3. 通过Python调用Spice-gtk

    序言 通过Virt Manager研究学习Spice gtk的Python方法 你将学到什么 Virt Manager研究 显示代码定位 首先我们使用Virt Manager来观察桌面连接窗口 然后我 ...

  4. 服务器端spice配置详解

    1. 安装必要的工具 sudo apt-get install build-essential autoconf git-core intltool 2. 安装必要的依赖包 -dev libxfixe ...

  5. 在Ubuntu上搭建kindle gtk开发环境

    某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层.不过kindle更注重简单.节能.稳定.Amazon一向认为,功能过多会分散人们阅读时候的注意力. Kind ...

  6. spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射)

    1.系统环境 1.1 测试环境 centos6.4最小化安装(centos6.x桌面版也适用) 使用yum源为163源加EPEL源 1.2 spice客户端介绍 spice作为远程连接工具,可以支持远 ...

  7. go GTK msys2

    1 下载安装msys2 MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境.同时它也是一个在Cygwin (POSIX 兼容性层) 和 ...

  8. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

  9. Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总

    闲扯: 实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux. 正文:(我一时兴起开始写博客,准备不充 ...

随机推荐

  1. UOJ130 【NOI2015】荷马史诗

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  2. Hadoop- Hadoop运维小计

    如果是新添加一个节点,需要执行以下步骤: 首先,把新节点的 IP或主机名 加入主节点(master)的 conf/slaves 文件. 然后登录新的从节点,执行以下命令: $ cd Hadoop_pa ...

  3. 模拟RPG格斗

    三个英雄角色参与PK 每个英雄具有以下几个属性:生命值(为0时英雄倒下).攻击力(每次攻击时扣除对方的生命值点数).攻击间隔(每次攻击过后都要等待间隔时间才能进行下次攻击,首次攻击之前也要先等待间隔时 ...

  4. Python基础-random模块及随机生成11位手机号

    import random # print(random.random()) # 随机浮点数,默认取0-1,不能指定范围# print(random.randint(1, 20)) # 随机整数,顾头 ...

  5. java支付宝开发-00-资源帖

    一.一些重要的官方文档 1.沙箱登录 2.沙箱环境使用说明 3.如何使用沙箱环境 4.当面付产品介绍 5.扫码支付接入指引 6.当面付快速接入 7.当面付接入必读 8.当面付进阶功能 9.当面付异步通 ...

  6. UVA-11020(BST)

    题意: 给n个点,一个点(x,y)有优势时满足不存在点(fx,fy)使得fx<x,fy<=y或fx<=x,fy<y;问当前有多少个有优势点; 思路: 学习BST的入门题,代码是 ...

  7. Java 关于创建String对象过程的内存分配

    一.String s = "abc"  和 String s = new String("abc") 的区别 1.String s = "abc&qu ...

  8. Hadoop问题集锦

    1.Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup 使用Spark进行处理的时候 ...

  9. Log Structured Merge Trees(LSM) 原理

    http://www.open-open.com/lib/view/open1424916275249.html

  10. css3 利用perspective实现翻页效果和正方体 以及翻转效果

    要点: 1 实现3D效果就需要使用perspective属性 1 页面旋转使用css3的rorate 2 使用backface-visibility 实现正面元素翻转之后背面不可见,显示出反面的元素 ...