Несоответствие API Nvidia

Я планировал день отдыха с Portal 2, но после запуска Steam (впервые за пару недель) меня встретили в терминале следующее сообщение:

Error: API mismatch: the NVIDIA kernel module has version 270.41.19, but this NVIDIA driver component has version 270.41.06. Please make sure that the kernel module and all NVIDIA driver components have the same version.

I Признаюсь, я не знаю, о чем это говорит, когда говорит водитель. Верой nvidia-current является 270.41.19. Я думал, что это драйвер и модуль, все в одном.

Я использую X-SWAT PPA, и я заметил, что пакет nvidia-settings повысился до 275.09.07. Поскольку это всего лишь приложение настроек, я не думаю, что это несоответствие имеет какое-либо отношение к этому. Это также не та же версия, что и описанная проблема.

Я бы предпочел не возвращаться к стандартному драйверу Nvidia, поскольку на моем GTX580 он меньше, чем стабильный. Я бы принял ответ, который берет ручную настройку и перекомпилирует ее, когда ядро ​​перекомпилирует (т. Е. Какое-то волшебство DKMS), но оно должно работать. Я не хочу возвращаться в текстовый режим каждый раз, когда я перезапускаю после обновления ядра.

Изменить: Minecraft работает без единой жалобы на версии драйверов. Penumbra умирает с примерно такой же ошибкой при входе в игру.

Edit: Вот что я имею в виду с 32-битными файлами.

ls -l /usr/lib32/nvidia-current/ | awk '{ print $8 " " $9 " " $10 }' libcuda.so -> libcuda.so.270.41.19 libcuda.so.1 -> libcuda.so.270.41.19 libcuda.so.270.41.19 libGL.la libGL.so -> libGL.so.1 libGL.so.1 -> libGL.so.270.41.19 libGL.so.270.41.19 libnvcuvid.so -> libnvcuvid.so.1 libnvcuvid.so.1 -> libnvcuvid.so.270.41.19 libnvcuvid.so.270.41.19 libnvidia-cfg.so -> libnvidia-cfg.so.1 libnvidia-cfg.so.1 -> libnvidia-cfg.so.270.41.19 libnvidia-cfg.so.270.41.19 libnvidia-compiler.so -> libnvidia-compiler.so.1 libnvidia-compiler.so.1 -> libnvidia-compiler.so.270.41.19 libnvidia-compiler.so.270.41.19 libnvidia-glcore.so.270.41.19 libnvidia-ml.so -> libnvidia-ml.so.1 libnvidia-ml.so.1 -> libnvidia-ml.so.270.41.19 libnvidia-ml.so.270.41.19 libnvidia-tls.so.270.41.19 libnvidia-wfb.so.1 -> libnvidia-wfb.so.270.41.19 libnvidia-wfb.so.270.41.19 libOpenCL.so -> libOpenCL.so.1 libOpenCL.so.1 -> libOpenCL.so.1.0 libOpenCL.so.1.0 -> libOpenCL.so.1.0.0 libOpenCL.so.1.0.0 libXvMCNVIDIA_dynamic.so.1 -> libXvMCNVIDIA.so.270.41.19 libXvMCNVIDIA.so -> libXvMCNVIDIA.so.270.41.19 libXvMCNVIDIA.so.1 -> libXvMCNVIDIA.so.270.41.19 libXvMCNVIDIA.so.270.41.19

Редактировать: Возможно, я что-то нашел.

Прямо в /usr/lib32/ (не nvidia-current subdir) я нашел следующее:

ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270 libcuda.so.1 -> libcuda.so.270.41.06 libcuda.so.270.41.06 libGL.so.1 -> libGL.so.270.41.06 libGL.so.270.41.06 libnvidia-compiler.so.270.41.06 libnvidia-glcore.so.270.41.06 libnvidia-tls.so.270.41.06 libvdpau.so.1 -> libvdpau.so.270.41.06 libvdpau.so.270.41.06 libvdpau_trace.so -> vdpau/libvdpau_trace.so.270.41.06

По какой-то причине все в /usr/lib32/nvidia-current/ является правильной версией, но в /usr/lib32/ есть нагрузка на крушение, которая может разрушить партию.

Редактировать 3: Попытка отследить, какой пакет владеет этими файлами, не удалось:

find /usr/lib32 -iname '*270.41.06*' -exec dpkg -S "{}" \; dpkg-query: no path found matching pattern /usr/lib32/libnvidia-compiler.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/libGL.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/vdpau/libvdpau_nvidia.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/vdpau/libvdpau_trace.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/libvdpau.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/tls/libnvidia-tls.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/libnvidia-tls.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/libcuda.so.270.41.06. dpkg-query: no path found matching pattern /usr/lib32/libnvidia-glcore.so.270.41.06.

Любые советы о том, как я должен работать с этими сломанными версиями? Удалить их? Удалить затем символическую ссылку на ./nvidia-current/ версии?

27
задан 25 June 2011 в 21:38

72 ответа

Удаление всех пакетов nvidia и повторная установка действительно самый простой способ исправить это.

Сначала я удалил все пакеты nvidia с помощью следующей команды:

  $  dpkg --get-выборы |  grep nvidia |  awk '{print $ 1}' |  xargs sudo apt-get -y purge  

Затем я перезагрузил только наше любопытство, чтобы увидеть, как будет выглядеть мой графический интерфейс - плохое разрешение и медленное, как и ожидалось.

После открытия оболочки я запустил следующую команду для установки nvidia:

  $ sudo apt-get install nvidia-current $ sudo reboot  

] Все работает снова. Удачи.

0
ответ дан 10 August 2018 в 09:33

У меня была эта проблема один раз, и это удивительно легко исправить.

Следующее основано на патчей памяти, поэтому будьте осторожны! Сначала вам нужно увидеть, что nvidia библиотеки в / usr / lib32 / match:

  /usr/lib32/libOpenCL.so / usr / lib32 / nvidia-current /usr/lib32/nvidia-current/libGL.la / usr /  lib32 / nvidia-current / libGL.so /usr/lib32/nvidia-current/libGL.so.1 /usr/lib32/nvidia-current/libGL.so.270.41.06 / usr / lib32 / nvidia-current / libOpenCL.  so /usr/lib32/nvidia-current/libOpenCL.so.1 /usr/lib32/nvidia-current/libOpenCL.so.1.0 /usr/lib32/nvidia-current/libOpenCL.so.1.0.0 / usr / lib32 /  nvidia-current / libXvMCNVIDIA.so /usr/lib32/nvidia-current/libXvMCNVIDIA.so.1 /usr/lib32/nvidia-current/libXvMCNVIDIA.so.270.41.06 /usr/lib32/nvidia-current/libXvMCNVIDIA_dynamic.so.  1 /usr/lib32/nvidia-current/libcuda.so /usr/lib32/nvidia-current/libcuda.so.1 /usr/lib32/nvidia-current/libcuda.so.270.41.06 / usr / lib32 / nvidia-  current / libnvcuvid.so /usr/lib32/nvidia-current/libnvcuvid.so.1 / usr / lib32  /nvidia-current/libnvcuvid.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-cfg.so /usr/lib32/nvidia-current/libnvidia-cfg.so.1 / usr / lib32 / nvidia-current  /libnvidia-cfg.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-compiler.so /usr/lib32/nvidia-current/libnvidia-compiler.so.1 / usr / lib32 / nvidia-current / libnvidia  -compiler.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-glcore.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-ml.so / usr / lib32 / nvidia-current / libnvidia  -ml.so.1 /usr/lib32/nvidia-current/libnvidia-ml.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-tls.so.270.41.06 / usr / lib32 / nvidia-current  /libnvidia-wfb.so.270.41.06 / usr / lib32 / nvidia-current / tls /usr/lib32/nvidia-current/tls/libnvidia-tls.so.270.41.06 / usr / lib32 / nvidia-current / vdpau  /usr/lib32/nvidia-current/vdpau/libvdpau.so.270.41.06 /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so.1 / usr  /lib32/nvidia-current/vdpau/libvdpau_nvidia.so.270.41.06 / usr / lib32 / nvidia-current  /vdpau/libvdpau_trace.so.270.41.06 / usr / lib32 / vdpau  

Согласно тому, что вы описали, они, скорее всего, не соответствуют этим. Если это так, то вам нужно их удалить (осторожно - используйте диспетчер файлов, не пытайтесь rm -rf !!!!!!!!!), а затем переустановите nvidia-current :). Это даст вам правильные версии библиотек и даст вам рабочую систему.

7
ответ дан 10 August 2018 в 09:33

после некоторых тестов я обнаружил, что пакеты:

  nvidia-current nvidia-304 nvidia-settings nvidia-settings-304  

работают для всех ядер 3.2.0- * и 3.8.0 - *,

, тогда как пакеты:

  nvidia-current-updates nvidia-experimental-304 nvidia-304-updates nvidia-settings  -vdates nvidia-settings-experimental-304 nvidia-settings-304-updates nvidia-319 nvidia-experimental-310 nvidia-319-updates nvidia-settings-319 nvidia-settings-experimental-310 nvidia-settings-319-updates  

работать для ядра 3.8.0- * только.

Ubuntu jockey по-прежнему рекомендует версию 319 также, когда присутствует ядро ​​3.2.0- *. Итак, ошибка здесь.

Кроме того, команды:

  $ sudo apt-get purge nvidia-current $ sudo apt-get install nvidia-current  

или

  $ sudo dpkg-reconfigure nvidia-current  

установить драйвер только для одной версии ядра для каждой младшей версии и удалите его для всех остальных.

Итак, в моем случае, что у меня установлены следующие ядра:

  3.8.0-32-generic 3.2.0-55-  generic-pae 3.2.0-55-generic 3.2.0-54-generic-pae 3.2.0-54-generic 3.2.0-53-generic-pae 3.2.0-53-generic 3.2.0-52-generic-  pae 3.2.0-52-generic 3.2.0-51-generic-pae 3.2.0-51-generic 3.2.0-49-generic-pae 3.2.0-49-generic  

Я получил драйвер только для:

  3.8.0-32-generic 3.2.0-55-generic-pae  

во время загрузки с другим ядра, результаты драйвера не установлены.

Кажется мне, что где-то в пакете есть неправильная индикация для сборки и установки только для некоторого ядра.

Anywhere , выдает следующую команду:

  $ sudo dkms install nvidia-304 / 304.88 -k 3.8.0-32-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.  0-55-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-55-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-54-generic $ sudo dkms install nvidia-304  /304.88 -k 3.2.0-54-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-53-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-53-generic-  pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-52-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-52-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k  3.2.0-51-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-51-generic-pae $ sudo dkms установить nvidia-304 / 304.88 -k 3.2.0-49-generic $ sudo dkms установить nvidia  -304 / 304.88 -k 3.2.0-49-generic-pae  

до следующего apt-get install nvidia-current или reconfigure

Тема: Драйвер Nvidia обновлен - смешанные версии 304.88 и 31 9.32 связано с тем же, но у меня не было достаточного количества сообщений для публикации там.

3
ответ дан 10 August 2018 в 09:33

Это случилось со мной после того, как я установил последний экспериментальный драйвер Nvidia. Я по-прежнему хотел попробовать последний драйвер, если это возможно, вместо того, чтобы возвращаться к более старому драйверу, так что это сработало для меня:

  sudo apt-get remove --purge nvidia * sudo apt-get  установить nvidia-319 sudo reboot  
1
ответ дан 10 August 2018 в 09:33

У меня была эта проблема, которая влияла на мою пусковую установку SWTOR в вине. Читая сказанное выше, я решил попробовать что-то сделать через Ubuntu UI. Вот простое решение, которое сработало для меня;

Удалите и переустановите дополнительные драйверы через интерфейс:

  1. Перейти в Систему -> Администрирование -> Дополнительные драйверы
  2. Выберите драйвер ускоренной графики NVIDIA и нажмите " удалить ". НЕ ДОПУСКАЙТЕ НЕМЕДЛЕННО ПОСЛЕ.
  3. После удаления выберите тот же самый драйвер и нажмите «активировать».
  4. Теперь перезагрузитесь.
  5. Должно быть исправлено.
7
ответ дан 10 August 2018 в 09:33

Выполнение следующего разрешило это для меня на Ubuntu 12.04 64bit с ядром 3.0.29. Надеюсь, что это поможет.

  sudo apt-get purge nvidia-current sudo apt-get install nvidia-current  
17
ответ дан 13 August 2018 в 15:42
  • 1
    Используйте dpkg --get-selection | grep nvidia , чтобы найти другие пакеты nvidia, которые вы должны очистить – Christopher Manning 27 December 2012 в 13:39
  • 2
    Спасибо GSBabil, исправил аналогичную проблему для меня. После этого потребовалась перезагрузка, но прежде чем «взять». – Ash 11 April 2013 в 11:07
  • 3
    @ChristopherManning более простой способ сделать это будет sudo apt-get remove --purge nvidia * – Ben McCann 25 April 2013 в 10:31
  • 4
    Работал блестяще спасибо! Наконец, у вас есть современные драйверы, Steam счастлив: D – Ads20000 13 July 2013 в 23:13
  • 5
    @GSBabil Я хочу купить вам пиво так плохо. – Matthew Scragg 27 August 2013 в 22:34

Удаление всех пакетов nvidia и повторная установка действительно самый простой способ исправить это.

Сначала я удалил все пакеты nvidia с помощью следующей команды:

  $  dpkg --get-выборы |  grep nvidia |  awk '{print $ 1}' |  xargs sudo apt-get -y purge  

Затем я перезагрузил только наше любопытство, чтобы увидеть, как будет выглядеть мой графический интерфейс - плохое разрешение и медленное, как и ожидалось.

После открытия оболочки я запустил следующую команду для установки nvidia:

  $ sudo apt-get install nvidia-current $ sudo reboot  

] Все работает снова. Удачи.

0
ответ дан 13 August 2018 в 15:42

Это случилось со мной после того, как я установил последний экспериментальный драйвер Nvidia. Я по-прежнему хотел попробовать последний драйвер, если это возможно, вместо того, чтобы возвращаться к более старому драйверу, так что это сработало для меня:

  sudo apt-get remove --purge nvidia * sudo apt-get  установить nvidia-319 sudo reboot  
1
ответ дан 13 August 2018 в 15:42

У меня была эта проблема, которая влияла на мою пусковую установку SWTOR в вине. Читая сказанное выше, я решил попробовать что-то сделать через Ubuntu UI. Вот простое решение, которое сработало для меня;

Удалите и переустановите дополнительные драйверы через интерфейс:

  1. Перейти в Систему -> Администрирование -> Дополнительные драйверы
  2. Выберите драйвер ускоренной графики NVIDIA и нажмите " удалить ". НЕ ДОПУСКАЙТЕ НЕМЕДЛЕННО ПОСЛЕ.
  3. После удаления выберите тот же самый драйвер и нажмите «активировать».
  4. Теперь перезагрузитесь.
  5. Должно быть исправлено.
7
ответ дан 13 August 2018 в 15:42
  • 1
    Это было полезно, поскольку оно отображало старые версии, которые были установлены. Как только я очистил их, все стало нормально. Благодаря! – Josh Johnson 3 May 2013 в 18:20
  • 2
    ОК. Я так рад этому. – shgnInc 6 July 2013 в 19:20
  • 3
    Отличный ответ. Я просмотрел список и очистил его, а затем переустановил все необходимое и перезагрузил. Вуаля! +1 – nicorellius 3 February 2014 в 22:51

после некоторых тестов я обнаружил, что пакеты:

  nvidia-current nvidia-304 nvidia-settings nvidia-settings-304  

работают для всех ядер 3.2.0- * и 3.8.0 - *,

, тогда как пакеты:

  nvidia-current-updates nvidia-experimental-304 nvidia-304-updates nvidia-settings  -vdates nvidia-settings-experimental-304 nvidia-settings-304-updates nvidia-319 nvidia-experimental-310 nvidia-319-updates nvidia-settings-319 nvidia-settings-experimental-310 nvidia-settings-319-updates  

работать для ядра 3.8.0- * только.

Ubuntu jockey по-прежнему рекомендует версию 319 также, когда присутствует ядро ​​3.2.0- *. Итак, ошибка здесь.

Кроме того, команды:

  $ sudo apt-get purge nvidia-current $ sudo apt-get install nvidia-current  

или

  $ sudo dpkg-reconfigure nvidia-current  

установить драйвер только для одной версии ядра для каждой младшей версии и удалите его для всех остальных.

Итак, в моем случае, что у меня установлены следующие ядра:

  3.8.0-32-generic 3.2.0-55-  generic-pae 3.2.0-55-generic 3.2.0-54-generic-pae 3.2.0-54-generic 3.2.0-53-generic-pae 3.2.0-53-generic 3.2.0-52-generic-  pae 3.2.0-52-generic 3.2.0-51-generic-pae 3.2.0-51-generic 3.2.0-49-generic-pae 3.2.0-49-generic  

Я получил драйвер только для:

  3.8.0-32-generic 3.2.0-55-generic-pae  

во время загрузки с другим ядра, результаты драйвера не установлены.

Кажется мне, что где-то в пакете есть неправильная индикация для сборки и установки только для некоторого ядра.

Anywhere , выдает следующую команду:

  $ sudo dkms install nvidia-304 / 304.88 -k 3.8.0-32-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.  0-55-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-55-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-54-generic $ sudo dkms install nvidia-304  /304.88 -k 3.2.0-54-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-53-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-53-generic-  pae $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-52-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-52-generic-pae $ sudo dkms install nvidia-304 / 304.88 -k  3.2.0-51-generic $ sudo dkms install nvidia-304 / 304.88 -k 3.2.0-51-generic-pae $ sudo dkms установить nvidia-304 / 304.88 -k 3.2.0-49-generic $ sudo dkms установить nvidia  -304 / 304.88 -k 3.2.0-49-generic-pae  

до следующего apt-get install nvidia-current или reconfigure

Тема: Драйвер Nvidia обновлен - смешанные версии 304.88 и 31 9.32 связано с тем же, но у меня не было достаточного количества сообщений для публикации там.

3
ответ дан 13 August 2018 в 15:42

У меня была эта проблема один раз, и это удивительно легко исправить.

Следующее основано на патчей памяти, поэтому будьте осторожны! Сначала вам нужно увидеть, что nvidia библиотеки в / usr / lib32 / match:

  /usr/lib32/libOpenCL.so / usr / lib32 / nvidia-current /usr/lib32/nvidia-current/libGL.la / usr /  lib32 / nvidia-current / libGL.so /usr/lib32/nvidia-current/libGL.so.1 /usr/lib32/nvidia-current/libGL.so.270.41.06 / usr / lib32 / nvidia-current / libOpenCL.  so /usr/lib32/nvidia-current/libOpenCL.so.1 /usr/lib32/nvidia-current/libOpenCL.so.1.0 /usr/lib32/nvidia-current/libOpenCL.so.1.0.0 / usr / lib32 /  nvidia-current / libXvMCNVIDIA.so /usr/lib32/nvidia-current/libXvMCNVIDIA.so.1 /usr/lib32/nvidia-current/libXvMCNVIDIA.so.270.41.06 /usr/lib32/nvidia-current/libXvMCNVIDIA_dynamic.so.  1 /usr/lib32/nvidia-current/libcuda.so /usr/lib32/nvidia-current/libcuda.so.1 /usr/lib32/nvidia-current/libcuda.so.270.41.06 / usr / lib32 / nvidia-  current / libnvcuvid.so /usr/lib32/nvidia-current/libnvcuvid.so.1 / usr / lib32  /nvidia-current/libnvcuvid.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-cfg.so /usr/lib32/nvidia-current/libnvidia-cfg.so.1 / usr / lib32 / nvidia-current  /libnvidia-cfg.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-compiler.so /usr/lib32/nvidia-current/libnvidia-compiler.so.1 / usr / lib32 / nvidia-current / libnvidia  -compiler.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-glcore.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-ml.so / usr / lib32 / nvidia-current / libnvidia  -ml.so.1 /usr/lib32/nvidia-current/libnvidia-ml.so.270.41.06 /usr/lib32/nvidia-current/libnvidia-tls.so.270.41.06 / usr / lib32 / nvidia-current  /libnvidia-wfb.so.270.41.06 / usr / lib32 / nvidia-current / tls /usr/lib32/nvidia-current/tls/libnvidia-tls.so.270.41.06 / usr / lib32 / nvidia-current / vdpau  /usr/lib32/nvidia-current/vdpau/libvdpau.so.270.41.06 /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so.1 / usr  /lib32/nvidia-current/vdpau/libvdpau_nvidia.so.270.41.06 / usr / lib32 / nvidia-current  /vdpau/libvdpau_trace.so.270.41.06 / usr / lib32 / vdpau  

Согласно тому, что вы описали, они, скорее всего, не соответствуют этим. Если это так, то вам нужно их удалить (осторожно - используйте диспетчер файлов, не пытайтесь rm -rf !!!!!!!!!), а затем переустановите nvidia-current :). Это даст вам правильные версии библиотек и даст вам рабочую систему.

7
ответ дан 13 August 2018 в 15:42

также просто делают это:

  $ dpkg --get-selections |  grep nvidia nvidia-common install nvidia-current install nvidia-current-updates install nvidia-experimental-x ... установить nvidia-settings установить nvidia-settings-updates установить  

и затем: [ ! d3]

  $ sudo apt-get purge nvidia-experimental-x ... ... $ sudo reboot  

все в порядке!

7
ответ дан 15 August 2018 в 22:33
  • 1
    Это было полезно, поскольку оно отображало старые версии, которые были установлены. Как только я очистил их, все стало нормально. Благодаря! – Josh Johnson 3 May 2013 в 18:20
  • 2
    ОК. Я так рад этому. – shgnInc 6 July 2013 в 19:20
  • 3
    Отличный ответ. Я просмотрел список и очистил его, а затем переустановил все необходимое и перезагрузил. Вуаля! +1 – nicorellius 3 February 2014 в 22:51

Другие вопросы по тегам:

Похожие вопросы: