RTX 5060 Ti Linux 驱动黑屏避坑指南:CUDA 13.1, Open Kernel 与 BIOS 设置

RTX 5060 Ti Linux 驱动黑屏避坑指南:CUDA 13.1, Open Kernel 与 BIOS 设置

Ultimate Guide: Installing RTX 5060 Ti Drivers & CUDA 13.1 on Linux (Ubuntu 24.04) - Fixing Black Screens & Device Errors

写在前面

2025年末,RTX 50 系列(Blackwell架构)发布。我在将系统从 2080 Ti 升级到 5060 Ti 后,遭遇了严重的驱动安装失败与黑屏问题。本文记录了在 Ubuntu 24.04 (Kernel 6.14) 下,如何解决 request_mem_region failed 内存冲突,并正确安装强制要求的 NVIDIA Open Kernel Modules 驱动与 CUDA 13.1


1. 问题现象与环境

硬件环境

  • CPU: AMD Ryzen 7 5800X (无核显)
  • GPU: ASUS RTX 5060 Ti (Blackwell Architecture)
  • OS: Ubuntu 24.04 LTS (Kernel 6.14)

故障描述

系统能够通过 BIOS 自检,但在进入 Ubuntu 引导后全程黑屏。通过 SSH 或 TTY 进入系统后,即便安装了驱动,nvidia-smi 依然报错:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

使用 dmesg 查看内核日志,发现了关键错误:

bash 复制代码
[ 123.88 ] NVRM: request_mem_region failed for 64M @ 0xd0000000. 
[ 123.88 ] NVRM: This can occur when a driver such as rivatv is loaded...
[ 123.88 ] NVRM: probe with driver nvidia failed with error -1

以及尝试加载驱动时的报错:
modprobe: ERROR: could not insert 'nvidia': No such device


2. 核心故障分析 (Root Cause Analysis)

经过深度排查,导致 5060 Ti 无法工作的核心原因有三点,必须按顺序解决:

  1. 内存地址冲突 (BAR Space Conflict) :日志中的 request_mem_region failed 表明,显卡所需的 PCI BAR 内存地址(0xd0000000)被系统保留区或帧缓冲驱动(sysfb/efifb)占用了。这是因为 BIOS 分配了低位地址,导致驱动无法接管。
  2. 内核模块类型错误RTX 50 系列 (Blackwell) 显卡强制要求使用 NVIDIA Open Kernel Modules。传统的闭源驱动(Legacy Kernel Module)无法正确初始化新架构的 GSP(GPU System Processor)。
  3. 显示权抢占 :Linux 高版本内核的 simpledrmsysfb 会"霸占"显示输出,导致 NVIDIA 驱动无法介入。

3. 解决方案 (Step-by-Step)

第一步:BIOS 设置(根治内存冲突)

这是最关键的一步。 如果不开启此选项,系统只能给显卡分配 4GB 以下的拥挤地址空间,必然冲突。

  • 重启电脑进入 BIOS。
  • 找到 Above 4G Decoding (大于4G地址解码) :设置为 Enabled
  • 找到 CSM Support (兼容性支持模块) :设置为 Disabled (纯 UEFI 模式)。
  • (可选) Resizable BAR:建议设为 Auto 或 Disabled(排查期可先关闭)。

原理 :开启 Above 4G Decoding 后,显卡的内存映射地址会从拥挤的低位(如 d0000000)迁移到高位地址,彻底解决 request_mem_region failed

第二步:修改 GRUB 驱逐"钉子户"驱动

为了防止内核自带的 sysfbefifb 干扰显卡初始化,我们需要在内核启动参数中禁用它们。

  1. 编辑 GRUB 配置:

    bash 复制代码
    sudo nano /etc/default/grub
  2. 修改 GRUB_CMDLINE_LINUX_DEFAULT 行,追加以下参数:

    text 复制代码
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1 initcall_blacklist=sysfb_init video=efifb:off video=vesafb:off video=simplefb:off"
  3. 更新引导并重启:

    bash 复制代码
    sudo update-grub
    sudo reboot

第三步:安装 NVIDIA Open Kernel 驱动

