L
O
A
D
I
N
G

Ubuntu 22.04 LTS 安装NVIDIA驱动的折腾记录


前言

今天接手了公司的一台新Ubuntu主机,虽然是新的,但是之前因为装N卡驱动的时候搞掉了网卡驱动,所以是一个无法联网的状态。而我的任务是要让这台主机恢复到可用状态,然后配好显卡驱动和一个Python具身智能项目的环境。

这个工作量看似小,其实并非小(

首先梳理一下任务的详细流程:

  • 恢复网卡驱动,先让电脑连上网,不然后面的操作都会举步维艰
  • 安装用于GeForce RTX 3090的Nvidia驱动
  • 安装Docker
  • 安装miniconda3
  • 配置项目所需conda环境

要点记录

由于是第一次在Ubuntu上进行驱动配置(之前也用过不少,但是都是VPS等场景,不需要配驱动),因此在配驱动的部分踩了不少坑。下面逐一记录一下每一个环节出现的问题和解决方案。

恢复网卡驱动

拿到主机的时候就是完全识别不到网卡的状态,猜测是安装N卡驱动导致的,在网上搜集了很多信息之后,在这篇文章中找到了一线生机:

Linux Ubuntu18.04安装显卡驱动后,无法上网的问题解决_ubuntu安装显卡驱动后无法联网-CSDN博客

通过执行:dpkg –get-selections|grep linux

发现系统中存在5.20和6.8两个版本的内核,初步确定是之前安装N卡驱动时进行了内核更新操作,但是没有完整更新导致无法识别到网卡驱动。按照文章中的方法,我首先进入GRUB界面,选择5.20版本的内核启动系统:

Ubuntu系统怎么进入grub界面_ubuntu 如何进入grub-CSDN博客

简单粗暴方案如下:

sudo gedit /etc/default/grub

打开配置文件,在最后增加一行

GRUB_TIMEOUT_STYLE=menu #这里默认是hidden

保存关闭文件,然后终端输入:

sudo update-grub

reboot 重启即可

如果grub界面一闪而过或者没有显示,可能是没有设置超时时间,还是在grub 配置文件中修改超时时间

GRUB_TIMEOUT=10 #grub界面等待10秒,无操作就进入系统,默认是0

这样进入系统后,网卡成功识别,但是不出意料的,N卡驱动报错。由于之前N卡驱动是在6.8内核上安装的,因此我先尝试修复6.8内核的网络问题。

通过执行:dpkg –get-selections|grep linux 对比两个内核系统组件的差异,发现6.8版本内核缺少 linux-headerslinux-modules-extra等组件,通过 apt install逐一安装后重启进入GRUB界面,选择6.8内核进入系统,网络恢复。

安装Nvidia显卡驱动

重新进入6.8版本内核的系统中后,显卡驱动并没有如我所想的那样恢复,依然报错,因此我又搜集了很多资料,发现了一种简单的安装N卡驱动的方式(Ubuntu20.04安装Nvidia显卡驱动教程_ubuntu20.04安装nvidia驱动-CSDN博客详细介绍了多种安装方式):

1、查询电脑最适合的显卡驱动版本

ubuntu-drivers devices

2、随后用命令行进行安装

sudo apt-get install nvidia-driver-525 #此处数字要对应上面查询到的版本号

注意: 如果前面没有禁用secure boot,则在安装过程中会提示设置一个密码,在重启时需要输入密码验证以禁用secure boot,重启后会出现蓝屏,这时候不能直接选择continue,而应该按下按键,选择Enroll MOK, 确认后在下一个选项中选择continue,接着输入安装驱动时设置的密码,开机。

3、安装完成后重启

sudo reboot

4、重启后在终端验证

nvidia-smi

若出现GPU列表,则安装成功

我这里开机没有正常Enroll MOK,导致开机后显示显卡驱动已安装,但是nvidia-smi执行依然报错,怀疑是secure boot开启的原因,于是找到了主板对应的关闭安全启动的方法。

这台主机是微星的主板,关闭安全启动可以参考下面的文章:

微星主板如何关闭secure boot?|微星主板关闭安全启动的方法

关闭安全启动后重启主机,执行nvidia-smi,成功出现熟悉的GPU列表,此时驱动部分正式安装完成。

安装Docker

安装Docker时,第一次使用官方的一键脚本安装,但是由于国内网络的原因,无法拉取Docker的程序文件,就此作罢。

后来发现可以通过apt直接安装,执行`sudo apt install docker.io即可。

安装完成后,为了让其他用户使用,需要执行:

sudo usermod -aG docker $USER # 将当前用户加入docker组
newgrp docker # 让更改立即生效

安装miniconda3

参考:Ubuntu系统上快速安装Miniconda的步骤_ubuntu 安装miniconda-CSDN博客

使用一键脚本安装,注意其中少了一步,执行完一键脚本后,需要使用已安装conda可执行文件的路径运行init命令,以将conda加入环境变量并初始化终端

安装项目conda环境

由于项目自带了conda的环境列表,直接根据文件执行conda env create即可。

后记

第一次在Ubuntu上相对完整地装机,还是遇到了非常多的问题,也花费了将近一整天的时间才基本装好,但是通过这次装机的过程,让我对Ubuntu有了更深刻的认识,也算是获得了不小的收获吧。


文章作者: 叁月柒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 叁月柒 !
评论
  目录