LookingGlass使用

背景

Looking Glass 是一款开源应用程序,可以直接使用显卡直通的windows虚拟机。
常见环境是Linux host+windows guest,基本部署结构图:
在这里插入图片描述

编译

git clone --recursive https://github.com/gnif/LookingGlass.git

编译client

mkdir client/build
cd client/build
cmake ../
make

编译后生成looking-glass-client可执行程序。

编译host

mkdir host/build
cd host/build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake ..
make

编译后生成looking-glass-host.exe可执行程序。

安装

host安装:

  1. 安装IVSHMEM设备驱动
  2. 安装Looking Glass服务或者直接拷贝looking-glass-host.exe可执行程序到桌面
    更方便的方法是从https://looking-glass.io/downloads下载最新的安装包安装,后面如果自己有重新编译的话直接替换looking-glass-host.exe即可。

client安装:
无需安装,直接执行looking-glass-client程序即可启动

运行

采用virt-manager工具

  1. 安装 qemu-system、virt-manager
  2. virt-manager新建Windows 10桌面
  3. 添加ivshmem
<shmem name='looking-glass'><model type='ivshmem-plain'/><size unit='M'>32</size>
</shmem>
  1. 取消memballoon
<memballoon model="none"/>
  1. 添加一个virtio的keyboard
<input type='keyboard' bus='virtio'/>
  1. 选择透传的pci设备,主要是显卡

其他需要注意的地方:需要手动设置下cpu的拓扑,默认是4socket,Windows只能认2socket

  1. 启动win10虚拟机
  2. linux端运行client程序连接window使用
    最终的使用效果:
    在这里插入图片描述
    在1080P的分辨率下播放视频,windows虚拟机cpu占用率很低(有物理gpu的加持)。

限制

笔者使用的物理显卡是NVIDIA GTX1060,测试下来发现windows虚拟机必须要连接屏幕或者hdmi欺骗器后looking-glass才能显示画面。

使用场景

本地是linux主机,有核显和独显,依赖windows上吃GPU性能的软件(比如steam游戏),利用looking-glass方案就不需要来回切换系统了,直接Linux上启动windows虚拟机,用客户端连上使用。

总结

looking-glass主要利用了以下几点来实现本地使用windows虚拟机:

  1. qemu ivshmem设备实现host和guest之间的内存共享
  2. 透传显卡带来的guest图形能力提升
  3. spice协议带来的键鼠声音同步

当然,它本质上就是一个桌面屏幕共享工具,网上的方案也很多。

它的优点:

  1. 开源,可定制
  2. 性能不错

它的缺点:

  1. 只能本地部署

参考

https://looking-glass.io/docs/B5.0.1/install/
https://blog.csdn.net/level_code/article/details/123271626

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ceph 手动部署(CentOS9)

#Ceph手动部署、CentOS9、squid版本、数字版本19.2.0 #部署服务:块、对象、文件 一、部署前规划 1、兼容性确认 2、资源规划 节点类型节点名称操作系统CPU/内存硬盘网络组件安装集群节点CephAdm01CentOS94U/8GOS:40G,OSD:2*100GIP1:192.169.0.9(管理&集群),IP2:…

如何优化亚马逊广告以提高ROI?

在竞争激烈的亚马逊市场中&#xff0c;优化广告以提高投资回报率&#xff08;ROI&#xff09;是卖家的关键任务。以下是一些实用的策略&#xff1a; 一、精准的关键词研究与选择 深入了解产品特性和目标受众 详细分析产品的功能、用途、优势和适用人群。例如&#xff0c;如果你…

CSS学习记录23

CSS用户界面 CSS调整大小 resize 属性规定元素是否应&#xff08;以及如何&#xff09;被用户调整大小。下例只允许用户调整 <div> 元素的宽度&#xff1a; div {resize: horizontal;overflow: auto; } 下例只允许用户调整 <div> 元素的高度&#xff1a; div {…

Linux菜鸟级常用的基本指令和基础知识

前言:很多Linux初学者都会头疼于指令太多记不住&#xff0c;笔者刚学习Linux时也是如此&#xff0c;学习Linux指令时&#xff0c;学了后面的指令&#xff0c;前面的指令也会忘的差不多了&#xff0c;针对于以上这些情况&#xff0c;笔者今天来分享一篇Linux菜鸟级的常用指令的博…

【数据仓库】hive on Tez配置

hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成&#xff0c;现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apac…

用python编写一个放烟花的小程序

import pygame import random # 代码解释及使用说明&#xff1a; # 首先&#xff0c;导入 pygame 和 random 库。pygame 用于创建游戏窗口和图形绘制&#xff0c;random 用于生成随机数。 # 初始化 pygame&#xff0c;并设置屏幕尺寸为 800x600 像素&#xff0c;设置窗口标题为…

