Ubuntu Linux 显卡驱动安装

本文详细介绍在Ubuntu系统上安装NVIDIA显卡驱动的过程,包括卸载旧驱动、禁用开源驱动nouveau、切换控制台及安装NVIDIA官方驱动等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu Linux 显卡驱动安装

  • Linux新安装显卡驱动

  • Linux系统更新更新内核后会启用nouveau开源驱动

    • 先卸载之前的显卡驱动

      sudo apt-get remove –purge nvidia-* (purge之前是两个横线)

    • 或者使用:

      sh ./nvidia.run –uninstall

    • 再修改配置文件 /etc/modprobe.d/blacklist.conf

      sudo chmod 666 /etc/modprobe.d/blacklist.conf(修改权限)
      sudo vi /etc/modprobe.d/blacklist.conf (开始编辑)

    • 在后面添加

      blacklist nouveau

    • 按下 Ctrl + Alt + F1切换到Shell控制台,关闭图形环境

      sudo init 3
      sudo rm /tmp/.X*
      sudo service lightdm stop (关闭显示管理器)

    • 安装驱动

      sudo sh NVIDIA-Linux-x86_64-xxx.xx.run
      sudo service lightdm start (开启显示管理器)


modprobe

modprobe用于将可以加载的内核模块LKM添加到内核中,或是从内核中删除LKM。用户空间中,使用modprobe加载驱动检测硬件。

modprobe作用

  • 可以直观地决定要加载哪些模块
  • 可以管理到模块的依赖项,当要加载模块的时候,它可以先添加依赖项
  • 是管理迭代模块依赖项的一种方案

blacklist

  • 如果两个或多个模块支持同一个设备, 或一个模块不支持某个设备:blacklist关键字就可以指定哪个模块可以被忽略
  • 有几种方法可以blacklist一个模块,取决于配置文件如何加载它
  • modprobe有两种方法可以blacklist模块,使用系统提供的modprobe.conf文件,先用系统中的 /etc/modprobe.d/blacklist

    cat /etc/modprobe.d/blacklist
    blacklist nouveau

  • 基础安装文件在配置文件中具有较高的优先级,如果无法用第一种方式安装的话,就需要用第二种方法,指定安装

Linux图形架构

这里写图片描述

Linux图形层次:DRM, KMS driver, & libDRM, Mesa 3D. Display servers 显示服务是系统视窗的一部分,但游戏不需要。

https://nouveau.freedesktop.org/wiki/

nouveau 是英伟达显卡开源驱动,为nvidia的GPU建立高质量3D驱动的共同项目,并且Nouveau是在完全没有得到NVIDIA任何支持的情况下进行开发的,免费自由的开源驱动项目,nouveau”[nuvo]”与new谐音, 是Linux KMS驱动的一部份,在Linux内核中支持nvidia显卡。

nouveau是X.Org基金会的一个项目(X.Org基金会是负责X Window System开发的社团,2004年1月22日在Open Group的X.org网站基础上建立 )。开发所用方式,和创新声卡X驱动开发的方法类似,反编译NVIDIA的Linux显卡驱动,然后进行再加工深处理的进一步开发工作。现在有一些nvidia的员工提供一些帮助

Nouveau 驱动通常是内核附带的,编译进内核而不是作为模块,内核启动后即进入最佳分辨率,X启动后也是最佳分辨率。

nouveau软件架构

nouveau是Gallium3D风格设备驱动,运行在Direct Rendering Infrastructure (DRI) 之上。由两个内核元素DRM和KMS driver,用户空间的libDRM,Mesa 3D 组成。

nouveau是Gallium3D风格显卡驱动
这里写图片描述

nouveau支持所有nvidia微架构 Tesla, Fermi, Kepler, Maxwell ,Pascal ,Volta。

时钟重整技术

由于技术原因,nvidia GPU在一个较低的频率下启动(也就是“时钟”)。启动之后,设备驱动设置到较高频率。缺少技术文档,nouveau无法从头设计。2014年6月之后,时钟重整技术加入到nouveau中。

支持的接口

  • Rendering API
  • Direct3D
  • OpenGL
  • Video 加速

计算型API

  • OpenCL
  • CUDA(不支持)

Linux内核和OpenGL
这里写图片描述

数据和指令发送到GPU进行处理。渲染后的结果不会返回到主内存。而是存储在framebuffer中,framebuffer中的内存按顺序发送到显示控制器中。


