百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

ubuntu 20.04+RTX4060 Ti+CUDA 11.7+cudnn

nanshan 2024-11-11 12:18 26 浏览 0 评论

ububtu添加国内源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 
sudo vim /etc/apt/sources.list

在sources.list的最后添加阿里的源

deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

更新验证

sudo apt-get update
sudo apt-get upgrade

禁用nouveau

Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。 所以我们要先把驱动加到黑名单blacklist.conf里。

# 修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf  
# 用vim 打开
$sudo vim /etc/modprobe.d/blacklist.conf
# 在最后一行加入以下几句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
// 对刚才修改的文件进行更新
$sudo update-initramfs -u
# 记得重启计算机,打开终端检查nouveau是否被禁用
$lsmod | grep nouveau #若执行完该句,没有任何输出,则nouveau被成功禁用

安装gcc

$sudo apt-get  install  build-essential #安装gcc 
$gcc --version #检查gcc是否安装成功
# 如果有提示make,g++没有安装 ,再执行以下命令
$sudo apt-get install g++
$sudo apt-get install make

卸载NVIDIA显卡驱动

第一种卸载方法

# 如果你之前安装过其他的显卡驱动 
cd /usr/local/cuda-xx.x/bin/
sudo ./NVIDIA-Linux-x86_64-*.run --uninstall
sudo rm -rf /usr/local/cuda-xx.x 
# 使用sudo安装或者ubuntu软件更新器里面安装的
sudo apt remove --purge nvidia*
sudo apt autoremove

第二种卸载方案

sudo apt-get remove cuda
sudo apt autoremove 
sudo apt-get remove cuda*

cd /usr/local/            #进入到安装目录下
sudo rm -r cuda-11.x      #删除对应的cuda版本文件夹
sudo dpkg -l |grep cuda   #查看剩余的残留
sudo dpkg -P cuda-visual-tools-11-x      #卸载对应的残留,所有的残留都要删除,通过删除样式为sudo dpkg -P 残留文件名。

卸载cuda-toolkit

sudo apt-get remove nvidia-cuda-toolkit                    #仅卸载nvidia-cuda-toolkit
sudo apt-get remove --auto-remove nvidia-cuda-toolkit       #卸载nvidia-cuda-toolkit及其依赖项
sudo apt-get purge nvidia-cuda-toolkit 
sudo apt-get purge --auto-remove nvidia-cuda-toolkit      #清除配置/数据

#To remove CUDA Toolkit 再清理清理也可以
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
#To remove NVIDIA Drivers:
sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"

查看cuda和cudnn的安装信息

whereis cuda        # 查看cuda的安装位置
cat /usr/local/cuda/version.txt    #查看已安装的CUDA的版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2       #查看已安装的CUDNN的版本

是否要安装lightdm

sudo apt-get install lightdm

但是本来在安装Ubuntu系统的时候,系统已经默认安装了gdm3的显示管理器。而且用的比较习惯,所以私以为这个其实不需要安装lightdm。使用gdm3也是一样可以的。

安装显卡驱动

安装显卡驱动

在系统中找到软件及更新进行安装驱动


安装完成后使用命令nvidia-smi查看驱动是否成功,如果没有重启系统后在再命令窗口中使用命令nvidia-smi查看驱动是否成功

nvidia-smi



上图 CUDA Version:12.0指的是最高支持cuda12.0的版本,并不是已经安装了cuda12.0的版本,可以安装cuda11.7版本

安装CUDA

点击 https://developer.nvidia.com/cuda-toolkit-archive




你网络好的话可以直接使用命令下载,有可能网络中断,中断了需要重新下载。也可以将https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run 复制到浏览器或者迅雷中下载

下载完成后,将cuda_11.7.0_515.43.04_linux.run 复制到一个位置开始执行安装 sudo sh cuda_11.7.0_515.43.04_linux.run

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run




安装完成后,需要配置以下全局变量

sudo vim ~/.bashrc
#在最后添加
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH
# 保存退出
source ~/.bashrc

cudnn安装

下载位置(需要注册邮箱并登陆) https://developer.nvidia.com/rdp/cudnn-download



下载后复制到系统中后解压

# 下载对应tar包
# 解压缩
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
# copy
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.7/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.7/lib64
sudo chmod a+r /usr/local/cuda-11.7/include/cudnn*.h /usr/local/cuda-11.7/lib64/libcudnn*

cat /usr/local/cuda-11.7/include/cudnn.h | grep CUDNN_MAJOR -A 2

解决黑屏问题

问题描述:在进行prime-select nvidia后,重启电脑,左上角光标闪烁,无法进入登录页面。如果你恰巧执行了 nvidia-xconfig 命令,生成 /etc/X11/xorg.conf 之后,系统也还是进不去,**但是不会再一直循环登陆,而是登陆之后直接就卡住了。**问题出现在 X11 的配置文件上。 解决思路:

解决思路:

