Debian & intel GM965/GL960 Integrated Graphics Controller
Я являюсь "счастливым" обладателем интегрированного видеоадаптера GM965/GL960 Integrated Graphics Controller, а так как я пользуюсь только системой Linux на своем ноутбуке, то крайне болезненно принимаю некоторые глюки этого поделия когда приходится например обновлять ПО, в данный момент установил ядро версии 3.6.9, и начались странности.. периодически при непонятных но вычисляемых обстоятельствах ноут уходит в черный экран, при этом все продолжает работать, но изображение недоступно насмерть.. прикол в том что вызывает такое странное поведение именно тяжелые программы, например все от mozilla, иногда libreoffice, было и от virtualbox.. при очередном таком глюке, вслепую перешел в консоль и сделал dmesg|tail > err.txt после перезагрузки увидел это:
[drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung [drm:i915_reset] *ERROR* Failed to reset chip.
.. гм.. сделал запрос на модуль: modinfo i915
parm: invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to dri-devel@lists.freedesktop.org, if your machine needs it. It will then be included in an upcoming module version. (int) parm: modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int) parm: fbpercrtc:int parm: panel_ignore_lid:Override lid status (0=autodetect [default], 1=lid open, -1=lid closed) (int) parm: powersave:Enable powersavings, fbc, downclocking, etc. (default: true) (int) parm: semaphores:Use semaphores for inter-ring sync (default: -1 (use per-chip defaults)) (int) parm: i915_enable_rc6:Enable power-saving render C-state 6. Different stages can be selected via bitmask values (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. default: -1 (use per-chip default) (int) parm: i915_enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int) parm: lvds_downclock:Use panel (LVDS/eDP) downclocking for power savings (default: false) (int) parm: lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int) parm: lvds_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int) parm: vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int) parm: reset:Attempt GPU resets (default: true) (bool) parm: enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool) parm: i915_enable_ppgtt:Enable PPGTT (default: true) (int)
............. из всего этого богатства опций самые интересные:
1. lvds_channel_mode: 2. reset 3. enable_hangcheck 4. modeset:
немного "поигравшись" получил стабильное решение только так: добавляем или создаем в /etc/modprobe/i915kms.conf
options i915 modeset=1 options i915 enable_hangcheck=1 options i915 reset=0 options lvds_channel_mode=1
.. обязательно качаем самую последнюю версию libdrm-intel1 качаем тут: http://intellinuxgraphics.org/download.html нас интересует : http://cgit.freedesktop.org/mesa/drm/ тянем что-то типа libdrm-2.4.40.tar.gz распаковываем где нибудь.. в распакованном каталоге делаем autogen.sh следом configure.sh если просит чего, доустанавливаем... после делаем make -j3 (компиляция в 3 потока, у кого мощнее можно больше по числу ядер процессора) следом ставим пакет если его нет : apt-get install checkinstall теперь в каталоге даем команду: checkinstall -D отвечаем утвердительно, и везде названия вместо libdrm меняем на libdrm-intel1 затем запускаем сборку deb пакета нажимая enter .. теперь ставим пакет, тем самым обновляемся в данном случае до libdrm-intel1-2.4.40 советую также обновить xserver-xorg-video-intel до версии 2.2.15.0-3 из backports .. после этого черный экран у меня перестал появляться.. я специально тут написал, так как заметил, что весь интернет обсуждает эту проблему, но к сожалению мало кто дает решение этого..