web-dev-qa-db-ja.com

Ubuntu 16.04はNvidiaカードを認識しますが、制限されたドライバーを認識しません

ゴール

私は研究のためにNVIDIAカードでCUDAを使用しようとしています。 セットアップを完了した後、bash-Shell経由でのみコンピュータを使用する予定なので、ディスプレイを管理するためにそれを使用することはあまり気にしません.

問題

私のビデオカードはUbuntuによって請求されていません。サインイン後にログインループにバウンスします。

バックグラウンド

私はLinuxに精通しており、パワーユーザーであり、コンピューターサイエンスの博士課程の学生ですが、Nvidia gtx 1070Tiグラフィックスカードを機能させようとすると困惑します。私は今、毎週日曜日に2か月以上この場所にいます。

私はこれらのチュートリアルに従いました:

https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia
https://help.ubuntu.com/community/BinaryDriverHowto
https://kislayabhi.github.io/Installing_CUDA_with_Ubuntu/
https://askubuntu.com/a/760935/1369
https://askubuntu.com/a/937204/1369
http://docs.nvidia.com/cuda/cuda-installation-guide-linux

nvidia-currentまたはnvidia-387(ubuntuのインストール時に選択されたデフォルト)または最新のnvidia-390をインストールすると、ログイン後にログイン画面に戻るブートループが発生します。

そこで、prime-select intelを使用し、modeset=0 blacklistを削除して、作業中のデスクトップを取得しました。以下は私の現在の状況のレビューです:

Nvidia card is seen by lspci

$ uname -a
Linux datalake2 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ lspci | grep VGA
03:00.0 VGA compatible controller: NVIDIA Corporation Device 1b82 (rev a1)
08:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. G200eR2 (rev 01)
$ Sudo lshw -C video
  *-display UNCLAIMED
       description: VGA compatible controller
       product: NVIDIA Corporation
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller cap_list
       configuration: latency=0
       resources: iomemory:33f0-33ef iomemory:33f0-33ef memory:91000000-91ffffff memory:33fe0000000-33fefffffff memory:33ff0000000-33ff1ffffff ioport:2000(size=128) memory:92080000-920fffff

$ apt list --installed | grep "nvidia"

nvidia-387/unknown,now 387.26-0ubuntu1 AMD64 [installed]
nvidia-387-dev/unknown,now 387.26-0ubuntu1 AMD64 [installed,automatic]
nvidia-cuda-dev/xenial,now 7.5.18-0ubuntu1 AMD64 [installed,automatic]
nvidia-cuda-doc/xenial,xenial,now 7.5.18-0ubuntu1 all [installed,automatic]
nvidia-cuda-gdb/xenial,now 7.5.18-0ubuntu1 AMD64 [installed,automatic]
nvidia-cuda-toolkit/xenial,now 7.5.18-0ubuntu1 AMD64 [installed]
nvidia-modprobe/unknown,now 387.26-0ubuntu1 AMD64 [installed,automatic]
nvidia-opencl-dev/xenial,now 7.5.18-0ubuntu1 AMD64 [installed,automatic]
nvidia-opencl-icd-387/unknown,now 387.26-0ubuntu1 AMD64 [installed,automatic]
nvidia-prime/xenial,now 0.8.2 AMD64 [installed]
nvidia-profiler/xenial,now 7.5.18-0ubuntu1 AMD64 [installed,automatic]
nvidia-settings/unknown,now 387.26-0ubuntu1 AMD64 [installed,automatic]
nvidia-visual-profiler/xenial,now 7.5.18-0ubuntu1 AMD64 [installed,automatic]

$ cat /proc/driver/nvidia/version
cat: /proc/driver/nvidia/version: No such file or directory

風変わり

私の2番目の問題は、制限付きのprop行ドライバーを有効にしているにもかかわらず、ubuntuがカードのドライバーの必要性を認識できないことです。 no drivers

Sudo software-properties-gtkからも何も得られません。

No driversRestricted Enabled

results of nvidia-settings

私のgccバージョン: enter image description here

3
Gabriel Fair

