vmware虚拟机玩GPU显卡直通

news2024/11/24 5:55:34

 安装好exsi以后,找到管理----硬件-----PCI设备,勾选想要直通的显卡,然后点击“切换直通”

切换以后可以看到列表中的直通列显示为活动就对了。

然后编辑虚拟机设置,CPU关闭硬件虚拟化(向客户机操作系统公开硬件辅助的虚拟化)

内存勾选锁定(预留所有客户机内存,全部锁定)

,虚拟机选项----引导选项-----关闭UEFU安全引导(这个必须要关,很重要)

添加其他设备-------PCI设备,在配置界面的最底部会多出来一个“新PCI设备”,选择想要直通的设备,

依次添加想要直通的显卡

看其他文章建议,将声卡也一块加进去,那就把声卡也加进去避免出现未知问题。下图是我正常工作以后的截图:

我这里安装的是ubuntu 22.04,内核是5.19.0-32,安装过程中不要勾选(安装第三方显卡或WIFI 驱动那个复选框),安装完系统以后在安装英伟达驱动前务必先apt update更新包,再apt upgrade升级所有包,特别是和核心有关的包都升级到最新版以后再开始安装英伟达驱动。

参考文章:https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-manjaro-linux  

Nvidia-smi "No devices were found" - VMWare ESXI Ubuntu Server 20.04.03 with RTX3070 - #38 by frostywite - Linux - NVIDIA Developer Forums

到Official Drivers | NVIDIA 这里下载对应的设备驱动.run文件,之前英伟达官方网站的deb安装方式不行,没法加参数-m =kernel-open去安装驱动,不是虚拟机下面的没问题,虚拟化下面的目前看只能通过.run文件加参数-m=kernel-open安装。

 按照下面的方法进行安装:

sudo apt install libglvnd-core-dev  libglvnd-dev  build-essential 

先执行一遍.run文件,目的是按照提示让驱动程序去创建/etc/modprobe.d/blacklist-nvidia-nouveau.conf这些文件,上传下载得到的.run文件到ubuntu 22,chmod +x 赋予可执行权限,然后

./NVIDIA-Linux-x86_64-550.107.02.run -m=kernel-open

 如果安装的是ubuntu server系统,按照提示直接安装完reboot就可以用了,如下:

如果是ubuntu desktop,需要按照下面的方法安装

nano /etc/modprobe.d/blacklist-nvidia-nouveau.conf

blacklist nouveau
options nouveau modeset=0

nano /etc/modprobe.d/nvidia.conf

options nvidia NVreg_OpenRmEnableUnsupportedGpus=1

sudo update-initramfs -u

Reboot

上传下载得到的.run文件到ubuntu 22,chmod +x 赋予可执行权限,然后

./NVIDIA-Linux-x86_64-550.107.02.run -m=kernel-open

所有能选择yes的都选择yes,安装完成以后reboot,执行nvidia-smi,可以看到下面的画面:

-----------------------------------------------------------------------------------------------------------------------------

下面的资料是来回折腾尝试配置的时候的资料,不用看了,按照上面的方法安装就可以用了。

1. Go to: /etc/modprobe.d/
2. Make a file: blacklist-nvidia-nouveau.conf
3. Put this in the file:
blacklist nouveau
options nouveau modeset=0
4. Make a other “nvidia.conf” file and put this in the file: options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
5. Updat kernel init ram fs: sudo update-initramfs -u
6. Reboot
7. Go to the Nvidia site to the page to download the driver that you want.
8. Copy the URL of the download butten and past it behind wget to download it to the current folder
9. Sudo chmod 700 the file
10. Run the install file: sudo .\filename.run
a. For open source: sudo .\filename.run -m=kernel-open
b. Watch out! See that the nvidia.conf file exist in the modprobe folder and you have rebooted (and run the update-initramfs commando). Then only the GTX/RTX/QUADRO cards wil work!
11. After the instalation reboot the server
12. Test with nvidia-smi
13. Great succes!

pciPassthru.use64bitMMIO配置为TRUE

VMkernel.Boot.disableACSCheck配置为TRUE   

pciPassthru.64bitMMIOSizeGB配置为64  #我这里测试没有配置这个也能工作

nano /etc/modprobe.d/blacklist.conf 在文件的最后添加以下内容后重启

blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
blacklist nv

如果你前面的步骤没有禁用uefi安全启动,安装驱动的时候会有下面的提示:会要求你输入两遍密码,记住输入的密码,过一会重启以后要用。

重启以后会出现下面这样的界面,选择第二个Enroll MOK,选择continue,一直到要你输入密码后reboot

 都安装好以后如果提示找不到设备,可以敲以下命令进行排查

nvidia-smi  这个现在我执行是提示没有设备