【管道——二分+区间合并】

题目 思路 区间合并 1、按照左端点排序2、遍历窗口&#xff0c;若窗口非法&#xff0c;继续遍历&#xff1b;否则执行33、若是第一个窗口&#xff0c;设定合并结果初值&#xff0c;判断结果左端点是否造成“起点过大”&#xff0c;是&#xff0c;FALSE退出&#xff1b;否则执行…

语雀导入md文件图片丢失

经常被困扰是&#xff0c;从语雀导入md文件&#xff0c;即使知道把md文件和本地图片文件夹打包成zip进行导入&#xff0c;还是出现图片丢失 解决方式1&#xff1a; 把图片和md文件放到同个目录下&#xff0c;重新打包成zip文件&#xff0c;导入后有图片了 解决方式2&#xf…

单片机--51- RAM

1.概览某个51单片机对空间区域的划分&#xff1a; 2.RAM被分配的区域是256bytes&#xff0c; 通常8051单片机ram是128bytes 8052的ram是256bytes&#xff08;其中高128位的地址和sfr区域地址重合&#xff0c;物理区域不同&#xff09; extern uint32_t alarm_cnt_1; uint32…

145页PPT智慧矿山整体规划建设方案

本资料收录在【智慧方案文库】知识星球&#xff08;截止目前共9500份&#xff0c;PPTWORD超过7000份&#xff0c;持续上传中......&#xff09; 68页PPT丨5G智能矿山解决方案 77页PPT智慧矿山整体规划建设方案

NET拓展配置

IP地址的分类 ABC---单播地址 私网IP地址 A&#xff1a;10.0.0.0 -10.255.255.255 /8 B:172.16.0.0-172.31.255.255 /16--16b类网段 C:192.168.0.0-192.168.255.255 -- Ip地址数量不够 所有华为设备和NAT相关的配置都是在边界设备的出接口上配置 静态NAT 因为网络划分…

云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署 背景新建流水线配置流水线运行流水线总结 背景 先来看看没有配置云效流水线之前的部署流程&#xff1a; 而且宝塔会经常要求重新登录&#xff0c;麻烦的很 网上博客分享了不少的配置流程&#xff0c;这一篇博客的亮点就是不仅给出了npm命令构建&…

api接口技术开发系列如何调用电商平台的按图搜索商品API?

不同电商平台的按图搜索商品 API 调用方法大致相似&#xff0c;以下是一般的调用步骤&#xff1a; 注册与获取权限 注册账号&#xff1a;在相应的电商开放平台注册成为开发者&#xff0c;如淘宝平台、1688 平台等。创建应用&#xff1a;登录后创建应用&#xff0c;填写应用的相…

如何安装适配pytorch版本的torchvision

一、对照版本 版本对照pytorch/vision: Datasets, Transforms and Models specific to Computer Vision 二、下载对应版本的torchvision 下载连接1download.pytorch.org/whl/torch_stable.html 下载连接2download.pytorch.org/whl/cu110/torch_stable.html 笔者认为1会比2更…

【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…

如何在 VSCode 中配置 C++ 开发环境:详细教程

如何在 VSCode 中配置 C 开发环境&#xff1a;详细教程 在软件开发的过程中&#xff0c;选择一个合适的开发环境是非常重要的。Visual Studio Code&#xff08;VSCode&#xff09;作为一款轻量级的代码编辑器&#xff0c;凭借其强大的扩展性和灵活性&#xff0c;受到许多开发者…

C++语言编程————C++的输入与输出

1.面向过程的程序设计和算法 在面向过程的程序设计中&#xff0c;程序设计者必须指定计算机执行的具体步骤&#xff0c;程序设计者不仅要考虑程序要“做什么”&#xff0c;还要解决“怎么做”的问题&#xff0c;根据程序要“做什么”的要求&#xff0c;写出一个个语句&#xff…

TIM的输入捕获

IC&#xff08;Input Capture&#xff09;输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存到CCR中 我们使用测周法测频率 void IC_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB1PeriphCl…

RISC-V学习笔记

1.RISC ISA1个基本整数指令集多个可选的扩展指令集&#xff0c;如RV32I表示支持32位整数指令集。I表示基本指令集&#xff0c;M表示整数乘法与除法指令集&#xff0c;A表示存储器原子指令集&#xff0c;F表示单精度浮点指令集&#xff0c;D表示双精度浮点指令集等&#xff0c;C…

Scala_【5】函数式编程

第五章 函数式编程函数和方法的区别函数声明函数参数可变参数参数默认值 函数至简原则匿名函数高阶函数函数作为值传递函数作为参数传递函数作为返回值 函数闭包&柯里化函数递归控制抽象惰性函数友情链接 函数式编程 面向对象编程 解决问题时&#xff0c;分解对象&#xff…