ubuntu20 kvm显卡直通实验-a4000

news2024/11/20 15:18:14

一、环境:

显卡:NVIDIA RTX A4000
系统:Ubuntu20.04
CPU:intel

二、安装kvm

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager   ovmf`

添加用户到“libvirt”和“kvm”组

sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

三、开启iommu
1、修改/etc/default/grub,添加“intel_iommu=on”到CRUB_CMDLINE_LINUX,如下图
在这里插入图片描述
若为amd芯片,变更为"amd_iommu=on"

2、更新grub,然后重启ubuntu

sudo update-grub
sudo reboot

3、检查iommu是否成功开启

dmesg | grep -e DMAR -e IOMMU

如下图输出即为开启成功在这里插入图片描述
四、验证nouveau是否禁用

lsmod | grep nouveau

如下图,无输出,即已完成禁用:
在这里插入图片描述
如果有输出,请执行如下:

sudo gedit /etc/modprobe.d/blacklist.conf

#在文件末尾添加如下配置:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

#保存并退出
在内核中直接禁用Nouveau,命令如下(确保完全禁用):

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

更新配置,并重启

sudo update-initramfs -u
sudo  reboot`

五、显卡解绑
验证显卡是否安装驱动
nvidia-smi
在这里插入图片描述
若已安装显卡驱动,执行如下命令卸载:

sudo /usr/bin/nvidia-uninstall​

卸载成功后,重启,重新执行nvidia-smi,确认是否卸载成功

1、查询显卡id

lspci -nn | grep NVIDIA
在这里插入图片描述
10de:24b0字样即为id

2、用libvirt解除绑定

(1)查询设备ID:

virsh nodedev-list | grep pci

在这里插入图片描述
验证设备NVIDIA id是否一致

virsh nodedev-dumpxml pci_0000_01_00_0

如下图:
在这里插入图片描述
(2)、开始解绑

sudo modprobe pci_stub
sudo virsh nodedev-detach pci_0000_01_00_0
sudo virsh nodedev-detach pci_0000_01_00_1

#多张显卡时,变更id重复执行

(3)、设置重启设备时,确保显卡自动解绑

