Ubuntu server 如何安装nvidia驱动和cuda-解决服务器ssh一段时间后连不上的问题

22-12-16 11:36 53  

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 ``` 完成后,重新生成内核并重启: ``` 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) ``` 说明禁用成功!