在 Ubuntu 16.04.02 上禁用 Nouveau 内核驱动程序

在 Ubuntu 16.04.02 上禁用 Nouveau 内核驱动程序

我尝试了各种论坛上的所有解决方案。目前,我已经无计可施,无法禁用 Nouveau 驱动程序并安装 Nvidia 驱动程序。我尝试过清除/删除以前的 Nvidia、黑名单文件等,但我无法禁用 nouveau。

输出lspci -vnn | grep -i VGA -A 12

lspci: Unable to load libkmod resources: error -12
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM107GL [Quadro K620] [10de:13bb] (rev a2) (prog-if 00 [VGA controller])
    Subsystem: Hewlett-Packard Company GM107GL [Quadro K620] [103c:1098]
    Physical Slot: 2
    Flags: bus master, fast devsel, latency 0, IRQ 30
    Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
    Memory at e0000000 (64-bit, prefetchable) [size=256M]
    Memory at f0000000 (64-bit, prefetchable) [size=32M]
    I/O ports at 1000 [size=128]
    Expansion ROM at f3080000 [disabled] [size=512K]
    Capabilities: <access denied>
    Kernel driver in use: nouveau

02:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fbc] (rev a1)

我还将 nouveau 列入了黑名单。我尝试通过 deb 包安装 Nvidia 驱动程序,并从 Nvidia 驱动程序网站下载。我还更新了 intramfs 以通过 noveau 进行修剪。

我的 Ubuntu 发行版的详细信息

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial

PS - Mu 的最终目标是安装 CUDA 驱动程序和工具包。

答案1

首先,请确保您已启用受限存储库。它们位于 /etc/apt/sources.list 中,可能已用 # 注释掉。删除行首的 #。您可能会看到以下几个类似内容:

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe multiverse restricted #Added by software-properties
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main universe multiverse restricted #Added by software-properties
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe multiverse restricted #Added by software-properties

然后更新你的包索引:

sudo apt-get update

nvidia 375 包是标准存储库中最新的包,但是如果您想尝试,也可以使用 381 包——它修复了一些睡眠引起的瑕疵,但还没有经过充分的测试。

我的设置是 quadro 1000M,并且我拥有的 nvidia 375 包是:

nvidia-375
nvidia-375-dev
nvidia-modprobe
nvidia-opencl-icd-375
nvidia-prime
nvidia-设置

清除所有以前安装的 nvidia 包,并检查 /etc/modprobe.d 中的任何文件中是否有 nvidia 的黑名单行,
使用以下命令安装以上所有内容:

sudo apt-get install nvidia-375 nvidia-375-dev nvidia-modprobe nvidia-opencl-icd-375 nvidia-prime nvidia-settings

重新启动并查看 nvidia 驱动程序是否正在被使用:

sudo lshw -C video

您应该在 /etc/modprobe.d 中有两个文件,nvidia-375_hybrid.conf 和 nvidia-375_hybrid.conf,其中有几行将 nouveau 驱动程序列入黑名单并删除任何别名。检查 /etc/modules 中是否没有 nouveau,以及 /etc/rc.local 中是否没有任何加载 nouveau 的内容。最后,检查 dmesg 输出,应该看不到 nouveau:

dmesg |grep nouveau

nvidia 的 dmesg 输出看起来应该类似于:

$ dmesg |fgrep -i nvidia
[    1.145050] nvidia: module license 'NVIDIA' taints kernel.
[    1.150438] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[    1.154278] nvidia 0000:01:00.0: enabling device (0000 -> 0003)
[    1.154407] nvidia-nvlink: Nvlink Core is being initialized, major device number 244
[    1.154417] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  375.39  Tue Jan 31 20:47:00 PST 2017 (using threaded interrupts)
[    1.155859] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  375.39  Tue Jan 31 19:41:48 PST 2017
[    1.156840] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[   14.454118] nvidia-uvm: Loaded the UVM driver in 8 mode, major device number 240
[   35.821752] nvidia-modeset: Allocated GPU:0 (GPU-821d0db5-a56d-9fdf-72cc-d0eab575873a) @ PCI:0000:01:00.0

最后,lsmod 应该包含几个 nvidia 模块,但没有 nouveau。


安装 nvidia 驱动程序后,您应该能够安装 Intel cuda .deb 包。dpkg -i

然后使用 apt-get 安装 cuda 和 cuda-toolkit,它们应该会引入许多其他 cuda 包。

阅读英特尔说明,将 CUDA 位置添加到您的 PATH 和 LD_LIBRARY_PATH
将示例从 cuda 安装目录复制到您的主目录或您有写入权限的任何地方,以便您可以运行 make 来构建示例。另外,我假设您已经安装了 g++,也许还安装了 build-essential gcc 应该默认存在,并且 16.04 具有适合编译器的正确版本 (5)。

相关内容