前言
今天接手了公司的一台新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-headers
和 linux-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有了更深刻的认识,也算是获得了不小的收获吧。