服务器(Dell T360+2块Tesla P100)配置显卡驱动和cuda最终版(终于配置好了)

news/2024/11/28 17:53:58/

前言: 一开始我们实验室尝试用deb安装包的方法安装NVIDIA Tesla P100对应的显卡驱动和CUDA,但是总是出现重复登录的问题,迫不得已我们最后采用比较繁琐的用run文件安装显卡驱动和CUDA的方法。(还是建议先用deb文件安装一下试试,因为比较简便。)
首先明确一下,我没有安装NVIDIA驱动程序。我改为运行了cuda.run文件,并在提示我时安装了NVIDIA驱动程序。
1)下载相关CUDA.run文件。
2)安装前准备

$ sudo apt-get update
$ sudo apt-get install build-essential

3)无需创建xorg.conf文件。如果你有一个,删除它(假设你安装了新的操作系统)。

$ sudo rm /etc/X11/xorg.conf 

4)屏蔽系统自带的显卡驱动nouveau
在这里插入图片描述
新建blacklist-nouveau.conf文件,输入命令:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

往文件中写入:

blacklist nouveau
options nouveau modeset=0

保存并退出。这一步是为了禁掉Ubuntu自带开源驱动nouveau。
然后执行命令:

sudo update-initramfs -u

接下来需要重启,输入reboot命令,重启后执行:

lsmod | grep nouveau

查看nouveau模块是否被加载。如果什么都没输出,则已成功禁用。
5)使用下面命令禁用X server

sudo service lightdm stop

会出现黑屏,然后同时按:Ctrl + Alt + F1,然后输入用户名和密码。

6)转到您拥有CUDA驱动程序的目录,然后运行

$ chmod a+x cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb

7)现在,运行命令进行安装,请注意,我明确不希望安装OpenGL标志:

$ sudo bash cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb --no-opengl-libs

8)我的会出现以下问题,如果您的没有问题,可跳过这一步。

Installing the NVIDIA display driver... The driver installation is unable to locate the kernel source. Please make sure that the kernel source packages are installed and set up correctly. 
If you know that the kernel source packages are installed and set up correctly, you may pass the location of the kernel source with the '--kernel-source-path' flag.

参考文章:Oldpan博客-安装cuda9.1内核问题:Unable to locate the kernel source
参考文章:zgwLinux-Ubuntu16.04修改内核启动
我的解决方案是降低ubuntu16.04系统的内核。网上有很多方法,都是坑,我采用了如下方法,亲测有效!
下面开始将我系统的内核由4.15.0-29降为4.4.0-98
(1)使用下面命令回到图形界面

sudo service lightdm restart

(2)基本知识
linux更换内核很简单,一个系统中可以安装多个内核,也可以在开机的时候通过grub来选择要启动的内核。首先我们要做的是先看自己系统中现在存在几个内核。

使用uname -r查看当前使用的内核。

然后我们明确几个有关内核的文件:

/etc/default/grub 定义了有关启动过程的一系列设置,比如设置内核启动顺序、系统等待启动时间、或者启动过程中相关设置等;
/boot/grub/grub.cfg 注意一下这个文件是由上一个文件而自动生成的,不建议修改这个文件的内容
/etc/grub.d 是操作系统菜单目录,也是由系统生成,我们也不用修改。
(3)开始更换,使用下面命令安装4.4.0的内核

sudo apt-get install linux-headers-4.4.0-98-generic linux-image-4.4.0-98-generic

执行完这个命令之后,可以到/boot中看现在存在的kernels
在这里插入图片描述

(4)修改/boot/grub/grub.cfg中的内容。
使用以下命令打开这个文件:

sudo gedit /boot/grub/grub.cfg

找到如下代码块:

 linux	/boot/vmlinuz-4.15.0-29-generic root=UUID=8086863d-2eca-415d-85d1-1bebdcf0ef3a ro  quiet splash $vt_handoffinitrd	/boot/initrd.img-4.15.0-29-generic
}

将其改为自己想使用的内核,我的如下:

linux	/boot/vmlinuz-4.4.0-98-generic root=UUID=8086863d-2eca-415d-85d1-1bebdcf0ef3a ro  quiet splash $vt_handoffinitrd	/boot/initrd.img-4.4.0-98-generic

然后找到如下代码块:

submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-8086863d-2eca-415d-85d1-1bebdcf0ef3a' {