回避策は次のとおりです。

1。/etc/default/grubを編集

GRUB_CMDLINE_LINUX_DEFAULTを変更して

GRUB_CMDLINE_LINUX_DEFAULT='pcie_port_pm=off acpi_backlight=none acpi_osi=Linux acpi_osi=! acpi_osi="Windows 2009"'

この手順は、ログイン後の空白画面を防ぐためのものです。

2。nvidiaライブラリディレクトリを/etc/ld.so.conf.d/nvidia.confに移動

nvidia.confの内容は

/usr/lib/nvidia-390
/usr/lib32/nvidia-390

これらのディレクトリは、コンピューターのドライバーバージョンによって異なります。

。create /etc/init.d/nvidia

Nvidiaランタイムライブラリを無効および有効にします。

#!/bin/sh
### BEGIN INIT INFO
# Provides:          nvidia 
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     5
# Default-Stop:      0 6
# Short-Description: load/unload nvidia library
# Description:       load/unload nvidia library
### END INIT INFO

PRIME=$(prime-select query)
if [ "$PRIME" = "nvidia" ]; then
    exit 0
fi

case "$1" in
  start)
    sleep 10
    cd /etc/ld.so.conf.d
    mv nvidia.conf.bak nvidia.conf
    ldconfig
    nvidia-smi
    ;;
  stop)
    cd /etc/ld.so.conf.d
    mv nvidia.conf nvidia.conf.bak
    ldconfig
esac

4。update-rc.d nvidia defaultsを実行

/etc/rc5.d/SXXnvidiaがあり、/etc/rc6.d//etc/rc0.d/KXXnvidiaがあります。

/etc/init.d/nvidia stopおよびnvidia-smiを実行しようとすると、見つからないライブラリのエラーメッセージが表示されます。

/etc/init.d/nvidia startを実行してみてください。その後、nvidia-smiで問題ありません。

すべてが問題なければ、今すぐリブートできます。デスクトップにログインする必要があります。

5。何か問題が発生した場合

最も可能性のある問題は、nvidiaスクリプトが実行されないことです。その場合は、Ctrl + Alt + F1を押してttyモードにし、/etc/init.d/nvidia stop; rebootを実行します。その後、統一されたデスクトップに戻ってデバッグできます。

6。既知の副作用

IntelをプライムGPUとして使用すると、unity-control-center(システム設定)の起動に失敗します。

