zhangjiannan
项目案例 核心能力 交付流程 文档库
ON THIS PAGE
    # 永久禁用nouveau模块 **文档控制** |**序号**|**修改人/验证人**|**修改内容**|**日期**| |---|---|---|---| |1|zhangjiannan|创建文档|2025\.2\.15| ||||| ||||| ||||| # 一、关于本指导书 ## 1\.1 指导书目的 针对在系统安装NVIDIA驱动前,禁用nouveau模块提供规范性指导方法。 ## 1\.2 指导书适用对象 本指导书适用于涉及服务器交付的实施人员。 ## 1\.3 指导书中的格式定义 本指导书中方框内内容为执行的shell命令及输出,例如: ```Bash [bjuci@server01 ~]$ ls Intel ``` ## 1\.4 本指导书测试平台 |**处理器平台**|Intel\(R\) Xeon\(R\) Platinum 8468V| |---|---| |**操作系统版本**|Ubuntu 22\.04\.4 LTS Server版| |**前置条件**|无| ## 1\.5 所需软件官方下载地址 |不涉及|不涉及| |---|---| # 二、背景介绍 `nouveau` 是一个开源的 NVIDIA 图形驱动,用于 Linux 操作系统,支持 NVIDIA 显卡。它的目的是为 Linux 用户提供一个免费的、开源的驱动程序,使得 Linux 用户能够使用 NVIDIA 显卡进行图形加速,而不必依赖于 NVIDIA 提供的闭源驱动程序。 **主要特点** 1. **开源**:`nouveau` 驱动是完全开源的,由社区开发和维护,符合自由软件的精神。相比之下,NVIDIA 提供的官方驱动是闭源的。 2. **支持 NVIDIA 显卡**:`nouveau` 驱动支持大多数 NVIDIA 显卡,从老旧的 GPU 到较新的模型,但它的性能通常不如官方闭源驱动。 3. **有限的功能和性能**: - **性能**:`nouveau` 驱动的性能通常不如 NVIDIA 官方驱动,尤其在高性能图形计算和游戏方面。 - **功能**:与官方驱动相比,`nouveau` 在某些高级功能(如硬件加速视频解码、CUDA 支持等)上有缺失。 4. **内核模式设置(KMS)**:`nouveau` 驱动通常在 Linux 系统中启用内核模式设置(KMS),这意味着图形显示的初始化和模式切换是在内核中完成的。 ### 为什么禁用 `nouveau` 驱动? 1. **性能问题**:`nouveau` 驱动的性能较低,特别是在使用 NVIDIA 显卡进行图形密集型工作(如游戏或深度学习)时,通常不如官方闭源驱动。 2. **兼容性问题**:某些应用程序或操作可能与 `nouveau` 驱动不兼容,尤其是在使用 NVIDIA 显卡进行专业工作(如视频编辑或科学计算)时。 3. **需要官方驱动**:如果希望使用 NVIDIA 提供的官方驱动(例如,CUDA 或 GPU 加速),就需要禁用 `nouveau` 驱动,因为可能会和官方驱动产生冲突导致官方驱动安装失败。官方驱动通常能够提供更好的支持和性能,尤其是在支持 GPU 加速、深度学习等领域时。 `nouveau` 是一个为 Linux 提供的开源 NVIDIA 驱动,虽然它能支持基本的图形功能,但由于性能和功能的限制,许多用户选择禁用它,转而使用 NVIDIA 提供的官方驱动,以获得更好的性能和兼容性。如果选择官方驱动,那么禁用nouveau是必须的。 # 三、禁用方法 ## 3\.1 **创建黑名单文件** 通过创建 `/etc/modprobe.d/blacklist-nouveau.conf` 文件并加入以下内容: ```Bash blacklist nouveau options nouveau modeset=0 ``` 这段配置的作用是告诉 `modprobe` 在加载模块时忽略 `nouveau` 驱动并禁用它。`modeset=0` 参数禁用 `nouveau` 的内核模式设置(即不使用 `nouveau` 驱动来控制显示器的显示)。 ## 3\.2 **更新 initramfs** 更新 `initramfs` 是必须的,因为 `nouveau` 驱动有时会被加载到启动的初期阶段。通过执行: ```Bash sudo update-initramfs -u ``` 这会更新 initramfs,并确保系统在启动时不会加载 `nouveau` 驱动。 ## 3\.3 **重启系统** 重启系统以使上述更改生效: ```Bash sudo reboot ``` ## 3\.4 **验证是否禁用成功** 重启后,你可以通过以下命令检查 `nouveau` 驱动是否仍然被加载: ```Bash lsmod | grep nouveau ``` 如果没有输出,说明 `nouveau` 驱动已经被禁用,验证成功。 **如果禁用成功,则忽略后续内容。** # 四、可能出现的问题 **GRUB 配置未更新**:有时 `nouveau` 驱动可能在 `GRUB` 引导时被强制加载。如果经过上述方法禁用后,仍然看到 `nouveau` 驱动在 `lsmod` 中列出,可以尝试在 `GRUB` 配置中手动禁用 `nouveau` 驱动。 1. 编辑 `/etc/default/grub`: ```Bash sudo vim /etc/default/grub ``` 2. 找到 `GRUB_CMDLINE_LINUX_DEFAULT` 行,加入 `nouveau.modeset=0`,例如: ```Bash GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0" ``` 3. 更新 GRUB 配置: ```Bash sudo update-grub ``` 4. 重启系统: ```Bash sudo reboot ```
    DOCUMENT FEEDBACK
    暂无留言,欢迎提交反馈。