将此行代码下的与4.15.0-29相关的代码全部删除:

menuentry 'Ubuntu, with Linux 4.15.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-advanced-8086863d-2eca-415d-85d1-1bebdcf0ef3a' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_gptinsmod ext2set root='hd0,gpt3'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  8086863d-2eca-415d-85d1-1bebdcf0ef3aelsesearch --no-floppy --fs-uuid --set=root 8086863d-2eca-415d-85d1-1bebdcf0ef3afiecho	'Loading Linux 4.15.0-29-generic ...'linux	/boot/vmlinuz-4.15.0-29-generic root=UUID=8086863d-2eca-415d-85d1-1bebdcf0ef3a ro  quiet splash $vt_handoffecho	'Loading initial ramdisk ...'initrd	/boot/initrd.img-4.15.0-29-generic}menuentry 'Ubuntu, with Linux 4.15.0-29-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-init-upstart-8086863d-2eca-415d-85d1-1bebdcf0ef3a' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_gptinsmod ext2set root='hd0,gpt3'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  8086863d-2eca-415d-85d1-1bebdcf0ef3aelsesearch --no-floppy --fs-uuid --set=root 8086863d-2eca-415d-85d1-1bebdcf0ef3afiecho	'Loading Linux 4.15.0-29-generic ...'linux	/boot/vmlinuz-4.15.0-29-generic root=UUID=8086863d-2eca-415d-85d1-1bebdcf0ef3a ro  quiet splash $vt_handoff init=/sbin/upstartecho	'Loading initial ramdisk ...'initrd	/boot/initrd.img-4.15.0-29-generic}menuentry 'Ubuntu, with Linux 4.15.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-recovery-8086863d-2eca-415d-85d1-1bebdcf0ef3a' {recordfailload_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_gptinsmod ext2set root='hd0,gpt3'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  8086863d-2eca-415d-85d1-1bebdcf0ef3aelsesearch --no-floppy --fs-uuid --set=root 8086863d-2eca-415d-85d1-1bebdcf0ef3afiecho	'Loading Linux 4.15.0-29-generic ...'linux	/boot/vmlinuz-4.15.0-29-generic root=UUID=8086863d-2eca-415d-85d1-1bebdcf0ef3a ro recovery nomodeset echo	'Loading initial ramdisk ...'initrd	/boot/initrd.img-4.15.0-29-generic}

然后点击保存!
(5)在/boot目录中,执行以下命令删除掉这个目录内所有4.15内核的文件

sudo rm -rf *4.15.0-29*

(6)执行下面命令来对你之前的设置进行更新。

sudo update-grub

(7)最后重启,输入下面命令检查是否以更换到了4.4.0内核

uname -r

如果显示内核已经更改为4.4.0,则从第5步开始重新安装!
9)安装过程中
接受EULA条件
安装NVIDIA驱动程序说“是”
安装CUDA工具包+驱动程序说“是”
安装CUDA样品说“是”
不用Nvidia重建任何Xserver配置。
10)安装应该完成,但是我有以下小问题,如果您没有问题,可以跳过这一步。

Missing recommended library: libGLU.so 
Missing recommended library: libX11.so 
Missing recommended library: libXi.so 
Missing recommended library: libXmu.so
.......

原因是缺少相关的依赖库,安装相应库就解决了:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

再次执行第7步进行安装,就不再提示了。
11)重启电脑,检查Device Node Verification
执行:

 ls /dev/nvidia*

结果显示

/dev/nvidia0  /dev/nvidiactl  /dev/nvidia-modeset  /dev/nvidia-uvm
或者
/dev/nvidia0      /dev/nvidiactl      /dev/nvidia-uvm

则安装成功。
如果不显示这几个文件,搜索以下博客进行解决:
QLULIBIN-Ubuntu 16.04 上安装 CUDA 9.0 详细教程
12)添加环境路径变量:
终端中输入

sudo gedit /etc/profile

在打开的文件末尾,添加以下两行:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。
这里有点与官方安装文档稍有不同,需要说明:
官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。

重启电脑,检查上述的环境变量是否设置成功
a、 验证驱动版本,在终端中输入以下命令:

cat /proc/driver/nvidia/version

结果显示

gs@gs:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.130  Wed Mar 21 03:37:26 PDT 2018
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)

b、 验证CUDA Toolkit,在终端中输入以下命令:

