解决Ubuntu20.04插入英伟达计算卡后无法开机问题-Ubuntu双显卡切换

2023-05-16

解决Ubuntu20.04插入英伟达计算卡后无法开机问题-Ubuntu双显卡切换

  • 问题详述
    • 问题分析
    • 问题解决-ubuntu双显卡切换

问题详述

本人新配了一台个人使用的机器学习服务器。对环境配置可能有影响的硬件如下:华硕B660M-plus WIFI D4,intel i7-12700k,英伟达tesla p40计算卡。英伟达tesla p40计算卡(长相类似显卡)是插在pciex16上的专业机器学习计算卡,不具备hdmi等显示输出接口,区别于机器学习常见的GTX和RTX系列显卡,也区别于丽台图形渲染显卡。
  本人首先没有使用p40计算卡,仅使用cpu核显将机器点亮,装上了Win10+Ubuntu20双系统,两个系统一切运行良好。
  紧接着在靠近cpu的一个pciex16接口上插上了tesla p40计算卡。
  首先在win10上装了cuda10.2以及与之配套的驱动、cudnn、anaocnda、python、torch、torchvision,并成功运行了一个之前做过的机器学习项目,顺利完成。这说明卡和电脑本身都没问题。
  其次,准备在ubuntu环境下配置环境。但是这时ubuntu突然打不开了。具体情况是,在ubuntu的grub界面选择启动ubuntu,紧接着没有进入登录界面,而是会黑屏报错,错误是什么intel version、usb、hdaudio等等的外设问题(前面一个开机的秒数,然后是具体的错误内容这样),我又将tesla p40计算卡从主板上拔了下来,ubuntu又恢复如初,能够重新正常开机进入系统,没有报错。这显然说明上面所述的报错并非导致无法开机的致命错误,问题出在这张英伟达p40计算卡上。

问题分析

问题出在这个英伟达计算卡上面。因为专业的tesla等系列计算卡是没有图形输出的。如果你用3090之类的卡去搞机器学习,3090上是有一个hdmi接口的,可以直接连显示器,但是p40上除了外接8pin电源接口以外一个其他插口也没有。即便如此,ubuntu发现了这是一个英伟达的卡,他就会默认这就是系统的显卡,应该由这个显卡给显示器供应图形信号,却浑然不知这张卡没有任何输出图形信号的能力。
  在ubuntu grub中选择第一个选项启动ubuntu,会黑屏报错。我就选了第二个,advance option,然后进入了recovery mode,这样是可以成功进入图形化界面的,正常进入系统。首先我怀疑是新卡缺乏驱动,导致ubuntu笨蛋地将计算卡认作了显卡。于是我在blacklist.conf中禁用了一切英伟达驱动,然后安装了460版本的tesla p40驱动(安装tesla系列计算卡驱动的教程在网上一搜一大堆)。此时我在命令行中打nvidia-smi是能够正常出现计算卡的信息的。但是重启,选择正常启动ubuntu,还是报错。
  于是我认为,即便已经安装了p40的驱动,但ubuntu还是很笨蛋,把图形信号的处理任务全都送给了p40(没插计算卡的时候这一任务是i7-12700k的核显完成的),导致无法开机。那么,如何把正常的图形信号处理任务送给核显,但仍然使用p40搞机器学习计算呢?

问题解决-ubuntu双显卡切换

