Пришло время ядра 2.6.32 (уже 2.6.32.3) в core репозитория ArchLinux, да вот незадача: поломали они графику.
Проявляется так: через некоторое время работы, в иксах начинает дергаться экран, как в дерьмовом фильме, где после крутого взрыва на космическом корабле все мониторы взорвались, а последний, для связи с Землей, перед последним вздохом показывает дерганное изображение оператора с того конца. Еще через некоторое время графика фризится, на некоторых версиях иксовых дров (2.9.1) это финиш, для тех что из git - можно переключиться в консоль и там вырубить иксы, да вот запустить их не получится до полной перезагрузки. Да это не паника - система продолжает работать.
Если задать опцию powersave=0 для модуля i915, проявление вышеописанных багов несколько снижается, но не исчезает. Кроме того, после suspend-to-ram фейл появляется почти сразу.
Подумав, решил на время отказаться от родных драйверов в сторону vesa, мне главное нормальная и стабильная работа (да, Арч, что бы моск не заплыл :))
Собственно, все свелось к следующему
Для начала ставим пакет v86d из extra: pacman -S v86d
После установки редактируем файл /etc/modprobe.d/uvesafb.conf на предмет нужного нам разрешения экрана, ставим сразу (верно для моего EeePC 1000H) 1024x600-32
И загружаем модуль usevafb: modprobe uvesafb
Ииии облом :) получим разрешение 800x600
и растянутое изображение - приятного мало.
Связано с тем, что видеобиос на некоторых чипах не поддерживает переключение в нативное разрешение, глюк, согласно статье в вики: http://wiki.archlinux.org/index.php/Uvesafb#Uvesafb_and_915resolution
Там же находим способ как обходить - использовать хак под названием 915resolution лежит он в AUR, только берите версию 915resolution-static - там содержится патч для поддержки 945GME. Собираем этот пакет и ставим.
Дальше запускаем: sudo 915resolution -l
смотрим какие режимы предоставляет. Я для переопределения под номером 54 (в hex виде) - бывший 1024x768-32
.
Если поддержки чипа нет - то будет об этом сказано, в этом случае - гуглите, патчите.
Дальше, нужно соблюдать порядок:
- сначал хачим биос:
915resolution 54 1024 600
- потом уже загружаем модуль uvesafb:
modprobe usevafb
(при наличии настройки в /etc/modprobe.d/uvesafb.conf)
В случае ArchLinux данную загрузку можно осуществить через initrd, для этого:
- редактируем хук: /lib/initcpio/hooks/915resolution на предмет нужного режиме (смотрим выше что написал, про хачим биос)
- редактируем /etc/mkinitcpio.conf и дабавляем в строку HOOKS следующие хуки:
915resolution
иv86d
(сначала первые потом второй - порядок важен) - запускаем:
mkinitcpio -p kernel26
Все, при перезагрузке все станет на свои места, либо вручную вызвать нужные команды. Кстати на официальном сайте uvesafb есть информация ( http://dev.gentoo.org/~spock/projects/uvesafb/faq.php) как при работе выключить фреймбуфферную консоль и вернуть текстовую моду:
Can I unload the uvesafb module and switch back to a text mode?
Yes, provided your Video BIOS supports saving the VBE state. This is supported by the vast majority of the currently available BIOS-es. If yours does not support this feature, you will get an appropriate warning in the kernel log. In order to switch back to a text mode, you will need to detach fbcon: echo 0 > /sys/class/vtconsole/vtcon1/bind (make sure the VT_HW_CONSOLE_BINDING kernel config option is selected, otherwise this will do nothing). After you do that, you should be automatically switched back a text mode console. You will also be able to unload uvesafb and fbcon if they have been built as modules.
Уже мы все такие радостные, да? :) а теперь сделайте suspend-to-ram, ога, у меня не проснулось :) точно проснулось но графика слетела. В попытках исправить (для засыпания использую pm-utils с модулем uswsusp) поместил два скрипта в /etc/pm/sleep.d
- скрипт 10_915resolution:```bash#!/bin/bash
case $1 in hibernate|resume) /usr/sbin/915resolution 54 1024 600 ;; esac
* скрипт **10fbcon**:```bash#!/bin/bash
case $1 in
hibernate|resume)
echo 0 > /sys/class/graphics/fbcon/subsystem/fb0/state
;;
esac
Первый запустит хак, т.к. после сна/гибернейта он имеет тенденцию сбрасываться, а система находится в тупняке - а чо происходит то! Второй, скорее традиция - когда после сна консоль не просыпалась, исправляло ситуацию.
В общем, пока все, огромная просьба - протестить, отписаться.
Да! после сна, бывает черный экран - переключаемся в консоль и обратно. И для иксов достаточно прописать нужный режим (Modes “1024x600”) и драйвер vesa.
ЗЫ жду когда родные дрова починят, поставил бы Торвальдс Арч, что ли :)