Ich hatte einen Tag zum Entspannen mit Portal 2 geplant, aber als ich Steam startete (zum ersten Mal seit ein paar Wochen), wurde ich mit der folgenden Nachricht im Terminal begrüßt:
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.
Ich gebe zu, dass ich nicht wirklich weiß, wovon es spricht, wenn Fahrer steht. Die Version von nvidia-current
ist 270.41.19
. Ich dachte , das wäre der Treiber und das Modul in einem.
Ich benutze das X-SWAT PPA und habe festgestellt, dass das nvidia-settings
Paket auf aufgestockt hat 275.09.07
. Da dies nur eine Anwendung für Einstellungen ist, hat diese Nichtübereinstimmung meines Erachtens nichts damit zu tun. Es ist auch nicht die gleiche Version wie das beschriebene Problem.
Ich möchte lieber nicht auf den Standard-Nvidia-Treiber zurückgreifen, da er auf meiner GTX580 weniger als stabil ist. Ich würde eine Antwort akzeptieren, die das manuelle Setup übernimmt und es neu kompiliert, wenn der Kernel neu kompiliert (dh einige DKMS-Assistenten), aber es muss funktionieren. Ich möchte nicht jedes Mal in den Textmodus zurückkehren, wenn ich nach einem Kernel-Upgrade neu starte.
Edit: Minecraft funktioniert ohne eine einzige Beschwerde über Treiberversionen. Penumbra stirbt mit ungefähr demselben Fehler bei der Eingabe eines Spiels.
Bearbeiten: Hier ist, was ich in Bezug auf 32-Bit-Dateien zu tun habe. Sie scheinen alle die richtige Version zu haben.
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
Edit 2: Ich könnte etwas gefunden haben.
Im /usr/lib32/
eigentlichen (nicht im nvidia-current
Unterverzeichnis) habe ich folgendes gefunden:
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
Aus irgendeinem Grund ist alles in /usr/lib32/nvidia-current/
der richtigen Version, aber es gibt eine Menge Cruft /usr/lib32/
, die die Party ruinieren könnte.
Bearbeiten 3: Der Versuch, herauszufinden, welches Paket diese Dateien besitzt, ist fehlgeschlagen:
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.
Irgendwelche Tipps, wie ich mit diesen kaputten Versionen umgehen soll? Lösche sie? Dann Symlink zu ./nvidia-current/
Versionen löschen ?
/usr/lib32
. Überprüfen Sie, ob sie der primären 64-Bit-Version entsprechen. Wenn sie sich unterscheiden, finden Sie heraus, in welchem Paket sie sich befinden, und suchen Sie nach einem Update.Antworten:
Folgendes zu tun löste es für mich auf Ubuntu 12.04 64bit mit 3.0.29 Kernel. Ich hoffe es hilft.
quelle
dpkg --get-selections | grep nvidia
, um die anderen NVIDIA-Pakete zu finden, die Sie löschen müssenAls ich herausfand, dass sich eine Menge alter Dateien in / usr / lib32 / befanden, schob ich sie mit dem folgenden Befehl aus dem Weg:
Und X neu gestartet. Dies brach alles 3D. Huzzah. Bei Verwendung eines früheren Befehls konnte ich vier fehlerhafte Links erkennen:
Anstatt die Links für vier Dateien manuell zu ersetzen, ging ich zu Elrond, Lord of Rivendell, und beauftragte ihn, eine Gemeinschaft zu gründen, die in Morhdorh einbrechen und mich auf den Berg des Schicksals torkeln und mir einen Befehl geben konnte, mich (und damit auch ich) zu bringen meint uns alle) und bindet uns in der Dunkelheit.
Genug davon. Hier ist der eine Befehl:
Ist sie nicht spektakulär? Und es hat funktioniert. Ich habe jetzt 4 glänzende neue Symlinks:
Ich habe dann nachgesehen, ob alles geklappt hat. Vor dem Neustart dachte ich, ich sollte überprüfen, ob die Links korrekt waren:
Groß. Das Mega-Kommando hat also nur zwei Links richtig gemacht. Nach einigem Hinsehen scheinen die
libvdpau
Dateien tatsächlich zu existieren/usr/lib32/nvidia-current/vdpau/
. Keine Unordnung um diese Zeit:Zumindest sind sie ordentlich (wenn auch etwas unbeholfen) eingebunden. Zeit zum Testen.
Bearbeiten: Dies hat funktioniert, aber aus meinem Kampf lernen: Halten Sie es einfach.
quelle
mach auch einfach so:
und dann:
alles ist ok!
quelle
Ich hatte dieses Problem einmal und es ist überraschend einfach zu beheben.
Das Folgende basiert auf uneinheitlichem Speicher, seien Sie also vorsichtig!
Zuerst müssen Sie sehen, dass die NVIDIA-Bibliotheken in / usr / lib32 / übereinstimmen:
Entsprechend dem, was Sie beschrieben haben, stimmen sie höchstwahrscheinlich nicht überein. Wenn dies der Fall ist, müssen Sie sie löschen (vorsichtig - verwenden Sie einen Dateimanager, versuchen Sie nicht rm -rf !!!!!!!!! ) und installieren Sie dann nvidia-current neu :).
Dies sollte Ihnen die richtigen Versionen der Bibliotheken und ein funktionierendes System bieten.
quelle
Ich hatte dieses Problem, das meinen SWTOR-Launcher in Wein betraf. Als ich das oben Gesagte las, beschloss ich, Dinge über die Ubuntu-Benutzeroberfläche zu versuchen. Hier ist die einfache Lösung, die für mich funktioniert hat.
Zusätzliche Treiber über die Benutzeroberfläche entfernen und neu installieren:
quelle
Nach einigen Tests fand ich, dass Pakete:
Arbeit für alle Kernel 3.2.0- * und 3.8.0- *,
while-Pakete:
Funktioniert nur für Kernel 3.8.0- *.
Ubuntu Jockey empfiehlt weiterhin die 319-Version, auch wenn nur Kernel 3.2.0- * vorhanden sind. Also ein Bug hier.
Weiterhin die Befehle:
oder
Installieren Sie den Treiber nur für eine Kernelversion für jede Nebenversion und entfernen Sie ihn für alle anderen.
Also, in meinem Fall, dass ich die folgenden Kernel installiert habe:
Ich habe den Fahrer nur für:
Beim Booten mit den anderen Kerneln werden die Treiberergebnisse nicht installiert.
Mir scheint, irgendwo im Paket gibt es eine falsche Angabe, die nur für einen Kernel erstellt und installiert werden muss.
Überall, wo der folgende Befehl ausgegeben wird, kann die Situation behoben werden:
bis zum nächsten apt-get installieren sie nvidia-current oder konfigurieren sie es neu
Thread: Nvidia-Treiber aktualisiert - gemischte Versionen von 304.88 und 319.32 beziehen sich auf dasselbe, aber ich hatte nicht genug Guthaben, um dort zu posten.
quelle
Dies passierte mir, nachdem ich den neuesten experimentellen Nvidia-Treiber installiert hatte. Ich wollte nach Möglichkeit immer noch den neuesten Treiber ausprobieren, anstatt auf einen älteren Treiber zurückzugreifen. Das hat bei mir also funktioniert:
quelle
Das Entfernen aller nvidia-Pakete und die Neuinstallation sind in der Tat die einfachste Möglichkeit, dies zu beheben.
Zuerst habe ich alle nvidia-Pakete mit dem folgenden Befehl entfernt:
Dann habe ich neugierig einen Neustart durchgeführt, um zu sehen, wie meine grafische Oberfläche aussehen würde - schlechte Auflösung und langsam, wie erwartet.
Nach dem Öffnen einer Shell führe ich den folgenden Befehl aus, um nvidia back zu installieren:
Alles funktioniert wieder. Viel Glück.
quelle