28 апр. 2012 г.

PSB_gfx | Brightness settings fix | Ubuntu 12.04


Настраиваем яркость экрана | Ubuntu 12.04 | GMA500


С данной проблемой я столкнулся на своем Asus EeePC T91.

После долгих ковыряний наконец-то виден просвет. Теперь работают все базовые функции(хоть и через костыль ;)): саспенд, изменение яркости, выставляется нужное разрешение, отличное 2д- ускорение.

Так как я полностью изменил принцип действия скрипта, пришлось практически полностью изменить статью.

Всем привет!
Если вы зашли сюда из поисковика, то вы понимаете о чем я говорю.
В убунту 12.04 для данной видеокарты используется драйвер psb_gfx, который мало что умеет к сожалению. Помимо этого в нем не работает саспенд(ждущий режим), точнее он криво просыпается [Починено], и регулировка яркости экрана из панели управления(да и функц. клавиши тоже) не пашет.
Вся проблема в том, что после грамотно подобранных параметров загрузки ядра, система замечательно уходит и выходит из сна, и даже работают функциональные клавиши изменения яркости, индикатор показывает ее изменение, но по факту яркость не меняется, т.к. драйвер читает параметры яркости дисплея не из той папки.

Есть два способа решения данной напасти. И оба работают отлично.
  • Первый- предложенный мной (со скриптом в автозагрузке).
  • Второй- способ, предложенный пользователем thermatk на Ubuntu forums
Способ №1
Я долго ковырялся и, дабы упростить всем жизнь, предлагаю создать скрипт. Что он делает? Он отслеживает изменение файлов в папке /sys/class/backlight/eeepc (в которой пишутся значения, когда мы меняем  яркость через GUI и функциональные клавиши), интерпретирует и записывает их в папку /sys/class/backlight/psb-bl (из которой драйвер читает значения яркости монитора [по умолчанию- 100%])
  • Открываем терминал
gedit .backlight

Откроется текстовый редактор, скопируем в него текст

#!/bin/sh

while [ "$1" != "exit" ] ; do
a=$(cat /sys/class/backlight/eeepc/brightness)
n=$((a*7))

echo $n > /sys/class/backlight/psb-bl/brightness

sleep 0.5

done

*Будьте внимательны, для разных ноутов могут быть разные пути к файлу хранения настроек. То есть, например для Asus T91 MT,  вторая строчка в скрипте будет выглядеть так: a=$(cat /sys/class/backlight/eeepc-wmi/brightness).
  •  Скрипт скрыт, чтобы его увидеть нажмите Ctrl+H.
  • Далее нужно дать скрипту права на исполнение(кликнув ПКМ -> права -> соотв. галочка)
  • Еще нам потребуется изменить права одного файла.
sudo chmod 666 /sys/class/backlight/psb-bl/brightness 

...но тут есть небольшая загвоздка. После перезагрузки система создает этот файл заново с дефолтными параметрами, поэтому после загрузки нам нужно снова получить права на запись.
Для этого:

sudo gedit /etc/rc.local

Добавляем над строкой exit строчку:

chmod 666 /sys/class/backlight/psb-bl/brightness 

  • Теперь добавим в автозагрузку наш скрипт. Для этого открываем "Автоматически запускаемые приложения", жмем "добавить", обзываем все это дело "Яркость экрана" и указываем путь к нашему скрипту.

Теперь можем перезагружаться и радоваться жизни =)

Способ №2
Он прост и более рационален.
Для начала нам нужно скачать в домашнюю папку переписанный пользователем  thermatk для psb-bl файл gsd-backlight-helper
Как видно из названия, файл отвечает за подсветку экрана.

Далее открываем терминал и копируем 

sudo cp gsd-backlight-helper /usr/lib/gnome-settings-daemon

На всякий случай перезагружаемся и ,опять же, наслаждаемся рабочими функциональными клавишами яркости экрана.

Однако, должен заметить, что при втором способе после перезапуска компьютера - яркость слетает на дефолтные 100%. При первом способе яркость всегда (даже при запуске биоса и после загрузки иксов) остается такой, какой вы ее выставили в последний раз.

UPD: После пары обновлений backlight-helper слетает и управление яркостью экрана снова не работает. С моим скриптом - все ок. Сейчас снова использую первый способ.

Успехов!

5 Snow Dimon: PSB_gfx | Brightness settings fix | Ubuntu 12.04 Настраиваем яркость экрана | Ubuntu 12.04 | GMA500 С данной проблемой я столкнулся на своем Asus EeePC T91. После долгих ко...
ВКонтакте
FaceBook
Google+
UP