root@vgpu1:~# lspci | grep NVIDIA
03:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
03:01.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
03:01.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
root@vgpu1:~#  lsmod | grep nvidia
nvidia_uvm           4677632  0
nvidia_drm             98304  0
nvidia_modeset       1343488  1 nvidia_drm
nvidia              54030336  2 nvidia_uvm,nvidia_modeset
drm_kms_helper        200704  2 vmwgfx,nvidia_drm
drm                   581632  8 vmwgfx,drm_kms_helper,nvidia,drm_ttm_helper,nvidia_drm,ttm
root@vgpu1:~#  dmesg | grep nvidia
[    6.244921] audit: type=1400 audit(1723624822.923:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=785 comm="apparmor_parser"
[    6.244926] audit: type=1400 audit(1723624822.923:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=785 comm="apparmor_parser"
[    6.898620] nvidia: loading out-of-tree module taints kernel.
[    6.898632] nvidia: module license 'NVIDIA' taints kernel.
[    7.046885] nvidia-nvlink: Nvlink Core is being initialized, major device number 236
[    7.048732] nvidia 0000:03:00.0: enabling device (0000 -> 0003)
[    7.049766] nvidia 0000:03:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    7.099483] nvidia 0000:03:01.0: enabling device (0000 -> 0003)
[    7.100327] nvidia 0000:03:01.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    7.220493] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  550.54.15  Tue Mar  5 21:59:57 UTC 2024
[    7.257032] [drm] [nvidia-drm] [GPU ID 0x00000300] Loading driver
[    8.143173] [drm:nv_drm_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000300] Failed to allocate NvKmsKapiDevice
[    8.143332] [drm:nv_drm_register_drm_device [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000300] Failed to register device
[    8.143448] [drm] [nvidia-drm] [GPU ID 0x00000301] Loading driver
[    9.024981] [drm:nv_drm_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000301] Failed to allocate NvKmsKapiDevice
[    9.025120] [drm:nv_drm_register_drm_device [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000301] Failed to register device
[    9.111670] nvidia_uvm: module uses symbols nvUvmInterfaceDisableAccessCntr from proprietary module nvidia, inheriting taint.
[    9.141323] nvidia-uvm: Loaded the UVM driver, major device number 234.
root@vgpu1:~# lshw -c video
  *-display
       description: VGA compatible controller
       product: SVGA II Adapter
       vendor: VMware
       physical id: f
       bus info: pci@0000:00:0f.0
       logical name: /dev/fb0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=vmwgfx latency=64 resolution=1176,885
       resources: irq:16 ioport:840(size=16) memory:f0000000-f7ffffff memory:ff000000-ff7fffff memory:c0000-dffff
  *-display:0
       description: VGA compatible controller
       product: GA102 [GeForce RTX 3090]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list
       configuration: driver=nvidia latency=248
       resources: irq:17 memory:fc000000-fcffffff memory:c0000000-cfffffff memory:d2000000-d3ffffff ioport:d80(size=128)
  *-display:1
       description: VGA compatible controller
       product: GA102 [GeForce RTX 3090]
       vendor: NVIDIA Corporation
       physical id: 26
       bus info: pci@0000:03:01.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list
       configuration: driver=nvidia latency=248
       resources: irq:18 memory:fb000000-fbffffff memory:b0000000-bfffffff memory:d0000000-d1ffffff ioport:d00(size=128)
root@vgpu1:~# lspci | grep NVIDIA
03:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
03:01.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
03:01.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)

sudo journalctl -b

如果需要卸载旧的驱动或者删除有问题的驱动,可以尝试将下面的内容存为shell 脚本去执行

sudo nvidia-uninstall
sudo apt purge -y '^nvidia-*' '^libnvidia-*'
sudo rm -r /var/lib/dkms/nvidia
sudo apt -y autoremove
sudo update-initramfs -c -k `uname -r`
sudo update-grub2
read -p "Press any key to reboot... " -n1 -s
sudo reboot

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

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

相关文章

【python】在Windows中定时执行Python脚本的详细用法教学

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

高可用集群keepalived(知识点+实验)详细版

高可用集群KEEPALIVED 一.高可用集群 1.1 集群类型 LB:Load Balance 负载均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream) HA:High Availability 高可用集群 数据库、Redis SPoF: Single Point of Failure&…

在win10中,安装mingw-get-setup

安装windows下的VSCode软件 Windows下的VSCode安装后,还需要安装gcc编译器和g编译器。 gcc:编译C语言程序的编译器; g:编译C代码的编译器; 1、在Windows下安装VSCode; 2、安装插件有下面几个&#xff1a…

iPhone SE 4可能无法使用Apple Intelligence RAM可能被降级

在设备上运行Apple Intelligence的先决条件是RAM容量和神经引擎的能力。这些要求解释了为什么苹果的生成AI功能套件将首先在iPhone 15 Pro和iPhone 15 Pro Max上可用,因为这两款手机都配备了8GB RAM和A17 Pro。 此前有消息称,iPhone SE 4也将配备相同容…

Stable Diffusion入门:新手必备的几种插件,让小白快速上手(附带地址)

