Как включить драйвер nVidia CUDA после того, как apt все испортил

Как включить драйвер nVidia CUDA после того, как apt все испортил

Я установил CUDA, используя загрузку nVidia. Он установил определенную версию драйвера nVidia. Все работало нормально.

Затем я по глупости согласился на просьбу Ubuntu обновить ее программное обеспечение (у меня 15.04). Думаю, там было новое ядро ​​или что-то в этом роде. В любом случае, я перезагрузил, и теперь работает только встроенная графика Intel, несмотря на то, что в программе «Дополнительные драйверы» была выбрана nVidia.

Есть ли у кого-нибудь идеи, как это исправить или отладить? (Я не пользовался Linux несколько лет, поэтому немного подзабыл о конфигурациях Xorg и т. п. Также разочаровывает и неудивительно, что все до сих пор работает так плохо.)

решение1

Я добился некоторого прогресса. В основном я посмотрел на зависимости пакета cudaв Synaptic и обнаружил, что он зависит от nvidia-352того, какой из них, похоже, может иметь фактический драйвер. Поэтому я выполнил следующую простую и понятную команду:

sudo apt-get install --reinstall nvidia-352

Это приводит к следующей понятной пользователю ошибке:

ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-352.0.crash'
Error! Bad return status for module build on kernel: 4.2.0-35-generic (x86_64)
Consult /var/lib/dkms/nvidia-352/352.79/build/make.log for more information.

Просматривая этот файл, ближе к концу вы видите это простое для понимания новичками сообщение:

Compiler version check failed:

The major and minor number of the compiler used to
compile the kernel:

gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) 

does not match the compiler used here:

cc (Ubuntu 4.9.3-5ubuntu1) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


It is recommended to set the CC environment variable
to the compiler that was used to compile the kernel.

The compiler version check can be disabled by setting
the IGNORE_CC_MISMATCH environment variable to "1".
However, mixing compiler versions between the kernel
and kernel modules can result in subtle bugs that are
difficult to diagnose.

*** Failed CC version check. Bailing out! ***

Итак, произошло то, что CUDA на самом деле поддерживает только GCC 4.9, а, по-видимому, ядро ​​было собрано с GCC 5.2. У меня установлены оба, поэтому я сбросил пути на 5.2 с помощью этих постыдно простых в использовании команд Windows:

sudo update-alternatives --config gcc # And choose gcc-5
sudo update-alternatives --config g++ # And choose g++-5

Повторите попытку переустановки. На этот раз сработало. Затем я сбросил свои компиляторы обратно на 4.9. Собираюсь перезапустить, чтобы посмотреть, как это работает.

Редактировать: Да, это работает.

Связанный контент