sudo gedit /lib/systemd/system/rc-local.service`   

#末尾添加:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

在这里插入图片描述
#保存并退出,设置自启动

sudo systemctl enable rc-local.service

编写rc.local

 sudo gedit /etc/rc.local
#!/bin/sh -e
sudo vim /etc/rc.local
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# In order to enable or disable this script just change the execution
# By default this script does nothing.
# add your scritp here
echo "this shows rc.local is start onboot" > /usr/local/rc-local-info.log
sleep 1
sudo modprobe pci_stub
sleep 1
virsh nodedev-detach pci_0000_01_00_0
sleep 1
virsh nodedev-detach pci_0000_01_00_1
exit 0

在这里插入图片描述

#保存并退出,多张显卡更改id进行添加。

设置rc.local权限,并重启ubuntu

sudo chmod -R +x /etc/rc.local
sudo reboot

六、创建kvm

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

个人简历上的照片有什么要求?这些基本要求要知道

简历对我们来说非常重要,因为它可以帮助我们展示我们的工作经验、技能和教育背景,从而让面试者更好地了解我们的能力和合适程度。简历通常是我们与公司之间的第一次接触,因此它应该清晰、简洁和易于阅读,以便引起面试者的兴趣&…

【机械硬盘重新挂载】

一、背景描述 目前机器上有一个6.5T的机械硬盘,挂在为/home目录,但是目前处于公司业务需要,需要将机械硬盘重新挂载为/data,但是/home与/data中都有业务数据,需要我们谨慎操作。 二、概念解析 挂载源:要…

机器学习项目实战-能源利用率 Part-1(数据清洗)

1. 项目背景 2009年的《当地法案84号》,或纽约市基准法案,要求对能源和用水量进行年度基准测试和披露信息。被覆盖的财产包括单个建筑物的税收地块,其总建筑面积大于50,000平方英尺(平方英尺),以及具有超过…

CISP-PTE认证是什么?含金量有多高?

CISP即“注册信息安全专业人员”,由中国信息安全测评中心根据中央编办授权,系国家对信息安全人员资质的最高认可。那么,CISP-PTE认证又是什么呢?它的含金量又有多高?下面,国科科技就为你介绍。 CISP-PTE是…

什么是Redisson分布式锁?有什么作用?

前言: 如果你的简历中写了做过电商项目,那么面试官基本都会从SpringBoot、SpringCloud以及Dubbo这些微服务架构涉及的知识问起,然后深入到问什么是分布事务、分布式锁以及分布式缓存等内容。 这篇文章主要聊聊什么是Redisson分布式锁&#…

【Java EE 初阶】线程安全及死锁解决方案

目录 1.多线程下线程不安全的问题 1.使用多个线程对Array List集合进行添加操作并打印,查看结果 2.如何在多线程环境下使用线程安全的集合类 CopyOnWriteArrayList 3.多线程环境下使用队列 4.多线程环境下使用哈希表 1.HashTable线程安全 2.Concurrent Hash M…

yolov8训练记录

resume: 将model设置为最近一次训练的权重路径 (last.pt) resume设置为True YOLOv8 在 Python 环境中直接使用,不用 ultralytics 库 pip uninstall ultralytics 原因:安装 ultralytics 库,只能在虚拟环境中使用,自己修改代码非常…

ACM 1004 | 母牛的故事

文章目录 0x00 前言 0x01 题目描述 0x02 问题分析 0x03 代码设计 0x04 完整代码 0x05 运行效果 0x06 总结 0x00 前言 C 语言网不仅提供 C 语言,还包括 C 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及软件下载、题解博…

新库上线 | CnOpenData·A股上市公司担保数据

A股上市公司担保数据 一、数据简介 “对外担保”,是指上市公司为他人提供的担保,包括上市公司对控股子公司的担保。“上市公司及其控股子公司的对外担保总额”,是指包括上市公司对控股子公司担保在内的上市公司对外担保总额与上市公司控股子…

初级数据结构——栈和队列

目录 1.栈栈的概念及结构栈的实现栈的结构初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈Stack.hStack.cTest.c 2.队列队列的概念及结构队列的实现队列的结构初始化队列队尾入队列队头出队列获取队列头部元素获取队列队尾元素获取队列中有效元素个数检…

【FATE联邦学习】model not init, call init_model() function

太长不看版 在local_mode下,不要使用t.CustModel进行实例化,而是直接使用原本的类进行实例化。 如果你设置了trainer.local_mode(),那么trainer里面的model不可以是t.CustModel()的实例。 给几个example: 正确: mod…

2023年美国大学生数学建模竞赛B题重塑马赛马拉的形象解题全过程文档及程序

2023年美国大学生数学建模竞赛 B题 重塑马赛马拉的形象 原题再现: 背景介绍   肯尼亚的野生动物保护区最初主要是为了保护野生动物和其他自然资源而设立的。肯尼亚议会通过了2013年《野生动物保护和管理法》, 以提供更公平的资源共享,以及…

重新定义新增长,从百果园看ESG如何可持续

当下,企业的增长亟待重新定义。 中国已基本告别人口红利时代,不少行业和企业当前陷入增长困境。原来以规模定义的增长很难实现,一些企业在日常运营中找不到方向和方式,因此需要重新定义“增长”。 最终,在环境恶化、…

计算机图形学-GAMES101-7

引言 场景中有很多的三角形,如果实现可见性和遮挡呢?  一个简单的想法是,从远到近画,近处的物体自然会覆盖掉远处的物体,这种画法也叫画家算法。  但是实际绘制中物体的顺序是不容易确定的,比如如下图绘制…

下载和安装appuploader

转载:下载和安装appuploader IOS开发工具官网地址 Appuploader home -- A tool improve ios develop efficiency such as submit ipa to appstore and manage ios certificate 最新版本已经优化了没支付688给apple的账号登录流程,无需再安装其他软件。…

DockerWeave容器跨机通信网络部署

Docker Weave网络部署 Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也可以加密传输。 Weave Net创建一个连接多个Docker主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到这上…

数组或结构体赋值时memcpy与直接赋值的效率比较

先上结论: 二者不一定谁快通常情况下,数组维度越大,使用memcpy效率更高数组维度越大,直接赋值耗时主体是循环耗时 Note: “等号赋值”被编译器翻译成一连串的MOV指令,而memcpy则是一个循环。“等号赋值”比…

05mysql---函数

目录 1:日期函数 2:字符函数 3:数值函数 4:流程函数 1:日期函数 select 函数(参数) 函数功能举例curdate()返回当前日期2023-05-17curtime()返回当前时间14:44:33now()返回当前日期和时间2023-05-17 14:44:33year(date)获取指定date的年份month(date)获取指定date的月份day…

【简介】限流

限流 为什么要限流限流算法单机限流计数器算法滑动窗口算法漏桶算法令牌桶算法 分布式限流配额算法 限流策略限流位置 为什么要限流 作为有追求的程序员,我们都希望自己的系统跑的飞快,但是速度再快,系统处理请求耗时也不可能为0&#xff0c…

线程池下载4K壁纸

学习记录 学习记录 一、目标 aHR0cHM6Ly9waWMubmV0Ymlhbi5jb20vDQo 拿到每张图片的href 和 标题,跳转到详情页进行图片下载地址的提取并请求实现图片本地下载 二、代码实现 """ CSDN: 抄代码抄错的小牛马 mailbox:yxhlhm2002163.com…