我在百度上能搜到的ubuntu切换双显卡的方法都过于陈旧,是去一个目录下面去找vgaswitheroo什么的东西,vga都被淘汰多少年了,我在他们说的相应目录下也根本没有找到vga什么的文件,也没有类似的文件。显然这个方法失效了。
  我的方法是:
  第一,开机ubuntu grub页面,仍然选择第一个,正常启动ubuntu,进入报错界面。但报错归报错,此时的内核仍然是正常运行的,只不过缺乏一个图形信号处理的方法才导致无法正常显示登录界面。按ctrl+alt+f2,可以进入一个tty界面,这是一个纯文字界面,不需要图形信号。
  第二,在tty界面,可以正常的进行全部命令行操作。输入用户名密码即可登录系统。需要安装一个英伟达出品的软件,prime-select。输入prime-select query即可显示当前优先使用哪个显卡。这个软件初次使用会报错没有安装,按照提示信息sudo apt-get install即可。然后sudo prime-select intel,这样就选择了intel的核心显卡作为了首选显卡。此时,重启机器,即可正常的进入ubuntu图形界面使用机器了。
  第三,使用上述方法后,进入系统,在命令行输入nvidia-smi,居然看不到显卡信息了,报错信息说驱动无法和计算卡通信了,没办法,在图形界面打开terminal,再sudo prime-select nvidia,将英伟达再设为首选,机器学习的那一套就又能用了,nvidia-smi也工作正常了,再去安装cuda,cudnn,pytorch什么的就随意了。
  最后,搞完机器学习,准备关机的时候,别忘了再sudo prime-select intel,如果不这样的话,下次开机图形界面还是起不来,又要去上面讲过的tty界面设置再重启。这就是ubuntu的笨蛋之处,哪怕这是一块完全没有图形输出能力的计算卡,也固执地要求人家去处理图形。如果你嫌麻烦,又恰好是linux爱好者,可以修改linux的开机关机配置文件,让机器自动去执行上述语句,也省的每次关机前手动做了。
  题外话:为什么要用带有图形界面的ubuntu desktop,而不是ubuntu server?因为这只是一台个人工作站,在调试涉及图像处理的AI项目时需要预览模型的处理效果。如果真的需要大规模跑模型,就直接用超算了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决Ubuntu20.04插入英伟达计算卡后无法开机问题-Ubuntu双显卡切换 的相关文章

  • 大浪淘沙

    裸机指的是未装备任何软件的计算机 计算机的运行速度的单位是MI S xff0c 其含义是每秒钟执行百万条指令 影响cpu处理速度的主要因素是字长 主频 ALU 有无cache 冯诺依曼原理的基本思想是程序存储和程序控制 第一代计算机采用的电
  • 关于字符数组和字符指针

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • YOLOv5核心基础知识讲解

    我这主要是江大白老师的内容 xff01 xff01 深入浅出Yolo系列之Yolov3 amp Yolov4 amp Yolov5 amp Yolox核心基础知识完整讲解 xff08 CSDN xff09 深入浅出Yolo系列之Yolov5
  • 自旋锁的实现原理

    自旋锁的实现原理 自旋锁的介绍 自旋锁和互斥锁比较相似 xff0c 都是为了实现保护共享资源而提出的一种锁机制 xff0c 在任何一个时刻 xff0c 只有一个执行单元可以获取该锁 xff0c 如果该锁已经被别的单元占用 xff0c 那么调
  • 计算机网络(传输层)

    UDP 和 TCP 的特点UDP 首部格式TCP 首部格式TCP 的三次握手TCP 的四次挥手TCP 可靠传输TCP 滑动窗口TCP 流量控制TCP 拥塞控制 1 慢开始与拥塞避免2 快重传与快恢复 网络层只把分组发送到目的主机 xff0c
  • STM32 USART_Init() 初始化函数中BRR寄存器设置解析

    首先了解一下BRR寄存器的构造 xff1a 可以看到bit15 4设置USARTDIV的整数部分 xff0c bit 3 0设置USARTDIV的小数部分 所以小数部分相当于把1分为16份 xff0c 则DIV Fraction 61 小数
  • 安装libcxsparse3.1.2报错

    报错显示 xff1a yjq 64 yjq sudo apt get install liblapack dev libsuitesparse dev libcxsparse3 1 2 libgflags dev 正在读取软件包列表 完成
  • 网络技术基础(16)

    一 xff1a M HSRP的实施 1 1 HSRP 应用场景 1 路由器物理接口下 2 路由器逻辑子接口 3 xff5d 多层交换机SVI 接口下 1 2 M HSRP 定义 多组的HSRP xff0c 实际上就是一个接口参与多个HSRP
  • windows enable long environment path

    windows gt gpedit msc gt enter Edit Group Policy gt Local Computer Policy gt Computer Configuration gt Administrative Te
  • OpenMV与stm32,msp432等单片机的串口通讯(已经写好一个识别色块的例程,可直接使用)keil(MDK)

    OpenMV与stm32单片机的串口通讯 已经写好一个识别并使单片机得到色块信息的例程 可直接使用 keil MDK 已经写好一个识别色块的例程可直接使用 识别色块 单片机得到色块的中心坐标cx cy 长和高w h及面积s 直接复制源码使用
  • 树莓派python实现http请求控制海康威视摄像头转动

    由于海康威视sdk只支持x86架构处理器 xff0c 所以官方的 so无论无何也连接不上 xff0c 于是在咨询技术售后后 xff0c 我们选择http的方式发送指令控制摄像头在预设点移动 折腾了一天 xff0c 又是cookie啊 xff
  • 【ubuntu】ubuntu20.04安装ros noetic(亲测有效,附操作步骤)

    ubuntu20 04安装ros noetic xff0c 实力踩坑 xff0c 亲测有效 xff01 xff01 xff01 一 安装ROS neotic步骤第一步 xff1a 换源第二步 xff1a 添加ROS软件源第三步 xff1a
  • 【CMake】CMake构建C++代码(一)

    x1f449 博 主 x1f448 xff1a 米码收割机 x1f449 技 能 x1f448 xff1a C 43 43 Python语言 x1f449 公众号 x1f448 xff1a 测试开发自动化 x1f449 专 注 x1f448
  • UrlEncode C源码

    urlencode是一个函数 xff0c 可将字符串以URL编码 xff0c 用于编码处理 URL编码 URL encoding xff0c 也称作百分号编码 Percent encoding xff0c 是特定上下文的统一资源定位符 UR
  • OSPF详解(5种包和状态机)

    1 OSPF的数据包 xff08 5种 xff09 Hello xff1a 发现建立并周期保护邻居关系 DBD xff1a 数据库描述包 进行主从关系的选举 xff0c 最重要的作用是发送LSDB目录 LSR xff1a 链路状态请求 对收
  • BGP—origin属性的应用

    BGP origin属性 1 origin 是公认必遵属性 公认必遵 xff1a 只要不人为修改 xff0c 该属性就不会自己改变 origin属性描述该路由是如何成为BGP路由的 符号作用i通过network生成的BGP路由 xff1f
  • MPLS-虚拟专用网 实验(分支之间可以互通)

    1 MPLS V P N实验 xff08 分支之间可以互通 xff09 实验要求 xff1a 1 A1和A2可以通过MPLS V P N打通 xff0c B1和B2可以打通 xff0c A不能访问B 2 R2为ISP 3 R6可以telne
  • vmware ESXi中安装windows11(解决VMware安装Windows11报错+win11跳过联网操作)

    文章目录 vmware ESxi 安装windows111 安装步骤2 Vmware安装win11报错解决方案2 1 问题产生原因 xff1a 2 2 解决方案 xff1a 3 Windows11安装过程中跳过联网操作 xff08 在无法连
  • python 修改ip地址

    安装包 pip install wmi pip install pywin32 实现 import wmi Obtain network adaptors configurations nic configs 61 wmi WMI Win3
  • Postman前置脚本-全局变量和环境变量

    全局变量和环境变量 61 61 全局变量和环境变量 61 61 Postman 请求前置脚本时间戳案例工作原理 全局变量和环境变量 全局变量 概念 xff1a 在 Postman 全局生效的变量 xff0c 全局唯一 设置 xff1a 代码

