双系统下Ubuntu22.04配置Nvidia驱动以及pytorch

最近新装了一个电脑 由于显卡比较新 通过原来的安装方法安装的时候出现了一些问题
原链接:Ubuntu配置GPU支持的TensorFlow和pytorch - 简书
当前硬件:Lenovo Legion Y7000 | 16G | Intel U7 20核 | Nvidia 5060 | 1TB
现更新从装系统开始:

win环境下装双系统:

参考:
2021-10-02 在ssd上重装双系统 Ubuntu无法安装Chrome - 简书
Windows11 + Linux (Ubuntu22.04) 双系统最简安装详细避坑版_win11安装linux双系统-CSDN博客

操作顺序:

  1. 下载系统(LTS.iso版本,如果下载成了torrent,可以通过夸克网盘解压下载iso),下载刻盘软件并安装(我这里用的是balanaEtcher,之前有用过软碟通,rufus都可以,如果是rufus,用默认选项就好)


    image.png
  2. 刻录系统盘
  1. 压缩并清理出来磁盘空间
  • 开始--磁盘管理--压缩卷/删除卷,大概空出来一块未分配的连续的空间给ubuntu(不是刚刚U盘里的那个,是要安装系统的盘上),空在那里就可以
    注:如果磁盘中有卷显示bitlocker加密,一定要解密后进行下一步安装(开始--设置--隐私与安全性--设备加密--关掉或者直接搜索BitLocker),即使只是win系统安装的位置有加密也不可以,要全盘都没有加密才行,否则会安装到一半告诉你未解密,让你解密后重新安装,而且如果文件夹里面东西很多的话,解密要很长很长时间!!! 要做好心理准备。
  1. 安装ubuntu
  • 重启电脑--选择U盘启动(这个时候一般都需要不停的按快捷键,联想是F12,但我发现win11有一个路径:开始--系统--恢复--高级启动--使用设备--EFI USB Device就可以了,不用手忙脚乱)
    注:这一步把网断掉或者把网线拔了,之后安装速度会快些
  • 因为这次懒得分区,大规模数据不准备存在这个系统里,就直接选择了自动安装,简单很多,他会自己选择那个空白卷,一整个卷都做系统盘,系统文件都在一起,如果想分区的,可以参考:2021-10-02 在ssd上重装双系统 Ubuntu无法安装Chrome - 简书
  • 其他正常按照提示往下走就可以了,结束后需要重启,它会提示你先把启动盘(U盘)拔了然后再重启。
  • 重启及开机后可能会遇到的问题:
    1) 卡在页面进不去:ubuntu双系统启动时卡死解决办法 - 不妨不妨,来日方长 - 博客园
    2) 开机时间特别长,卡在le** Ubuntu页面,但能开机:这个好像是由于独显导致的,开机后进入软件与更新--附加驱动--选后面标tested专有--应用更改--重启就可以了**

Ubuntu下安装Nvidia驱动

  1. 先给ubuntu联网进行更新,重启几次,以确定没有什么其他问题
  2. 进入软件与更新--附加驱动--选后面标tested专有--应用更改--重启,重启后打开命令行,输入
nvidia-smi

看是否会输出显卡信息,如果是个表格,说明驱动已经安装好了,那就可以直接跳下一章了

  1. 我这一步失败了,显示的是“No devices were found”,后发现是版本不匹配导致,排查过程如下:
  • 确认系统有没有看到 NVIDIA 显卡
lspci | grep -i nvidia

这一步有输出,为“VGA compatible controller:NVIDIA......”,表示这一步没问题

  • 测试驱动模块有没有被加载
lsmod | grep -i nvidia

出现“nvidia_uvm, nvidia_drm等”,说明驱动模块是加载了的,但 nvidia-smi 还是找不到设备 ,往往是驱动版本与 GPU 型号/内核不匹配

  • 看驱动加载过程是否有报错
    先查看 Secure Boot 状态,如果显示 SecureBoot enabled就没问题。
sudo mokutil --sb-state

然后看内核日志里的 NVIDIA 信息

sudo dmesg | grep -i nvidia | head -n 30 # 用 root 权限,从完整日志里,显示最早的 30 行 NVIDIA 相关日志(更偏启动阶段)
#或者
sudo dmesg | grep -i nvidia | tail -n 20 # 用 root 权限,显示最近的 20 行 NVIDIA 相关内核日志(最新报的错)。

