Vor einiger Zeit habe ich mir einen neuen PC zugelegt, da mein alter Rechner ziemlich in die Jahre gekommen und überholungsbedürftig war.
Alles in allem bin ich mit dem neuen System sehr zufrieden und werde es wohl auch in Zukunft sein, da es einfach aufzurüsten sein wird (so jedenfalls habe ich das geplant). Allerdings funktionierte die Onboard-Soundkarte mit aktuellen Kerneln nicht mehr richtig. Wie aus heiterem Himmel kam es zu Abstürzen der grafischen Oberfläche, die Grafik blieb einfach hängen.
Nach einigem Suchen stieg ich dann auf den Linux Kernel Version 3.1.10 um, dort traten die Probleme nicht auf. Neuere Kernel (Mainline) halfen nicht, auch hier kam es zu diesen Abstürzen und Freezes. Zufällig hatte ich mal ein Terminal offen und aktiv und konnte noch das Fehlerlog checken und pasten:
[ 626.594619] ------------[ cut here ]------------
[ 626.594624] WARNING: at /build/buildd/linux-3.2.0/drivers/gpu/drm/i915/i915_drv.c:413 __gen6_gt_wait_for_fifo+0x94/0xa0 [i915]()
[ 626.594626] Hardware name: To Be Filled By O.E.M.
[ 626.594627] Modules linked in: snd_hda_codec_hdmi(O) snd_hda_codec_realtek(O) bnep rfcomm bluetooth binfmt_misc snd_hda_intel(O) snd_hda_codec(O) snd_hwdep joydev snd_pcm snd_seq_midi snd_rawmidi usbhid hid snd_seq_midi_event snd_seq snd_timer snd_seq_device snd i915 drm_kms_helper soundcore drm snd_page_alloc mei(C) ppdev parport_pc psmouse serio_raw i2c_algo_bit mac_hid video lp parport floppy r8169
[ 626.594643] Pid: 1088, comm: Xorg Tainted: G WC O 3.2.0-25-generic #40-Ubuntu
[ 626.594645] Call Trace:
[ 626.594647] [] warn_slowpath_common+0x7f/0xc0
[ 626.594649] [] warn_slowpath_null+0x1a/0x20
[ 626.594654] [] __gen6_gt_wait_for_fifo+0x94/0xa0 [i915]
[ 626.594659] [] i915_write32+0xe5/0xf0 [i915]
[ 626.594666] [] gen6_ring_put_irq+0xa2/0xc0 [i915]
[ 626.594673] [] gen6_render_ring_put_irq+0x18/0x20 [i915]
[ 626.594678] [] i915_wait_request+0x1b7/0x560 [i915]
[ 626.594681] [] ? add_wait_queue+0x60/0x60
[ 626.594687] [] i915_gem_object_wait_rendering+0x32/0x40 [i915]
[ 626.594693] [] i915_gem_execbuffer_sync_rings+0xdd/0x160 [i915]
[ 626.594698] [] i915_gem_execbuffer_move_to_gpu+0x16e/0x200 [i915]
[ 626.594704] [] i915_gem_do_execbuffer.isra.8+0x668/0x9d0 [i915]
[ 626.594710] [] i915_gem_execbuffer2+0xa9/0x270 [i915]
[ 626.594716] [] drm_ioctl+0x444/0x510 [drm]
[ 626.594721] [] ? i915_gem_execbuffer+0x420/0x420 [i915]
[ 626.594724] [] ? restore_user_xstate+0x54/0xa0
[ 626.594726] [] do_vfs_ioctl+0x8a/0x340
[ 626.594729] [] sys_ioctl+0x91/0xa0
[ 626.594731] [] system_call_fastpath+0x16/0x1b
[ 626.594733] ---[ end trace 74eeb4d2e7892785 ]---
[ 630.942115] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
[ 630.943642] [drm] capturing error event; look for more information in /debug/dri/0/i915_error_state
[ 630.957727] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 473054 at 473050, next 473055)
[ 630.961441] [drm:init_ring_common] *ERROR* render ring initialization failed ctl 00000000 head 00000000 tail 00000000 start 00000000
[ 630.964967] [drm:init_ring_common] *ERROR* gen6 bsd ring initialization failed ctl 00000000 head 00000000 tail 00000000 start 00000000
[ 630.967987] [drm:init_ring_common] *ERROR* blt ring initialization failed ctl 00000000 head 00000000 tail 00000000 start 00000000
[ 632.794425] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
[ 632.796471] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 473057 at 473052, next 473058)
Dann tat sich lange Zeit nichts, bis ich heute noch einmal die Suche begann (zwischenzeitlich fand ich über Google weiterhin nur Fragen und Bugmeldungen, aber keine Patches oder Lösungen) und auch prompt fündig wurde. Ab Sandy Bridge kann die GPU im Leerlauf in einen Energiesparmodus gehen, diese Funktion (Intel i915 RC6) war bis Ubuntu 11.10 standardmäßig nicht aktiviert, da sie noch buggy war. Seit Ubuntu 12.04 fand man die Funktion wohl gut genug, um sie per Standard zu aktivieren.
Und da liegt anscheinend nicht nur mein Problem: Die Kombination aus dem Mainboard “ASRock H67M-GE/HT” und dem Prozessor “Intel Pentium G630″ hat anscheinend Probleme mit dem Energiesparmodus unter Ubuntu (oder andersrum). Vermutlich tritt das auch mit anderen Prozessoren und Motherboards ab Sandy Bridge auf, die meisten Betroffenen nutzten allerdings das oben genannte Mainboard.
Die Lösung findet sich schon in der verlinkten Wiki-Seite zu den Energiesparfunktionen der Intel i916-Prozessoren. Dort ist zu lesen, dass man den Modus (sofern er nicht, wie ab 12.04 sowieso eingeschaltet ist) im Grub wie folgt einzuschalten ist:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.i915_enable_rc6=1"
Und ebenso kann man ihn auch abschalten. In der Datei /etc/default/grub muss die Zeile GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" gegen diese ersetzt werden:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.i915_enable_rc6=0"
Danach muss Grub noch aktualisiert werden:
sudo update-grub
Nun muss das System nur noch neu gestartet werden und das Problem sollte gegessen sein.
DANKE!
Hat es geholfen?
Eine Weile ja. Jetzt hat das letzte Ubuntu update den Rechner so geschrottet, dass er reproduzierbar nach ein paar Mausbewegungen einfriert. Ist zum kotzen.
Habe jetzt den Treiber down-gegraded und es scheint wieder zu funktionieren. Total kaputt. Und das Netz voller Kummer…
Na super. Bei mir funktioniert noch immer alles.