Linux init 初始化系统

Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 pid 为 1 的 init 进程。这个进程是系统的第一个进程。它负责产生其他所有用户进程。

每种 Linux 发行版对运行模式的定义都不太一样。但 0,1,6 却得到了大家的一致赞同:

  • 0 关机
  • 1 单用户模式
  • 6 重启

通常在 /etc/inittab 文件中定义了各种运行模式的工作范围。

比如 RedHat 定义了 runlevel 3 和 5。

运行模式 3 将系统初始化为字符界面的 shell 模式;

运行模式 5 将系统初始化为 GUI 模式。

无论是命令行界面还是 GUI,运行模式 3 和 5 相对于其他运行模式而言都是完整的正式的运行状态,计算机可以完成用户需要的任务。

而模式 1,S 等往往用于系统故障之后的排错和恢复。

很显然,这些不同的运行模式下系统需要初始化运行的进程和需要进行的初始化准备都是不同的。

比如运行模式 3 不需要启动 X 系统。


轻量Linux桌面显示管理器Light Display Manager (LightDM)

Ubuntu 系统上安装 NVIDIA A10 显卡驱动需要确保系统环境兼容,并遵循正确的安装步骤。以下是安装流程和注意事项: 1. **禁用 Nouveau 驱动** 在安装 NVIDIA 官方驱动之前,需要禁用开源的 Nouveau 驱动。可以通过编辑 `/etc/modprobe.d/blacklist.conf` 文件,添加以下内容: ``` blacklist nouveau options nouveau modeset=0 ``` 然后运行以下命令更新内核模块: ```bash sudo update-initramfs -u ``` 重启系统后,验证 Nouveau 是否已禁用: ```bash lsmod | grep nouveau ``` 如果没有输出,则表示禁用成功[^3]。 2. **安装必要的依赖** 安装编译驱动所需的依赖项,包括 `build-essential` 和其他开发工具: ```bash sudo apt update sudo apt install build-essential ``` 3. **下载并安装 NVIDIA 驱动** 访问 [NVIDIA 官方网站](https://www.nvidia.com/Download/index.aspx),根据你的 A10 显卡型号选择适合的驱动版本。建议选择 "Production Branch"(生产分支)以获得更稳定的体验。下载完成后,赋予驱动安装文件可执行权限并运行安装程序: ```bash chmod +x NVIDIA-Linux-x86_64-<version>.run sudo ./NVIDIA-Linux-x86_64-<version>.run ``` 安装过程中,如果系统提示与显示管理器(如 `gdm` 或 `lightdm`)冲突,可以选择手动切换到字符界面进行安装,或者在安装后重新配置显示管理器[^2]。 4. **验证驱动安装** 安装完成后,使用以下命令验证驱动是否安装成功: ```bash nvidia-smi ``` 如果看到显卡型号和驱动版本信息,则表示安装成功[^3]。 5. **配置 Python 环境(可选)** 如果计划在 Python 中使用 GPU 进行深度学习或科学计算,建议安装 CUDA Toolkit 和 cuDNN 库。可以通过以下命令安装 CUDA Toolkit: ```bash sudo apt install nvidia-cuda-toolkit ``` 然后安装 PyTorch 或 TensorFlow 等支持 GPU 的深度学习框架: ```bash pip install torch torchvision ``` ### 常见问题及解决方法 - **黑屏问题** 如果在安装驱动后重启系统出现黑屏,可能是由于显示管理器(如 `gdm3`)不兼容导致。可以尝试切换到字符界面(Ctrl+Alt+F1)并卸载 `gdm3`,改用 `lightdm`: ```bash sudo apt purge gdm3 sudo apt install lightdm sudo dpkg-reconfigure lightdm ``` 然后重启系统[^2]。 - **GCC 版本问题** 在 Ubuntu 22.04 上,系统默认的 GCC 版本可能与 NVIDIA 驱动不兼容。可以使用以下命令安装较旧版本的 GCC 并设置默认版本: ```bash sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 sudo update-alternatives --config gcc ``` ### 示例代码:验证 Python 是否能访问 GPU ```python import torch # 检查是否有 CUDA 设备 if torch.cuda.is_available(): print("CUDA is available!") print("Number of GPUs:", torch.cuda.device_count()) print("Current GPU:", torch.cuda.get_device_name(torch.cuda.current_device())) else: print("CUDA is not available.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值