继续debian test的坑,如何用apt-get,安装和配置Nvidia CUDA,并解决无法进入桌面的问题。

软件源的配置

CUDA 属于第三方软件,debian的源中默认是没有的,需要手动添加。添加方法如下:

1
2
3
4
5
6
7
$ cd /etc/apt/sources.list.d
$ sudo touch debian-testing.list
$ sudo vim debian-testing.list
# 加入如下两个源
deb http://mirrors.ustc.edu.cn/debian/ testing main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian/ testing main contrib non-free
$ sudo apt update

此时,利用apt search cuda,便能找到cuda的安装包了,类似如下的结果

1
2
nvidia-cuda-toolkit/testing,now 8.0.61-3 amd64 [installed]
NVIDIA CUDA development toolkit

这里显示installed,是因为我已经安装好了。

安装 CUDA

添加好软件源后,利用apt install便可以安装,但这之前需要中止图形界面的程序,并禁止系统自带的显卡驱动,具体步骤如下。

禁止系统显卡驱动
1
2
3
4
5
6
7
$ cd /etc/modprobe.d
$ sudo touch nvidia-blacklists-nouveau.conf
$ sudo vim nvidia-blacklists-nouveau.conf
# Add
blacklist nouveau
# 保存并退出,重启显卡服务
$ sudo update-initramfs -u

此时,再执行lsmod | grep nouveau,若没有显示,则说明配置成功。

中止图形界面并安装CUDA

同时按Ctrl+Alt+F2进入Console界面,以用户或者root身份登录,执行如下如下指令,

1
2
$ systemctl stop lightdm.service # 若使用的是gdm3,则为gdm3.service
$ sudo apt install nvidia-cuda-toolkit

此时,便开始安装CUDA,其中包含了CUDA的一些library和与显卡对应的NVIDIA驱动,例如我安装的驱动为nvidia-384.111

安装Xserver-xorg-video-nvidia

这一点单独提出来,是因为我在这里卡了好久。。。因为每安装Xorg对应的驱动,导致开机以后无法进入桌面,这一点Ubuntu真的做得很好。。。
在师兄的指导下,找到了问题,下面先列出安装了Xserver-xorg-video-nvidia前后Xorg.0.log的区别,

  1. 未安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    [ 2891.835] (EE) Failed to load module "nv" (module does not exist, 0)
    [ 2891.835] (II) LoadModule: "modesetting"
    [ 2891.835] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
    [ 2891.835] (II) Module modesetting: vendor="X.Org Foundation"
    [ 2891.835] compiled for 1.19.5, module version = 1.19.5
    [ 2891.835] Module class: X.Org Video Driver
    [ 2891.835] ABI class: X.Org Video Driver, version 23.0
    [ 2891.835] (II) LoadModule: "fbdev"
    [ 2891.835] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
    [ 2891.835] (II) Module fbdev: vendor="X.Org Foundation"
    [ 2891.835] compiled for 1.19.0, module version = 0.4.4
    [ 2891.835] Module class: X.Org Video Driver
    [ 2891.835] ABI class: X.Org Video Driver, version 23.0
    [ 2891.835] (II) LoadModule: "vesa"
    [ 2891.835] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
    [ 2891.835] (II) Module vesa: vendor="X.Org Foundation"
    [ 2891.835] compiled for 1.19.0, module version = 2.3.4
    [ 2891.835] Module class: X.Org Video Driver
    [ 2891.835] ABI class: X.Org Video Driver, version 23.0
    [ 2891.835] (II) NOUVEAU driver Date: Fri Apr 21 14:41:17 2017 -0400
    [ 2891.835] (II) NOUVEAU driver for NVIDIA chipset families :
    [ 2891.835] RIVA TNT (NV04)
    [ 2891.835] RIVA TNT2 (NV05)
    [ 2891.835] GeForce 256 (NV10)
    [ 2891.835] GeForce 2 (NV11, NV15)
    [ 2891.835] GeForce 4MX (NV17, NV18)
    [ 2891.835] GeForce 3 (NV20)
    [ 2891.835] GeForce 4Ti (NV25, NV28)
    [ 2891.835] GeForce FX (NV3x)
    [ 2891.835] GeForce 6 (NV4x)
    [ 2891.835] GeForce 7 (G7x)
    [ 2891.835] GeForce 8 (G8x)
    [ 2891.836] GeForce GTX 200 (NVA0)
    [ 2891.836] GeForce GTX 400 (NVC0)

系统此刻找不到nv有关的驱动,而我又禁止了nouveau,所以无法进入图形界面。而在安装了相应的驱动以后,日志如下

  1. 已安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [ 38.430] (II) Applying OutputClass "nvidia" to /dev/dri/card0
    [ 38.430] loading driver: nvidia
    [ 38.430] (==) Matched nvidia as autoconfigured driver 0
    [ 38.430] (==) Matched nv as autoconfigured driver 2
    [ 38.430] (==) Matched nv as autoconfigured driver 4
    [ 38.430] (II) LoadModule: "nvidia"
    [ 38.431] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
    [ 38.437] (II) Module nvidia: vendor="NVIDIA Corporation"
    [ 38.440] (II) LoadModule: "nv"
    [ 38.440] (WW) Warning, couldn't open module nv
    [ 38.440] (II) UnloadModule: "nv"
    [ 38.440] (II) Unloading nv
    [ 38.440] (EE) Failed to load module "nv" (module does not exist, 0)
    [ 38.997] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
    [ 38.998] (II) NVIDIA(0): "DFP-0:nvidia-auto-select"
    [ 39.015] (II) NVIDIA(0): Setting mode "DFP-0:nvidia-auto-select"
    [ 39.072] (II) NVIDIA(0): [DRI2] VDPAU driver: nvidia

此刻,虽然有warning,但error已经没有了,系统也可以正常进行到登录部分。此刻查看系统显卡驱动信息,会发现出现了nvidia,如下

1
2
3
4
5
6
$ lsmod | grep nvidia
nvidia_drm 53248 1
drm_kms_helper 192512 1 nvidia_drm
drm 438272 4 nvidia_drm,drm_kms_helper
nvidia_modeset 860160 3 nvidia_drm
nvidia 13168640 84 nvidia_modeset

安装方法,直接用apt install即可,不再赘述。

最后,讲一下调整Desktop Manager的方法,留做一个tip。可供选择的DM有很多,如lightdm,gdm3,kde等,其中lightdm用得比较多,毕竟ubuntu的用户量很大。那么,如果想要在它们之间进行切换的话,用如下方法

1
$ sudo dpkg-reconfigure lightdm

在弹出的窗口中选择想要采用的桌面管理器即可。