• 【2022新教程】Ubuntu server 20.04如何安装nvidia驱动和cuda-解决服务器ssh一段时间后连不上的问题


    0 背景

    最近实验室的gpu服务器老是出问题,需要重新装显卡驱动。网上教程非常老旧,很多说的都不知所云
    作者曾经尝试的安装方法和结果:
    官网下载driver——安装失败
    直接用cuda toolkit,一口气安装驱动和cuda——安装失败
    所以作者采用了本文中的方法。
    本教程旨在记录本人亲自安装成功的一次经历。在相同的系统环境下可安装成功,不同系统环境仅供参考,不保证成功。
    本文旨在简洁明了、可直接复制命令执行、可复现、可读性好
    本文环境:
    ubuntu server 20.04,其他系统仅供参考!

    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!

    1 安装nvidia驱动

    1.1 查看是否安装了gcc

    gcc -v
    

    若没有安装,则输入下面的命令,直接把包括gcc在内很多开发工具包一同安装

    sudo apt-get install build-essential
    

    1.2 禁用nouveau驱动

    编辑 /etc/modprobe.d/blacklist-nouveau.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
    

    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    完成后,重新生成内核并重启:

    sudo update-initramfs -u
    sudo reboot
    

    重启后,执行:lsmod | grep nouveau如果没有屏幕输出,说明禁用nouveau成功。否则,应重新执行第1.2小节

    1.3 安装驱动

    使用命令ubuntu-drivers devices获取可用驱动信息,如果命令不存在自己安装一下。
    输出为(不同电脑依据配置输出不同,我这里还有报错但是不影响)

    ERROR:root:could not open aplay -l
    Traceback (most recent call last):
      File "/usr/share/ubuntu-drivers-common/detect/sl-modem.py", line 35, in detect
        aplay = subprocess.Popen(
      File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "/usr/lib/python3.8/subprocess.py", line 1702, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'aplay'
    == /sys/devices/pci0000:17/0000:17:00.0/0000:18:00.0 ==
    modalias : pci:v000010DEd00002204sv000010DEsd00001454bc03sc00i00
    vendor   : NVIDIA Corporation
    driver   : nvidia-driver-470 - distro non-free recommended
    driver   : nvidia-driver-460 - distro non-free
    driver   : nvidia-driver-470-server - distro non-free
    driver   : nvidia-driver-495 - distro non-free
    driver   : nvidia-driver-460-server - distro non-free
    driver   : xserver-xorg-video-nouveau - distro free builtin
    

    从上述信息中找到driver,后面找recommend,发现了系统推荐安装的驱动程序nvidia-driver-470。这里考虑到是ubuntu server,所以我最终选择了nvidia-driver-470-server。
    执行命令安装驱动:sudo apt install nvidia-driver-470-server
    等待安装完成后,执行nvidia-smi可以输出gpu监控界面,则驱动安装成功!从监控信息中我们可以看到cuda版本是11.4,所以下面我们安装cuda toolkit的时候也是安装这个版本的。

    2 安装cuda

    在https://developer.nvidia.com/cuda-toolkit-archive中找到相应的版本。这里我们选用11.4的版本,采用runfile的安装形式。
    直接输入以下命令:

    wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
    sudo sh cuda_11.4.0_470.42.01_linux.run
    

    注意,当提醒你已经安装了driver的时候,直接continue。当选择安装内容的时候,务必把driver前面的x取消掉,因为我们已经安装了驱动!!!
    安装完成后重启,输入nvcc -V显示相关信息,则安装成功!

    3 解决服务器ssh一段时间后连不上的问题

    装好驱动后,发现服务器一段时间后ssh就连不上了,必须得重启才行。后来看了服务器日志才发现是服务器设置了自动挂起。
    输入命令:systemctl status sleep.target
    输出信息:

    ● sleep.target - Sleep
    Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
    Active: inactive (dead)
    Docs: man:systemd.special(7)
    

    可以发现loaded。说明自动sleep是启用了。
    我们输入命令:sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target将其禁用。
    输入命令:systemctl status sleep.target
    输出信息:

    ● sleep.target
    Loaded: masked (Reason: Unit sleep.target is masked.)
    Active: inactive (dead)
    

    说明禁用成功!
    再次提醒:
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    注意,本文仅适用于ubuntu server,不需要图形界面,没有对图形界面进行特殊考虑和验证!依赖图形操作界面的读者慎用!
    如果读者依赖图形界面,本文没有进行特殊考虑和验证,不能确定会不会有问题,请读者留意并结合其他教程使用!

    4 参考资料

    https://blog.csdn.net/qq_34387533/article/details/116011839
    https://www.cnblogs.com/pprp/p/9430836.html
    https://zhuanlan.zhihu.com/p/393152883

  • 相关阅读:
    React Virtual Dom 与 Diff
    打造前端CI/CD工作流
    webpack-chain明细
    React项目中实现多语言支持
    【WPF】大量Canvas转换为本地图片遇到的问题
    【C#】【分享】 XX分钟学会C#
    【WPF】一些拖拽实现方法的总结(Window,UserControl)
    【WPF】 InkCanvas 书写毛笔效果
    js中this指向问题
    js原型浅谈理解
  • 原文地址:https://www.cnblogs.com/wlglucky/p/15532628.html
Copyright © 2020-2023  润新知