由于 Ubuntu 官方源可能尚未通过 APT 提供最新的 590-open 版本,推荐使用 NVIDIA 官方 .run 文件进行"核弹级"安装。

  1. 下载驱动 :前往 NVIDIA 官网下载适用于 Linux 64-bit 的 590.xx 或更新版本(例如 NVIDIA-Linux-x86_64-590.44.01.run)。

  2. 清理旧环境并停止图形界面

    bash 复制代码
    sudo apt remove --purge "nvidia-*" "libnvidia-*"
    sudo apt autoremove
    sudo systemctl stop gdm  # 或 lightdm
  3. 执行安装(关键参数)

    必须添加 -m=kernel-open 参数,显式启用开源内核模块支持。

    bash 复制代码
    chmod +x NVIDIA-Linux-x86_64-590.44.01.run
    sudo ./NVIDIA-Linux-x86_64-590.44.01.run -m=kernel-open
  4. 安装过程选项

    • Install 32-bit compatibility libraries? -> Yes (Steam/Wine需要)
    • Register with DKMS? -> Yes (内核更新后不掉驱动,必选)
    • Update X configuration? -> No

4. 验证与 CUDA 环境配置

重启系统 (sudo reboot),执行以下命令验证。

1. 检查驱动状态

bash 复制代码
nvidia-smi

此时应能正确看到 RTX 5060 Ti 设备,且 Driver Version 显示为 590.xx

2. 配置 CUDA 环境变量

虽然驱动安装成功,但 nvcc 编译器可能还需要手动添加到 PATH。

bash 复制代码
# 写入 zshrc 或 bashrc
echo 'export PATH=/usr/local/cuda-13.1/bin:$PATH' >> ~/.zshrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc
source ~/.zshrc

验证编译器版本:

bash 复制代码
nvcc -V
# 应输出 Cuda compilation tools, release 13.1...

3. Hello World 实测

编写一个简单的 test_cuda.cu 验证算力:

cpp 复制代码
#include <stdio.h>
__global__ void helloFromGPU() {
    printf("Hello World from RTX 5060 Ti thread %d!\n", threadIdx.x);
}
int main() {
    helloFromGPU<<<1, 5>>>();
    cudaDeviceSynchronize();
    return 0;
}

编译运行:

bash 复制代码
nvcc test_cuda.cu -o test_cuda && ./test_cuda

总结 (Conclusion)

在 Linux 上部署 RTX 50 系列新显卡时,传统的经验可能失效。核心避坑点在于:

  1. BIOS :必须开启 Above 4G Decoding,否则内存地址冲突无解。
  2. 驱动架构 :必须使用 -m=kernel-open 安装 Open Kernel Modules,闭源驱动已不再完美支持 Blackwell 架构。
  3. 内核参数 :高版本内核需强力禁用 sysfb/efifb 以释放资源。

希望这篇指南能帮到后来者,少走弯路!

相关推荐
原来是猿16 小时前
Linux UDP Socket 编程入门:Echo Server/Client实现
linux·运维·udp
中微子16 小时前
突然爆火的Warp 终端,开源1天破 4w Stars
linux·人工智能·开源
半斤八两21116 小时前
个人服务器发送消息至飞书
服务器
pengyi87101516 小时前
共享 IP 池多人使用 分层权限与配额管理方案
运维·服务器·网络
计算机安禾16 小时前
【Linux从入门到精通】第33篇:数据库MySQL/MariaDB安装与基础调优
linux·数据库·mysql
搞科研的小刘选手16 小时前
【高届数传感机电会议】第十二届传感器、机电一体化和自动化系统国际学术研讨会(ISSMAS 2026)
运维·人工智能·自动化·控制·传感器·传感·机电
楼兰公子17 小时前
读取rpi摄像头
linux·服务器·算法
李景琰17 小时前
Debian12安装配置Mqtt之EMQX
linux·运维·服务器
SimLine芯见17 小时前
专为空管环境打造的KVM切换器,满足主备自动化高速无缝切换需求
运维·自动化
测试员周周17 小时前
【AI测试系统】第1篇:LangGraph 实战:用 State Graph 搭建 AI测试流水线(4 步编排 + RAG 增强 + 完整代码)
linux·windows·python·功能测试·microsoft·单元测试·多轮对话