nvcc -V       

会输出CUDA的版本信息
如果是这样的:
The program ‘nvcc’ is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是环境配置没有成功,请重复上述步骤7)。
13)尝试编译cuda提供的例子
在简书上搜文章:永兴呵呵哒-ubuntu16.04以deb包方式安装cuda9.0(package manager installation)
14)重新启动。一切都应该没问题。

六、远程连接安装

这里安装的是 windows 访问Ubuntu的,你们可以在windows 系统运行mstsc,选择ip端口访问远程Ubuntu桌面。
这个方便所有人一块使用服务器

  1. 安装xrdp
    使用快捷键"Ctrl+Alt+T"打开一个终端窗口,输入"sudo apt-get install xrdp"–>回车–>输入root用户的密码–>回车–>输入"y"–>回车,安装完成。
  2. 安装vnc4server
    输入"sudo apt-get install vnc4server"–>回车–>输入root用户的密码–>回车–>输入"y"–>回车,安装完成。
  3. 安装xfce4
    输入"sudo apt-get install xubuntu-desktop"–>回车–>输入root用户的密码–>回车–>输入"y"–>回车–>输入"echo “xfce4-session” >~/.xsession"–>回车–>输入"sudo service xrdp restart"–>回车,安装完成。
  4. 解决黑屏问题
    vim /etc/xrdp/startwm.sh
    #在./etc/X11/Xsession前插入
    xfce4-session
    #重启xrdp
    cd /etc/init.d/
    ./xrdp restart

http://www.ppmy.cn/news/177990.html

相关文章

OVIRT安装NVIDIA- P100实现GPU虚拟化

1、系统信息#使用centos7安装系统作为节点,安装好系统先执行更新命令yum -y update#使用OVIRT节点ISO安装系统,需要先更改更新源我这里使用的是163的更新源Vi /etc/yum.repos.d/ CentOS7-Base.repo CentOS-Base.repo # The mirror system uses the connecting IP ad…

Exsi上ubuntu虚拟机显卡tesla p100 驱动和cuda踩坑。

1. 显卡直通后无法开启电源 报错如下: Module DevicePowerOn power on failed. 解决方法: 在虚拟机高级选项里面添加参数 (note:这个其实是ubuntu 18.04,当初ubuntu16.04装驱动现实gcc内核编译版本不匹配&#xff…

中职网络安全竞赛训练设备P100-wireshark数据包分析

任务实施: Wireshark数据包分析 1.某公司网络系统存在异常,猜测可能有黑客对公司的服务器实施了一系列的扫描和攻击,使用Wireshark抓包分析软件查看并分析Kali Linux的/root目录下dump.pcapng数据包文件,找到黑客的IP地址,并将黑客的IP地址作为Flag值(如:172.16.1.1)提…

【炼丹炉】CentOS 7安装GPU(Tesla P100)驱动

下载驱动 https://www.nvidia.cn/Download/index.aspx?langcn CentOS 7操作 1. 启动方式 需要是 UEFI/EFI 的 非安全启动方式; 2. 基础环境准备 检查 GPU 是否支持 CUDA lspci | grep -i nvidia 00:09.0 3D controller: NVIDIA Corporation GP100GL [Tesla P…

Nvidia GPU卡演进架构及(P100)介绍

转载自: Nvidia GPU卡演进架构及(P100)介绍 http://linuxperformance.top/ 关于GPU 关于GPU我们可以回退到1985年ATi公司成立,开发出了第一款图形芯片和图形卡,那时候这种芯片还没有GPU的称号, ATI都是把…

英伟达Tesla P100超级计算机组件全面登陆PCIe总线

英伟达公司已经推出了其Tesla P100加速芯片,采用PCIe卡形式且可接入标准服务器节点以支持人工智能与超级计算机级别的工作负载处理工作。 P100公布于今年4月在加利福尼亚州召开的英伟达GPU技术大会上:这款16纳米FinFET图形处理器在一块600平方毫米晶片上…

上海贝尔s1240程控交换机

有没有懂上海贝尔s1240的大佬,有问题想咨询一下,有偿。

大族激光打标机与西门子300以太网通讯协议

大族激光打标机与西门子300以太网通讯协议 技术交流 资源共享 博主QQ:68823886 原创文章,转载请注明: 转载自莫如技术团队 本文链接地址: http://mooru.cn/19029.html