Tipp: Probleme mit Nvidia-Treibern lösen – Downgrade von Precise auf Oneiric

Nach meinem Upgrade auf Lubuntu 12.04 stellten sich, wenig überraschend, die gleichen Probleme wie mit Debian Sid ein. Die neuesten Nvidia-Treiber 295.40 verursachen bei mir, Kero und wahrscheinlich noch einer Reihe anderer Leute Verzögerungen beim Verschieben von Anwendungen, die teilweise bis zum Einfrieren des gesamtes Desktops führen können.
Das Problem ist bekannt und betrifft unter anderem Geforce 6, 7 oder 8800GTX/GTS Karten. Ich benutze jedoch eine Geforce 9600 GT, die bis zum Update auf Lubuntu 12.04 einwandfrei funktionierte.
Seid ihr von ähnlichen Problemen betroffen, habt ihr folgende Optionen zur Hand.

1. Nvidia-Treiber komplett entfernen

sudo aptitude purge nvidia-current


Die Treiber lassen sich mit diesem Befehl komplett entfernen. Nach einem Neustart wird der Nouveau-Treiber aktiv, dessen Performance in der Regel für "normalen" Desktopbetrieb ohne anspruchsvolle 3D-Spiele oder Compiz ausreichend ist.

2. Downgrade der Nvidia-Treiber von Precise auf Oneiric

Für diverse Setups sind weiterhin die Nvidia-Treiber notwendig. In diesem Fall könnt ihr einen Downgrade von Nvidia 295.40 (Precise) auf 280.13 (Oneiric) in Erwägung ziehen.

Ein Downgrade kann zu Problemen und anderen Inkompatibilitäten führen. Jetzt wäre der richtige Zeitpunkt für ein Backup. Wer sich bei den folgenden Schritten unsicher ist, sollte sie nicht ausführen!

Öffnet die /etc/apt/sources.list mit eurem bevorzugten Editor und schaltet das alte Apt-Repositorium für Oneiric und die "restricted"-Sektion frei, indem ihr diese Zeilen hinzufügt.

deb http://de.archive.ubuntu.com/ubuntu/ oneiric main restricted
deb http://security.ubuntu.com/ubuntu oneiric-security main restricted

Nvidia-Treiber downgraden

sudo aptitude update
sudo aptitude -t oneiric install nvidia-current


Apt warnt vor dem Downgrade, dass das virtuelle Paket xorg-video-abi-10 nicht gefunden werden kann. Mit "n" lehnt ihr die erste Lösung ab und akzeptiert die zweite. Dies solltet ihr nur tun, wenn ihr auf die zum Entfernen markierten Pakete auch tatsächlich verzichten könnt. Der Vorgang sah bei mir so aus:

sudo aptitude -t oneiric install nvidia-current
Die folgenden Pakete haben verletzte Abhängigkeiten:
 nvidia-current : Hängt ab von: xorg-video-abi-10 , welches ein virtuelles Paket ist.
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
     Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1)     nvidia-current [Nicht installiert]
Diese Lösung akzeptieren? [Y/n/q/?] n
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
      Entfernen der folgenden Pakete:
1)      xserver-xorg-input-all
2)      xserver-xorg-input-synaptics
3)      xserver-xorg-video-all
4)      xserver-xorg-video-sisusb
5)      xserver-xorg-video-tdfx
6)      xserver-xorg-video-trident
7)      xserver-xorg-video-vesa
Downgrade der folgenden Pakete:
9)      xorg [1:7.6+12ubuntu1 (now, precise) -> 1:7.6+7ubuntu7.1 (oneiric)]
10)     xserver-xorg [1:7.6+12ubuntu1 (now, precise) -> 1:7.6+7ubuntu7.1 (oneiri
11)     xserver-xorg-core [2:1.11.4-0ubuntu10.1 (now, precise-updates) -> 2:1.
usw.

Nach dem Downgrade ist es am sinnvollsten die neuen Nvidia- und Xserver-Pakete auf "Halt" zu setzen, damit sie beim nächsten Update nicht erneuert werden.
sudo aptitude hold '~nnvidia'
sudo aptitude hold '~nxserver'
Welche Pakete das genau sind, erfahrt ihr mit
aptitude search '~ahold'
In meinem Fall hat das Downgrade das Problem vollständig beseitigt und das System läuft stabil. Ihr solltet nun von Zeit zu Zeit überprüfen, ob es eine neuere Nvidia-Version gibt, die das Problem lösen kann.
Die Pakete lassen sich mit
sudo aptitude unhold '~nnvidia'
sudo aptitude unhold '~nxserver'
wieder zum Aktualisieren freigeben.
Update: 06.05.2012

3. Upgrade auf nvidia-current in Quantal Quetzal

Als dritte Möglichkeit könnt ihr den Nvidia-Treiber auf die aktuelle Version in Ubuntu "Quantal Quetzal" bringen. (z.Z. 295.49). Dazu ersetzt ihr das Wort "oneiric" in den vorhergehenden Schritten durch "quantal".
Bei Lubuntu 12.04 und meiner Geforce 9600 GT funktionierten alle drei nur die ersten beiden Möglichkeiten. Nachdem ich jetzt noch etwas länger mit 295.49 experimentiert habe, treten ab und an immer wieder Ruckler und Verzögerungen beim Verschieben von Fenstern auf. Für mich ist daher diese Version nicht die richtige Lösung.

16 Replies to “Tipp: Probleme mit Nvidia-Treibern lösen – Downgrade von Precise auf Oneiric”

  1. Das Problem betrifft wohl noch ein paar Karten mehr, ich hatte es bei meiner 8300 GS unter Xubuntu nach Upgrade auf 12.04 auch. Für mich war das aber nur ein willkommener Anlass, den proprietären Treiber über Bord zu werfen, da ich ihn nicht zwingend brauche.

  2. Hi Axt,
    vielen Dank für deinen Kommentar. Ich hatte vergessen das Sicherheits-Repo freizuschalten.
    1. Den Tippfehler habe ich korrigiert.
    2. 295.40 beseitigt in der Tat eine Sicherheitslücke. Der Patch wurde aber bei Ubuntu auf ältere Treiberversionen zurückgeportet.
    3. In Oneiric befindet sich 280.13. Wenn man das „security“-Archiv freischaltet, erhält man die gepatchte Version.
    4. Werde ich heute mal ausprobieren und dann das Ergebnis im Artikel ergänzen.
    Gruß
    Markus

  3. Hallo Markus,
    danke für diesen Blogeintrag! Endlich mal jemand, der das Problem richtig beschreibt.
    Ich habe eine Nvidia GeForce 9500 GT Graphikkarte und habe alle 3 von dir vorgeschlagenen Lösungswege ausprobiert.
    1. Nouveau Treiber: Die einzige Lösung, die X anzeigt. Leider ist (a) die Auflösung viel zu grob und, viel wichtiger für mich, (b) mein 2. Monitor bleibt aus (Dual-Head).
    2. Downgrade auf Oneiric: Konnte ich nicht testen, da ~300 Pakete unlösbare Abhängigkeiten hatten.
    3. Upgrade auf Quantal: Monitor bleibt schwarz, also dasselbe Verhalten wie bei 12.04 mit Standard „nvidia-current“.
    Kannst du (oder jemand anderes, der mitliest) eine Graphikkarte empfehlen, die ‚out of the box‘ mit Ubuntu 12.04 und dem aktuellen nvidia-current Treiber funktioniert und mit 2 Monitoren funktioniert?
    Grüße,
    Patrick

      1. Hallo Axt,
        danke für die Info, dass die GPU (GF9500GT) bei dir problemlos funktioniert!
        Aktuell hat sich dummerweise mein Netzteil verabschiedet, so dass ich den neuen Treiber von der PPA-Quelle nicht testen kann. Ich melde mich wieder, wenn mein neues Netzteil am Start ist 😉
        Grüße, Patrick

      2. Hallo Axt,
        nachdem ich jetzt mein defektes Netzteil ausgetauscht habe, konnte ich nochmal mit den verschiedenen Treibern experimentieren.
        Fazit:
        Auch der aktuellste Treiber von der PPA Seite (Version 295.53) funktioniert bei mir nicht: Die Bildschirme bleiben schwarz.
        Der Nouveau Treiber funktioniert jetzt soweit (korrekte Bildschirmauflösung, Dual-Head), auch wenn hier die 3D Unterstützung zu fehlen scheint. Zumindest kann ich Virtualbox jetzt nur noch im Full-Screen Modus laufen lassen.
        Grüße, Patrick

        1. Hi Patrick,
          möglicherweise hilft dir noch die Installation von libgl1-mesa-dri-experimental. Dieses Paket benutze ich, um bei meinen Debian- und Ubuntu-Installationen den 3D-Support mit Nouveau zu verbessern. Es funktioniert gut mit der 9600GT, natürlich gibt es keine Garantie, dass es überall wirkt. Auch Virtualbox funktioniert hier ganz normal mit diesem Setup.
          Ich kann mir gut vorstellen, dass die Probleme mit dem schwarzen Bildschirm noch woanders liegen. Der aktuelle Nvidia-Bug äußerst sich nämlich vor allem in „Rucklern“ und weniger in einem Totalausfall.

          1. Hi Markus,
            danke für dein Feedback!
            Die Installation von libgl1-mesa-dri-experimental hat gar keine Änderung an meinem System verursacht. Zumindest keine von mir bemerkbaren. Muss man die lib irgendwie noch in der xorg.conf eintragen?
            Die Ausgabe von /usr/lib/nux/unity_support_test -p ist:
            OpenGL vendor string: nouveau
            OpenGL renderer string: Gallium 0.4 on NV96
            OpenGL version string: 2.1 Mesa 8.0.2
            Not software rendered: yes
            Not blacklisted: yes
            GLX fbconfig: yes
            GLX texture from pixmap: yes
            GL npot or rect textures: yes
            GL vertex program: yes
            GL fragment program: yes
            GL vertex buffer object: yes
            GL framebuffer object: yes
            GL version is 1.4+: yes
            Unity 3D supported: yes
            Die Ausgabe von cat /etc/X11/xorg.conf ist:
            # nvidia-settings: X configuration file generated by nvidia-settings
            # nvidia-settings: version 1.0 (buildd@crested) Sun Feb 1 20:25:37 UTC 2009
            # commented out by update-manager, HAL is now used and auto-detects devices
            # Keyboard settings are now read from /etc/default/console-setup
            #Section „InputDevice“
            # # generated from default
            # Identifier „Mouse0“
            # Driver „mouse“
            # Option „Protocol“ „auto“
            # Option „Device“ „/dev/psaux“
            # Option „Emulate3Buttons“ „no“
            # Option „ZAxisMapping“ „4 5“
            #EndSection
            # commented out by update-manager, HAL is now used and auto-detects devices
            # Keyboard settings are now read from /etc/default/console-setup
            #Section „InputDevice“
            # # generated from default
            # Identifier „Keyboard0“
            # Driver „kbd“
            #EndSection
            Section „Monitor“
            Identifier „Monitor0“
            VendorName „Unknown“
            ModelName „Maxdata (RogenTech) B101715“
            HorizSync 31.0 – 83.0
            VertRefresh 56.0 – 75.0
            Option „DPMS“
            # HorizSync source: edid, VertRefresh source: edid
            EndSection
            Section „Screen“
            Identifier „Screen0“
            Device „Device0“
            Monitor „Monitor0“
            DefaultDepth 24
            Option „TwinView“ „1“
            Option „TwinViewXineramaInfoOrder“ „DFP-0“
            Option „metamodes“ „CRT: nvidia-auto-select +1920+0, DFP: nvidia-auto-select +0+0“
            SubSection „Display“
            Depth 24
            EndSubSection
            EndSection
            Section „Module“
            Load „dbe“
            Load „extmod“
            Load „type1“
            Load „freetype“
            Load „glx“
            EndSection
            Section „ServerLayout“
            Identifier „Layout0“
            Screen 0 „Screen0“ 0 0
            # commented out by update-manager, HAL is now used and auto-detects devices
            # Keyboard settings are now read from /etc/default/console-setup
            # InputDevice „Keyboard0“ „CoreKeyboard“
            # commented out by update-manager, HAL is now used and auto-detects devices
            # Keyboard settings are now read from /etc/default/console-setup
            # InputDevice „Mouse0“ „CorePointer“
            EndSection
            Section „Device“
            Identifier „Device0“
            Driver „nouveau“
            EndSection
            Section „ServerFlags“
            Option „Xinerama“ „0“
            EndSection
            Das Fazit ist, dass alles so halbwegs funktioniert. Aber mit Ubuntu 11.10 war alles toll. Evtl. Siehst du (oder jemand anderes) auf Anhieb den Fehler in meiner xorg.cong…
            Grüße, Patrick

  4. Hallo Patrick,
    ich kann dir leider nicht sagen, welche Nvidia-Karte momentan problemlos mit Ubuntu 12.04 und dem aktuellen Treiber funktioniert. Das ist momentan zwar eine unschöne Situation, ich würde an deiner Stelle aber folgendes probieren, bevor ich mir eine neue GraKa kaufen würde.
    1. Der Nouveau-Treiber kann im Prinzip auch den Dual-Head-Betrieb. Ich vermute sowohl deine Probleme mit der Auflösung und deinem zweiten Monitor, würden sich lösen lassen, wenn man deine xorg.conf richtig anpassen würde. Unter dem Stichwort „nouveau dual head 9500 gt“ finde ich schon einige Suchergebnisse.
    2. Falls bis zum Upgrade auf 12.04 alles normal funktionierte, du aber keinen Downgrade machen willst/kannst, probier doch mal, ob eine Neuinstallation von 11.10 funktioniert. Vorher sicherst du noch dein komplettes Home-Verzeichnis und /etc, womit du auf der sicheren Seite sein solltest und spielst es dann zurück.
    3. Das mehr als 300 Pakete unauflösbare Abhängigkeiten haben ist ungewöhnlich. Vielleicht musst du noch vorher die „multiverse“- oder „universe“-Repos freischalten?
    Hoffe das hilft ein wenig.

  5. Hallo Markus,
    danke erst mal für deine ausführliche Antwort!
    Leider handelt es sich um meinen Produktivrechner, also fallen deine Punkte 2. und 3. bei mir weg. Den Upgrade auf 12.04 hab ich schon gemacht. 🙁
    Ich werd aber rumprobieren, ob mit dem nouveau Treiber was zu machen ist.
    Wenn ich die Zeit hätte zum Debuggen…
    Für mich wäre es stressfreier, eine GraKa für um die 30-50EUR zu kaufen, die einfach funktioniert….
    Grüße,
    Patrick

  6. Hallo Patrick
    wegen libgl1-mesa-dri-experimental musst du nichts weiter machen. Nur installieren genügt. Du findest hier noch ein paar Infos dazu. Man sollte im Hinterkopf behalten, dass er experimentell ist, aber als freier Treiberersatz für den Nvidia-Treiber kann ich damit seit Monaten z.B. ohne Probleme Gnome3 und die Gnome-Shell benutzen.
    Alles auf „yes“ sieht gut aus. Ich benutze wie gesagt selbst kein Dual-Head-Setup. Was mir aber an deiner xorg.conf aufgefallen ist. Du benutzt z.B. nur eine „Monitor“-Sektion, musst aber wahrscheinlich beide Monitor dort definieren.
    Vielleicht hilft dir der Archlinux-Artikel zum Thema Nouveau weiter. Dort gibt es auch ein Beispiel für Dual Head.
    Unter Dualview im Wiki von ubuntuusers.de sehe ich gerade noch, dass die TwinView-Option nur mit dem proprietären Treiber zu funktionieren scheint. Das könnte ebenfalls ein Grund sein, warum bei dir alles schwarz bleibt.

    1. Hallo Markus,
      die xorg.conf ist, bis auf die „Device“ section, in der ich jetzt nouveau eingetragen habe, seit Ubuntu 4.04 konstant.
      Sind wir jetzt wieder soweit? Müssen wir unter Mainline Linux Distributoren wie Ubuntu/Debian, Suse und Redheat, unsere xorg.conf wieder mit DEM EDITOR anfassen? 😉
      Nur so am Rande,
      Patrick
      der jetzt schon mal ‚man vim‘ tippt, weil ‚man emacs‘ (meine Welt) nie da ist, wenn man sie braucht…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.