Stable Diffusion是一款强大的AI绘画工具,对于初学者而言,掌握这些模型和插件的使用,是解锁创作潜力、迅速提升技能水平的关键所在! 首先我们简单介绍一下插件是什么?如何安装插件? 插件(Plug…

VUE最强学习宝典01

目录 1.Vue是什么? 2. 两种使用方法 3.创建第一个vue实例 4.补充小知识 5.错误查询 1.Vue是什么? 概念:动态构建用户界面的渐进式 JavaScript 框架 。 优点:大大提升开发效率(70%) 缺点:需要理解记忆规划-->官…

开学季必备:全能耐用运动耳机推荐!

大家好!开学季快到了,我们在学校的生活不仅仅包括课业,还有很多运动和体育项目是不可避免的。运动时,如果没有音乐的陪伴,难免会觉得枯燥乏味。作为一个对运动耳机有较高要求的学生,我最近发现了一款非常值…

VLM 系列——MiniCPM-Llama3-V 2.6——论文解读——前瞻(源码解读)

一、概述 1、是什么 是一款面向终端设备的多模态大型语言模型(MLLM),论文暂未发布 ,它专注于实现在手机等资源受限设备上的高级AI功能,参数8B(qwen2 7B SigLIP ViT-400m/14 视觉标记压缩层 )…

HOW - 用腾讯蓝盾部署一个 Web 应用

目录 一、介绍二、项目、流水线和 Stage1. 项目(Project)2. 流水线(Pipeline)3. Stage(阶段)示例:配置一个简单的 CI/CD 流程的基本步骤总结 三、一条完整的流水线包括什么 Stage1. 源代码管理&…

29岁的服务员到网络安全工程师,大龄转行成功逆袭

大龄转行,一直在网络上备受争议。 转换职业赛道,从学习能力和试错成本角度来看,确实越早行动越有利,而大龄转行无疑伴随着较高的风险。 然而,大龄转行并非无路可走:古有苏老泉,年近三十方才开始…

数据结构之---堆(2)

一、出堆 出堆是指将堆顶数据出堆。出堆完成后要保证剩余数据还是满足原来堆的性质。所以我们把堆顶数据和堆底最后一个数据交换,取出新堆底数据,之后通过向下调整算法将剩下的数据重新排列成一个堆。 大堆经过出堆操作得出的数据是升序的 小堆经过出堆…

聚观早报 | 一加13配置细节曝光;谷歌首推人工智能手机

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 8月15日消息 一加13配置细节曝光 谷歌首推人工智能手机 MONA M03汽车即将上市 iPhone SE 4将升级8GB运行内存 R…

redis事件机制

redis服务器是一个由事件驱动(死循环)的程序,它总共就干两件事: 文件事件:利用I/O复用机制,监听Socket等文件描述符发生的事件,如网络请求时间事件:定时触发的事件,负责完成redis内部定时任务&…

MCU复位RAM会保持吗,如何实现复位时变量数据保持

在使用MCU时,通常大家默认MCU复位时RAM会被复位清零,那实际MCU复位时RAM是什么状态?如何让mcu复位时RAM保持不变呢? MCU复位有电源复位、Standby复位、内核复位、看门狗复位、引脚复位等。 其中内部会有掉电动作的复位有电源复位…

Linux知识复习第5期

目录 1、实验环境 2、日志存放 3、自定义日志采集路径 1、实验环境 hostnamectl hostname node1.zx.org # 设置主机名 vim /etc/hosts # 域名解析修改 hostname -I # 显示ip地址 2、日志存放 /var/log/messages 系统服务日志,常规…

快速MD5强碰撞生成器:fastcoll

问:可以制作两个具有相同哈希值的不同文件吗? 答:可以。 在密码学中,哈希函数将输入数据转换成固定长度的字符串。但由于输入的无限性和输出的固定性,不可避免地会有不同输入产生相同的哈希值,这就是碰撞。…

【ITK】图像分割算法:FastGrowCut详解

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享图像分割算法FastGrowCut的详细解析过程,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录…

单元训练09:定时器实现秒闪功能

蓝桥杯 小蜜蜂 单元训练09:定时器实现秒闪功能 #include "stc15f2k60s2.h"#define LED(x) \{ \P0 x; \P2 P2 & 0x1f | 0x80; \P2 & 0x1f; \}#define L1 0xFE; // 定义L1 …

线程锁(2)

线程的资源回收 int pthread_join(pthread_t thread, void **retval); 功能: 等待线程结束 参数: thread --- 线程tid retval --- 用来保存,退出状态值,所在空间的地址 返回值: 成功 0 失败 错误…

[240816] 【超级大牛】kovidgoyal:calibre 和 kitty 的作者 | Go 发布 1.23.0 版本

目录 【超级大牛】kovidgoyal:calibre 和 kitty 的作者calibrekitty Go 发布 1.23.0 版本Go 1.23 版本更新说明 【超级大牛】kovidgoyal:calibre 和 kitty 的作者 calibre calibre 是由 github.com/kovidgoyal 使用 C 和 Python 开发的跨平台电子书管理…