GLib-CRITICAL **: g_strsplit: assertion `string != NULL' failed.

注:私のシステム仕様

# uname -r
4.13.0-32-generic
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial
# dpkg -l | grep cuda
ii  cuda-9-0                                    9.0.176-1                                    AMD64        CUDA 9.0 meta-package
ii  cuda-command-line-tools-9-0                 9.0.176-1                                    AMD64        CUDA command-line tools
ii  cuda-core-9-0                               9.0.176-1                                    AMD64        CUDA core tools
ii  cuda-cublas-9-0                             9.0.176.1-1                                  AMD64        CUBLAS native runtime libraries
ii  cuda-cublas-dev-9-0                         9.0.176.1-1                                  AMD64        CUBLAS native dev links, headers
ii  cuda-cudart-9-0                             9.0.176-1                                    AMD64        CUDA Runtime native Libraries
ii  cuda-cudart-dev-9-0                         9.0.176-1                                    AMD64        CUDA Runtime native dev links, headers
ii  cuda-cufft-9-0                              9.0.176-1                                    AMD64        CUFFT native runtime libraries
ii  cuda-cufft-dev-9-0                          9.0.176-1                                    AMD64        CUFFT native dev links, headers
ii  cuda-curand-9-0                             9.0.176-1                                    AMD64        CURAND native runtime libraries
ii  cuda-curand-dev-9-0                         9.0.176-1                                    AMD64        CURAND native dev links, headers
ii  cuda-cusolver-9-0                           9.0.176-1                                    AMD64        CUDA solver native runtime libraries
ii  cuda-cusolver-dev-9-0                       9.0.176-1                                    AMD64        CUDA solver native dev links, headers
ii  cuda-cusparse-9-0                           9.0.176-1                                    AMD64        CUSPARSE native runtime libraries
ii  cuda-cusparse-dev-9-0                       9.0.176-1                                    AMD64        CUSPARSE native dev links, headers
ii  cuda-demo-suite-9-0                         9.0.176-1                                    AMD64        Demo suite for CUDA
ii  cuda-documentation-9-0                      9.0.176-1                                    AMD64        CUDA documentation
ii  cuda-driver-dev-9-0                         9.0.176-1                                    AMD64        CUDA Driver native dev stub library
ii  cuda-drivers                                390.12-1                                     AMD64        CUDA Driver meta-package
ii  cuda-libraries-9-0                          9.0.176-1                                    AMD64        CUDA Libraries 9.0 meta-package
ii  cuda-libraries-dev-9-0                      9.0.176-1                                    AMD64        CUDA Libraries 9.0 development meta-package
ii  cuda-license-9-0                            9.0.176-1                                    AMD64        CUDA licenses
ii  cuda-misc-headers-9-0                       9.0.176-1                                    AMD64        CUDA miscellaneous headers
ii  cuda-npp-9-0                                9.0.176-1                                    AMD64        NPP native runtime libraries
ii  cuda-npp-dev-9-0                            9.0.176-1                                    AMD64        NPP native dev links, headers
ii  cuda-nvgraph-9-0                            9.0.176-1                                    AMD64        NVGRAPH native runtime libraries
ii  cuda-nvgraph-dev-9-0                        9.0.176-1                                    AMD64        NVGRAPH native dev links, headers
ii  cuda-nvml-dev-9-0                           9.0.176-1                                    AMD64        NVML native dev links, headers
ii  cuda-nvrtc-9-0                              9.0.176-1                                    AMD64        NVRTC native runtime libraries
ii  cuda-nvrtc-dev-9-0                          9.0.176-1                                    AMD64        NVRTC native dev links, headers
ii  cuda-repo-ubuntu1604                        9.1.85-1                                     AMD64        cuda repository configuration files
ii  cuda-runtime-9-0                            9.0.176-1                                    AMD64        CUDA Runtime 9.0 meta-package
ii  cuda-samples-9-0                            9.0.176-1                                    AMD64        CUDA example applications
ii  cuda-toolkit-9-0                            9.0.176-1                                    AMD64        CUDA Toolkit 9.0 meta-package
ii  cuda-visual-tools-9-0                       9.0.176-1                                    AMD64        CUDA visual tools
ii  libcuda1-390                                390.12-0ubuntu1                              AMD64        NVIDIA CUDA runtime library
ii  libcudnn7                                   7.0.5.15-1+cuda9.0                           AMD64        cuDNN runtime libraries
ii  libcudnn7-dev                               7.0.5.15-1+cuda9.0                           AMD64        cuDNN development libraries and headers
# dpkg -l | grep nvidia
ii  nvidia-390                                  390.12-0ubuntu1                              AMD64        NVIDIA binary driver - version 390.12
ii  nvidia-390-dev                              390.12-0ubuntu1                              AMD64        NVIDIA binary Xorg driver development files
ii  nvidia-modprobe                             390.12-0ubuntu1                              AMD64        Load the NVIDIA kernel driver and create device files
ii  nvidia-opencl-icd-390                       390.12-0ubuntu1                              AMD64        NVIDIA OpenCL ICD
ii  nvidia-prime                                0.8.2                                        AMD64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                             390.12-0ubuntu1                              AMD64        Tool for configuring the NVIDIA graphics driver
2
Ping Chu Hung

this answer. by Ping Chu Hung を使用してCUDAを動作させることができるはずです。ログインループの後、 ここにいくつかの高評価の回答があります .

注:人生のほとんどのものと同様に、Nvidiaドライバーは、複数のバージョンをインストールしようとした場合やインストールに失敗した場合に、大量のゴミを残すことができます。 purgeall その後、過去に作業していたものを再インストールして、目的の結果を取得します。

1
Elder Geek