понедельник, 14 июля 2014 г.

Debian Wheezy - Адский "сон".

приветствую о глубокоуважаемый олл!

Вернусь к теме которой касался в одном из предыдущих постов:

Предыстория:  Потребовалась определенная реакция на кнопки "power" и "sleep". Настройка этой реакции оказалась настоящим "адом".
Дело в том что Линукс стремительно движется в ГУЙ и следствием этого оказывается отказ от текстовых конфигов настраиваемых админом и переход к настройкам разным для разного пользователя залогиненого в рабочий стол. В итоге параллельно работают и админские настройки и пользовательские. В результате получаем реакции типа: Нажали кнопку "power" и ГУЙ выдал интерактивный запрос о действии и ждет таймаут до исполнения действия по умолчанию. Одновременно сработал acpid и отправил компьютер в гибернейт. Компьютер отдохнул и мы его включили. Он загрузил образ гибернейта с диалогом таймаута и упс... таймаут уже закончился и идем в "шатдаун/слип/гибернейт".

Если мы уберем реакцию из /etc/acpi/events то для каждого пользователя будет всё замечательно - но если пользователь отошел от компьютера и заблокировал его то другой человек не сможет его усыпить и при потребности "обесточить" выключит рабочую машину. То же самое будет если компьютер находится на этапе логина.

В результате долгих мучений придумал компромисс: Настроить реакцию на кнопки в /etc/acpi и отключить реакцию на кнопки в ГУЕ. Однако реализовать его не смог. Отключить реакцию на кнопки можно лишь в Гноме:

Настройка acpi
# cat /etc/acpi/events/powerbtn
event=button[ /]power
action=/usr/sbin/pm-hibernate

# cat /etc/acpi/events/sleepbtn
event=button[ /]sleep
action=/usr/sbin/pm-suspend

В Гноме под каждым юзером отключаем реакцию на кнопки:
$gsettings set org.gnome.settings-daemon.plugins.power button-power 'nothing'
$gsettings set org.gnome.settings-daemon.plugins.power button-suspend 'nothing'

Настройка MATE Desktop Environment
Система->Параметры->Управление питанием->Общие
При нажатии кнопки питания:  Спящий режим
При нажатии кнопки пеерхода в ждущий режим: Ждущий режим
(Как отключить реакцию не нашел)

Настройка Xfce
Меню приложений->Настройки->Менеджер питания
Общие->Когда нажата клавиша включения/выключения питания: спящий режим.
Общие->Когда нажата клавиша перехода в спящий режим: спрашивать.
Общие->Когда нажата клавиша перехода в ждущий режим: ждущий режим.

В итоге в менеджере логина GDM3 и в Гноме получаем реакцию на /etc/acpi а в MATE и Xfce надо выставлять настройки приводящие к такому же поведению.

Адский сон стал легче - но всё ещё продолжается.
Это следствие противоборства двух подходов: 1 - Систему настраивает специалист для всех пользователей сразу. 2 - Реакцию системы настраивает под себя каждый пользователь. В итоге в состоянии "неопределенности" (заблокированный компьютер или диалог логина) получаем неопределенную реакцию на сенсоры (нажатия кнопок, закрытия крышки ноутбука). В системе Linux тут же противоборство консоли и ГУЯ. В консоли большинство  системных настроек живет в /etc а в ГУЕ в домашнем каталоге залогоненного пользователя. На этапе логон экрана я к сожалению вообще не понимаю какая часть X окружения уже работает а какая нет.
В общем реакция на сенсоры у линукса пока неопределенная.

пятница, 11 июля 2014 г.

Откуда ноги растут у гнома.

Приветствую о многоуважаемый олл!

Давно использую Линукс как сервер и по мере его "взросления" как десктопа начал использовать его и на десктопе. Однако много неприятных моментов доставляла неоднозначная реакция на десктопе.

Началось всё с Убунту и USB модема. Изначально я заставил работать модем в Debian, но в Убунту эти рецепты не помогали. Модем упорно не хотел работать. Пришла мысль о том что Убунта это галимый гуй и настраивать её надо по гуёвому. Удалил все настройки в /etc и убунта радостно в гуе сказала что нашла модем. Ответил на несколько вопросов и вуаля! Модем работает, но как истинный гуй требует нажатия кнопочек пользователями. Однако хочется с 3G Модемом иметь интернет уже на этапе загрузки.

Этот момент ужа давно пройден и настал новый. Поставил очередную реинкарнацию "Wheezy" и сделал:
#echo !/bin/sh >/etc/acpi/powerbtn.sh
#echo #pm-hibernate >>/etc/acpi/powerbtn.sh
#chmod +x /etc/acpi/powerbtn.sh
Ожидалось что система по нажатию кнопки  "Power" будет уходить в гибернейт, однако получался уход в гибернейт а после просыпания уход в слип, а в некоторых реинкарнациях Debian вообще отсутствие реакции.
Неоднократно в форумах задавал вопрос и везде отсылали к acpid.

Однако на форуме linux.org.ru в теме: Debian Wheezy как десктоп: реакция на кнопку power = sleep; надо: pm-hibernate. Как?
Подсказали "правильное" решение.
Правильное решение в том чтобы установить реакцию в настройках гнома, а имеенно:
$gsettings set org.gnome.settings-daemon.plugins.power button-power 'hibernate'
А затем еще и:
#gsettings set org.gnome.settings-daemon.plugins.power button-power 'hibernate'
Смысл в том что для каждого пользователя настройки гнома разные и установленная от имени пользователя реакция на кнопку "Power" не будет работать на этапе экрана логона пользователя или у другого пользователя.

Узнав о такой возможности стало интересно - можно ли получить список параметров и оказалось что можно. Ответ дали в том же топике:
$gsettings list-recursively дающий порядка 3000 параметров гнома.

Узнал это знание и решил опубликовать его и здесь.
Всех благ,
0лег.