1、nvidia-xconfig 是只为英伟达的显卡设置 xorg 配置文件,在核显+独显的电脑上,这个配置文件是无效的。于是就会出现登陆后直接卡住的问题 2、在没有 xorg.conf 的情况下,X server 会检测系统状态并且自动生成配置。但是自动生成的配置把独显的驱动检测成了 nouveau(nvidia 驱动安装中禁用掉的系统自带的驱动)。于是在这种情况下,如果使用了 prime-select 把默认显卡设置成了独显,系统会因为找不到驱动而一直启动失败,此时会造成循环登陆 解决步骤

# 终端执行
sudo nvidia-xconfig
# 此时会在/etc/X11中生成xorg.conf文件,打开进行编辑 --20230704 删除了这个文件还是可以进入图形界面
sudo vim /etc/X11/xorg.conf

将其替换为以下内容,手动在 nvidia-xconfig 生成的文件中添加对 intel 显卡的支持

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 535.54.03

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce RTX3050TI"
    BusID          "PCI:1:0:0"
EndSection

Section "Device"
    Identifier     "intel"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

其中BusID可以用以下命令查看

xxxc:~$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Device 46a6 (rev 0c)
	DeviceName: Onboard IGD
	Subsystem: Hewlett-Packard Company Device 89c0
	Kernel driver in use: i915
--
01:00.0 3D controller: NVIDIA Corporation Device 25a0 (rev a1)
	Subsystem: Hewlett-Packard Company Device 89c1
	Kernel driver in use: nvidia
	Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia


#来点儿干货#

相关推荐

Centos7虚拟机安装及网络配置(二)

#二、centos7的网络配置-Nat模式NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚...

网络分析shell脚本(实时流量+连接统计)

介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下。脚本运行效果截图:此脚本包含的功能有:1、实时监控任意网卡的流量2、统计10秒内平均流量3、统计每个端口...

Centos之Could not retrieve mirrorlist解决方案

Centos之Couldnotretrievemirrorlist解决方案:vi/etc/sysconfig/network-scripts/ifcfg-你的网卡名字修改:ONBOOT=ye...

一文掌握!VirtualBox 中 Rock9.x(Linux)网络配置全攻略

一、前言记得我有一篇文章《必看!VirtualBox中Centos7(Linux)网络配置全攻略》讲的非常明细,但是因为CentOS已经停止维护了,可能很多人都不想继续学CentOS,我也是一样,...

CentOS 6.0 设置IP地址、网关、DNS

在做任何操作之前先备份原文件,我们约定备份文件的名称为:源文件名称+bak,例如原文件名称为:centos.txt那么备份文件名称为:centos.txtbak引言:linux的网卡IP地址是存放在文...

Linux CentOS 基础操作(centos怎么操作)

简介:养成学习Linux的好习惯,第一是多查看manpage(manual)等帮助文档和利用好Tab键;第二是掌握好一些快捷键,比如ctrl+c(停止当前进程),ctrl+r(查看命令历史)...

Linux抓包王者技能!这条命令直接封神,教你精准定位网络问题

在网络故障排查和性能调优中,抓包是一项必不可少的技能。对于Linux环境下的网络工程师和运维人员来说,掌握高效抓包方法至关重要。而要说“抓包界的王炸”,那非tcpdump莫属!今天,我们不仅要介绍...

「干货」如何在 Linux 上划分VLAN?

在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...

CentOS 8 网络配置实战教程:静态IP、路由与DNS设置

一、配置前准备1.查看当前网络信息#查看所有网络接口nmclidevicestatus#查看指定网卡信息(假设网卡名为ens192)ipaddrshowens192#查看路由...

Debian10.7修改网络配置(debian怎么配置网络)

简介:关于Debian获取IP地址的方法主要有两种,动态获取和静态设置。在配置网络之前先要知道Debian的网卡名称是什么,Debian可通过命令#ipa查看网卡名称。本文主要通过介绍Debian...

巧用SSH转发功能深入穿透内网(ssh转发udp)

ssh能够提供客户端到服务端的加密传输,当http、ftp等协议被防火墙所拦截时,可以考虑使用SSH的端口转发功能,将其它TCP端口的网络数据通过SSH连接来转发。转发方式一共有三种,分别是:动态转发...

CentOS Linux 7 的IP地址配置(centos7.4配置ip地址)

前段时间有位朋友,在一台PC机上安装了CentOSLinux7系统,因为要接入局域网,需要配置IP地址和默认网关信息。于是参照一本Linux教程上编辑网卡配置信息的方法,输入:vim/etc/s...

教你如何在 Linux 上划分VLAN(linux怎么分区详解)

在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...

打通数据高速公路:如何在 CentOS 上使用 Thunderbolt 3 和 4

Thunderbolt3与4是现代高速外设连接的代表,带来了40Gbps的惊人带宽,支持数据、视频、音频与供电的“四合一”功能,尤其在专业视频编辑、科研计算、虚拟化扩展等领域具有巨大价值...

VMware 虚拟机 CentOS7 桥接模式静态 IP 配置全攻略

虚拟机桥接模式原理配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以...

取消回复欢迎 发表评论: