Я запланировал день отдыха с 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.
Признаюсь, я не знаю, о чем идет речь, когда говорит водитель. Верия nvidia-current
это 270.41.19
. Я думал, что это был драйвер и модуль, все в одном.
Я использую X-SWAT PPA и отметил, что nvidia-settings
пакет увеличен до 275.09.07
. Поскольку это просто приложение для настройки, я не думаю, что это несоответствие имеет какое-либо отношение к этому. Это также не та же версия, что и описываемая проблема.
Я бы предпочел не очищаться от стандартного драйвера Nvidia, так как он менее стабилен на моем GTX580. Я хотел бы принять ответ, который берет ручную настройку и заставляет его перекомпилироваться, когда ядро перекомпилируется (то есть, некоторые мастера DKMS), но это должно работать. Я не хочу возвращаться в текстовый режим каждый раз, когда перезагружаюсь после обновления ядра.
Изменить: Minecraft работает без единой жалобы на версии драйверов. Пенумбра умирает примерно с той же ошибкой при входе в игру.
Изменить: вот что я имею дело с 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
Изменить 2: я мог бы найти что-то.
Скрываясь в /usr/lib32/
правильном (не в nvidia-current
поддиректории), я обнаружил следующее:
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/
версии?
/usr/lib32
. Проверьте, не похожи ли они на ту же версию, что и основные 64-битные версии. Если они различаются, выясните, какому пакету они принадлежат, и поищите обновление.