gentoo安装kvm+spice及opencv教程步骤
发布时间:2022-06-14 10:52 所属栏目:61 来源:互联网
导读:本文我们来讲讲linux核心版本的gentoo如何安装kvm+spice及安装opencv的步骤过程,对gentoo感兴趣的朋友可以看看。 很早之前就听说spice相对vnc来说要强大很多,之前因为安装的是32位的系统,没法进行尝试,安装了64位的系统之后,还没时间去折腾过。 先说下
本文我们来讲讲linux核心版本的gentoo如何安装kvm+spice及安装opencv的步骤过程,对gentoo感兴趣的朋友可以看看。 很早之前就听说spice相对vnc来说要强大很多,之前因为安装的是32位的系统,没法进行尝试,安装了64位的系统之后,还没时间去折腾过。 先说下安装,安装的过程相对比较方便,首先需要卸载原来安装的app-emulation/qemu-kvm,因为之后要安装的拥有spice功能的kvm和这个包是相互block的。卸载了之后,就需要重新emerge app-emulation/qemu-kvm-spice这个包。否则直接在virt-manager中将虚拟机的显示从vnc切换到spice,在启动的时候会提示这个版本的kvm不支持spice协议。其他和spice相关的包还有:app-emulation/spice,app-emulation/spice-protocol等,如果要在virt-manager中直接接入到spice界面,需要安装net-misc/spice-gtk这个包(不过我在kde中用的时候,发现用net-misc/spice-gtk的时候,会导致整个界面都变成透明的,估计是因为gtk和kwin的特效不太兼容)。 安装还是非常简单的,安装完成之后,就要重新配置原来的windows虚拟机了。在virt-manager中删掉原来的vnc显示,新增一个graphics,类型选择spice server。将原来视频中使用的虚拟显卡换成qxl,这样启动虚拟机之后,就会使用spice了。 前面说到了kde中使用spice-gtk有很多不正常的地方,所以我是直接使用spicec这个命令的,因为没有配置任何的加密,所以连接非常简单,直接使用: spicec -h 127.0.0.1 -p 5900 端口号可以在增加spice server的时候设置,如果选择自动分配,那么会从5900开始递增分配。 启动之后,需要给里面的windows安装驱动,windows需要的所有二进制文件,都可以在http://spice-space.org/download.html这里的Windows binaries中找到。首先下载qxl driver,在windows提示需要安装驱动文件的时候,安装这个qxl driver,就可以完成了spice显示的功能了。 之前按照http://www.linux-kvm.com/content/rhev-spice-guest-drivers-released-windows这个页面安装windows驱动,前面安装qxl非常方便,但是后面的vdi port driver却一直没有提示需要安装,在最后一步Install SPICE agent之后,这个服务一直无法启动,第一次的尝试spice就到此为止了。 之后又继续搜索了下这个spice agent无法启动,在redhat的bugzilla中发现原来现在sprice agent已经不通过vdi了,需要通过virtio-serial来进行交互。在virt-manager的界面上,怎么样都找不到如何添加这个设备的方法,最后只能通过编辑虚拟机配置文件的方式直接修改了。通过使用virsh edit XXX (XXX为虚拟机的名字),会打开虚拟机的配置文件,根据libvirt网站上的介绍,在devices标签中增加了两个channel: <channel type=’pty’> <target type=’virtio’ name=’arbitrary.virtio.serial.port.name’/> <address type=’virtio-serial’ controller=’0′ bus=’0′ port=’1’/> </channel> <channel type=’spicevmc’> <target type=’virtio’ name=’com.redhat.spice.0’/> <address type=’virtio-serial’ controller=’0′ bus=’0′ port=’2’/> </channel> 保存这个配置文件,启动虚拟机,这个时候windows又会提示发现了新硬件,需要使用spice下载页面上的Windows virtio-serial driver进行安装,安装完成之后,重新安装下spice agent,这个时候spice agent服务就能够正常启动了,通过这个服务,虚拟机就能够和宿主机共享剪切板了. 写了个脚本之后,发现这个应用依赖的png库都是1.4.5的,上面的提示是libpng在编译时指定错了版本,虽然我本地有1.2和1.4两个版本的libpng,但是头文件只有1.4的,仔细看了下编译完的目录,通过搜索png.h这个关键字,发现竟然以来了opencv里面自带的libpng,按理说如果发现了系统的libpng之后,就不应该再用自带的libpng了,最后在highgui模块的cmakelists.txt文件中发现了这些内容: if(WITH_JPEG) add_definitions(-DHAVE_JPEG) if(NOT JPEG_FOUND) set(use_3rdparty TRUE) endif() endif() if(WITH_PNG) add_definitions(-DHAVE_PNG) if(NOT PNG_FOUND) set(use_3rdparty TRUE) endif() endif() if(WITH_TIFF) add_definitions(-DHAVE_TIFF) if(NOT TIFF_FOUND) set(use_3rdparty TRUE) endif() endif() if(WITH_JASPER) add_definitions(-DHAVE_JASPER) if(NOT JASPER_FOUND) set(use_3rdparty TRUE) endif() endif() if(use_3rdparty) include_directories(“${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include”) --phpfensi.com endif() 也就是说,这几个库里面任意一个没有的话,都会把3rdparty/include这个目录加入到头文件的搜索目录中,gentoo在emerge的时候,默认是没有USEjpeg2k的,也就是不使用系统的jasper库,导致引用了自带的png.h. 找到了原因之后,解决起来就很方便了,在emerge opencv之前,确保把jpeg2k加入到USE中即可. (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读