Портативные компьютеры должны обладать способностью «засыпать» и «просыпаться». Хорошо, когда это работает. Однако известно, что в линуксе с этим зачастую не так гладко. Например, в моём случае с ноутбуком Acer Extensa 4220 были проблемы как со ждущим режимом suspend, так и со спящим hibernate в Ubuntu 8.04 - а именно никак не удавалось разбудить должным образом :) Не знаю как там в убунте сейчас, поскольку после небольшого эксперимента почти два года назад был поставлен дебиан, и только сейчас дошли руки написать как я настроил режим сна в Debian Lenny.
В рабочих средах вроде KDE или GNOME есть свои демоны, отвечающие за электрическую составляющую, вроде gnome-power-manager, которые позволяют, например, переводить ноутбук в спящий режим. У пользователей оконных менеджеров отдельно от рабочих сред резона запускать такие программы нет, поэтому имеет смысл поискать альтернативу. Здесь я опишу каким образом можно настроить спящий режим на Acer Extensa 4220.
Пересобирать или не пересобирать?
Пересобирать ядро не хотелось, ковыряться с этим некогда, ибо
молодость красноглазая уже позади, поэтому был обращён взор в сторону
готовых решений, которые могут работать, а могут, в принципе, и не
работать. Надежда на то, что работать будут есть и весьма немалая,
ввиду развития Linux, и по мере старения вашего оборудования будет
только расти :) Но для любителей make menuconfig
имеет смысл заглянуть на
Tux on Ice.
Во время проведения тестов с Arch Linux на борту, выяснилось, что утилиты s2ram и s2both из комплекта uswsusp не очень корректно работают для данной модели ноутбука. При просыпании могло оказаться, что отваливались клавиатура и мышь, и единственной рабочей кнопкой оказывалась кнопка выключения компьютера на корпусе.
Другая альтернатива в виде pm-utils не собиралась из исходников из
AUR'а, с причинами разобраться не удавалось. Однако в Debian этот
комплекс утилит был в репозитории, поэтому удалось без проблем
протестировать. Оказалось, что всё заработало «из коробки» -
pm-suspend
и pm-hibernate
успешно переводили комп в
соответствующий режим, а с просыпанием не возникало никаких проблем.
Чтобы перевести компьютер в ждущий режим, нужно скомандовать:
> sudo pm-suspend
Чтобы усыпить -
> sudo pm-hibernate
Доводим до ума
Поскольку F-клавиши на ноутбуке в комбинации с Fn должны осуществлять, по задумке создателей в ОС Windows, определённые действия, в частности засыпание по Fn-F4, имеет смысл и нам его навесить на эту комбинацию.
Но для начала надо позволить вводить эти команды без запроса пароля рута или sudo, для этого командуем от рута visudo (или внимательно правим /etc/sudoers) и добавляем такие строки:
username ALL=NOPASSWD: /usr/sbin/pm-suspend username ALL=NOPASSWD: /usr/sbin/pm-hibernate
username надо заменить на имя пользователя.
После этого потрошим xbindkeys или другую прогамму, позволяющую создавать биндинги. Проверим что представляет собой комбинация Fn-F4, для чего запускаем
> xbindkeys -mk
и нажимаем интересующию комбинацию. Для Fn-F4 я получил на выходе «m:0x0+c:223». Теперь пропишем в ~/.xbindkeysrc соотвествующую строку:
"sudo pm-suspend"
c:223
Осталось перезапустить xbindkeys.
Закрываем люк
Полезно добавить засыпание по закрытию крышки ноутбука. Для этого отредактирем файл /etc/acpi/events/lidbtn, заменив строку action=/etc/acpi/lid.sh на action=/etc/acpi/sleep.sh. В итоге должно получиться:
event=button[ /]lid action=/etc/acpi/sleep.sh
Замечу, что у меня установлены пакеты acpi, acpi-support, acpi-support-base, acpid.
Копируете статью - поставьте ссылку на оригинал!
Лирика: Однако известно, что в линуксе с этим зачастую не так гладко.
ОтветитьУдалитьИзвестно так же куча геморроя с этим и на винде: мой университетский лаптоп от Делл теряет вайфай и блютус после усыпления. Иногда такое бывает и в убунте 9.10.
Что-то я не понял: так ноут с арчем или дебианом на борту? Версия дебиана какая?
Далее. Хотя я лично считаю суспенд\хибернейт бесполезной рюшечкой, после которой вечно что-то отваливается, вопрос: pm-suspend всё делает БЕЗ плясок вокруг ядра или с оными?
Ноутбук сейчас с Debian Lenny. Это раньше были тесты с арчем.
ОтветитьУдалитьУ меня вообще никакой возни с ядром не было - заработало сразу после установки всего acpi-подобного, что я указал в конце, и pm-utils. Даже в загрузчике ничего менять не пришлось.
По поводу отваливания. Глюк с pm-suspend я схватил однажды - компьютер выключился. С wifi у меня всё отлично, но, замечу, что я использую wicd в качестве менеджера сети, а не network-manager, с которым как раз глюки были (как минимум надо было отключаться, а потом снова подключаться). И никаких гномовских или кдешных демонов управления питанием у меня нет, а они-то косячили, например, яркость экрана.
Но всё это проверялось только для моей модели ноутбука. Как будет на других, понятия не имею.
а как сделать что бы при выходе из сна заработал gdm
ОтветитьУдалитьК сожалению, не могу ничего посоветовать, поскольку не пользуюсь gdm - у меня init 3 и startx.
ОтветитьУдалить