看里面会不会哪里出现“failed”,“No”,“Unknown”之类的,基本就可以确定是版本不匹配,我这里出现的是“failed to allocate NvKmsKapiDevice”。

  1. 安装低一版本的或者当前版本open的驱动
    注:这里很多人说需要把之前的驱动都卸干净在重新安装,我实际测试了一下发现并不用查询关键词卸载,他会自动卸载之前的驱动,这一步可参考:Ubuntu配置GPU支持的TensorFlow和pytorch - 简书
    1)正常安装
    可以用下面的代码,也可以通过软件和更新--附加驱动来安装
  • 添加PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa
  • 为系统安装依赖项以构建内核模块:
sudo apt-get install dkms build-essential
  • 查看显卡硬件型号
ubuntu-drivers devices

出现的应该是软件和更新--附加驱动里面一样的驱动列表,出问题的是580-distro no-free recommended,在列表中有580-open-distro no-free,选择这个如果还不行,选择570-open,据说是因为显卡的版本(5060)比较新(当前编辑日期为2025.11.25),驱动还没跟上,如果列表中有575也可以选择575。

  • 安装新的驱动 注:不用卸载之前的驱动,他会自动卸载的
sudo apt-get install nvidia-driver-580-open # 这里写你选择的那个驱动名字
  • reboot重启
sudo reboot

注:这个过程中可能会出现ubuntu 软件包设置 “确定“ 点不动的情况,Tab+Enter就可以了,要输入个密码,之后MOK的时候会用到
2)如果重启过程中发现左上角的出现光标一直闪,闪很久进不去,同样说明驱动版本存在问题,要进入tty模式,查看驱动情况,判断是否要卸载驱动,重新进入系统进行操作

  • 机器开机卡在左上角闪光标的时候,同时按下:Ctrl + Alt + F3(或者 F2/F4 也可以多试几个)
    如果屏幕变成黑底有登录提示(login:),说明你进到了 TTY:输入你的用户名,回车输入密码,回车(密码不会显示,正常的)
  • 先测试驱动安装上没,如果出现表格,表示安上了,说明可能不是驱动的问题,但这种情况一般来说是开机慢而不是开不开
nvidia-smi
  • 卸载所有 NVIDIA 驱动:
sudo apt-get purge 'nvidia-*'
sudo apt-get autoremove --purge
  • 删掉可能被 NVIDIA 写出来的 X 配置(非必须)
sudo rm -f /etc/X11/xorg.conf
sudo rm -rf /etc/X11/xorg.conf.d
  • 重启
sudo reboot

重启后打开附加驱动会发现驱动变成了最下面的那个xserver-xorg,表示已卸载完成。
3) 如果你开启了 Secure Boot,有时第一次装驱动重启会弹出 MOK 相关蓝色界面,要自己选 Enroll MOK → Continue →yes → 输入你之前设置的密码→root,否则驱动不会生效。
4)开机闪一分钟多后进去了,我这面的原因是:NVIDIA 580-open + Wayland + 混合显卡 导致的,解决办法是:在tty中改一下:
Ctrl + Alt + F3(或者 F2/F4 也可以多试几个)进入tty后登录,输入

sudo nano /etc/gdm3/custom.conf

打开后找到这一段(大概在开头):

# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false

把 WaylandEnable=false 前面的 # 删掉,改成:

[daemon]
WaylandEnable=false

其他内容不要动。然后在 nano 里:按 Ctrl + O,回车保存;再按 Ctrl + X 退出。
重启GDM或整个系统

sudo systemctl restart gdm3

按 Ctrl + Alt + F1 或 Ctrl + Alt + F2 去看看能不能出现图形登录界面;如果不放心,直接:

sudo reboot

让 GDM 不再用 Wayland,而是用 Xorg 来起图形界面——这在混合显卡 + NVIDIA 的机器上通常更稳。

  1. 测试
nvidia-smi

出现表格表示安装成功

安装pytorch

正常来说,在安装好驱动之后需要安装cuda,cudnn等,现在发现在安装pytorch时,这些会自动安装

  1. 先确定pip已经安装好,如果没有:
sudo apt install python3-pip
  1. 安装torch:进入官网:Get Started,选择对应方块并copy最下面的命令至终端,并运行。
    image.png

    注:
  • ubuntu22.04自带的python是3.10,如果不是或更改过,在build中选择preview;
  • pip3或者pip需要注意一下,保持一致就行;
  • 安装完成后就会发现 cudnn,cuda都已经被打包安装好了,可以测试一下:
> python3
import torch
print(torch.version)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容