随机推荐

  • kubernetes❀集群环境搭建

    kubernetes 集群环境搭建 2 kubernetes集群环境搭建2 1 前置知识点2 2 kubeadm 部署方式介绍2 3 安装要求2 4 最终目标2 5 准备环境2 6 环境初始化2 6 1 检查操作系统的版本2 6 2 主机名
  • kubernetes❀资源管理

    kubernetes 资源管理 3 资源管理3 1 资源管理介绍3 2 YAML语言介绍3 3 资源管理方式3 3 1 命令式对象管理3 3 2 命令式对象配置3 3 3 声明式对象配置 3 资源管理 3 1 资源管理介绍 在kuberne
  • Kubernetes❀实战入门

    Kubernetes 实战入门 4 实战入门4 1 Namespace4 1 1 查看 4 1 2 创建 4 1 3 删除 4 1 4 配置方式 4 2 Pod4 2 1 创建并运行4 2 2 查看pod信息4 2 3 访问Pod4 2 4
  • Qt重定向问题

    概念 在我们使用软件时大多使用release版本 xff0c 这样在使用过程中的调试信息就不会显示出来 xff0c 为了将调试信息打印在界面上或者放在文件中保存起来我们就可以使用重定向的技术 在QT的帮助文档 xff1a qInstallM
  • VSUDP通信

    好久没弄VS的UDP通信了 xff0c 使用方式都忘记的差不多了 今天遇到了正好学习一下 UDP理论 xff1a UDP参考链接 xff1a socket函数 为了执行网络输入输出 xff0c 一个进程必须做的第一件事就是调用socket函
  • sockaddr_in结构体的说明(成员:sin_family、sin_addr、sin_zero)

    sockaddr in是系统封装的一个结构体 xff0c 具体包含了成员变量 xff1a sin family sin addr sin zero 这个结构体被封装在ws2def h中 xff0c 具体的代码如下 xff1a typedef
  • 字节、位与二进制表示

    前言 仅针对JAVA xff0c 总结几个知识点 字节与位 1字节 xff08 byte xff09 61 8位 xff08 bit xff09 每个bit位非0即1 xff0c 即二进制表达中的0或1 xff0c 0001中每个 0 和
  • windows配置tensorflow python object detection 环境

    option 1 pip install lt binary gt pip install upgrade https storage googleapis com tensorflow mac cpu tensorflow 1 12 0
  • 顺序表递增有序,插入元素x后仍递增有序

    思想 xff1a 1 xff09 先找到x元素的插入位置 xff08 顺序表从左到右依次比较 xff0c 若A元素大于x元素 xff0c 那么x元素插入的位置就是A元素所在的位置 xff09 2 xff09 将A元素所在的位置的元素以及它之
  • 猜数游戏,系统想一个数,我们来猜

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • 输入多个数(输入-1为结束标志),计算这多个数的平均数

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • 计算n的阶乘

    在 include span class token operator lt span stdio span class token punctuation span h span class token operator gt span
  • 判断一个数是否是素数

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • HTTP报文是什么

    x1f4e2 x1f4e2 如果说http是因特网的信使 xff0c 那么http报文就是他用来送信的包裹了 1 x1f4da 什么是报文 在度娘的介绍中 x1f4e3 报文 message 是网络中交换与传输的数据单元 xff0c 即站点
  • STM32串口接收数据处理方法

    STM32串口接收数据处理方法 STM32串口接收定长数据处理方法 STM32串口接收定长数据的处理方法非常简单 xff0c 我目前做项目都是用的这个 xff0c 也可用做处理MODBUS协议 xff0c 直接上代码 span class
  • VScode常用命令

    VScode 的常用快捷键和插件 一 VScode 的常用快捷键 1 注释 xff1a a 单行注释 xff1a ctrl 43 k ctrl 43 c 或 ctrl 43 b 取消单行注释 xff1a ctrl 43 k ctrl 43
  • 彻底搞懂线程、进程、多线程、多进程和多任务的关系

    首先 xff0c 从定义开始 xff0c 先看一下教科书上 进程和线程定义 xff1a 进程 xff1a 资源分配的最小单位 线程 xff1a 程序执行的最小单位 心中默念 xff0c 啥啥啥 xff0c 写的这是啥 1 进程 进程是程序执
  • vmware-workstation-and-device-credential-guard-are-not-compatible

    1 off hyper v feature 2 bcdedit set hypervisorlaunchtype off
  • Ubuntu下配置Multipath TCP(MPTCP)By内核下载(一)

    一 MPTCP介绍 多路径TCP xff08 MPTCP xff09 是一种通过修改TCP来实现同时使用多个IP地址 接口方法 xff0c MPTCP向应用程序提供常规的TCP接口 xff0c 同时实际上跨多个子流传播数据 这样做的好处包括
  • 解决Ubuntu20.04插入英伟达计算卡后无法开机问题-Ubuntu双显卡切换

    解决Ubuntu20 04插入英伟达计算卡后无法开机问题 Ubuntu双显卡切换 问题详述问题分析问题解决 ubuntu双显卡切换 问题详述 本人新配了一台个人使用的机器学习服务器 对环境配置可能有影响的硬件如下 xff1a 华硕B660M