среда, 5 мая 2010 г.

Suspend и Hibernate на Acer Extensa 4220

Портативные компьютеры должны обладать способностью «засыпать» и «просыпаться». Хорошо, когда это работает. Однако известно, что в линуксе с этим зачастую не так гладко. Например, в моём случае с ноутбуком 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.

Копируете статью - поставьте ссылку на оригинал!

4 комментария:

  1. Лирика: Однако известно, что в линуксе с этим зачастую не так гладко.
    Известно так же куча геморроя с этим и на винде: мой университетский лаптоп от Делл теряет вайфай и блютус после усыпления. Иногда такое бывает и в убунте 9.10.

    Что-то я не понял: так ноут с арчем или дебианом на борту? Версия дебиана какая?

    Далее. Хотя я лично считаю суспенд\хибернейт бесполезной рюшечкой, после которой вечно что-то отваливается, вопрос: pm-suspend всё делает БЕЗ плясок вокруг ядра или с оными?

    ОтветитьУдалить
  2. Ноутбук сейчас с Debian Lenny. Это раньше были тесты с арчем.
    У меня вообще никакой возни с ядром не было - заработало сразу после установки всего acpi-подобного, что я указал в конце, и pm-utils. Даже в загрузчике ничего менять не пришлось.

    По поводу отваливания. Глюк с pm-suspend я схватил однажды - компьютер выключился. С wifi у меня всё отлично, но, замечу, что я использую wicd в качестве менеджера сети, а не network-manager, с которым как раз глюки были (как минимум надо было отключаться, а потом снова подключаться). И никаких гномовских или кдешных демонов управления питанием у меня нет, а они-то косячили, например, яркость экрана.

    Но всё это проверялось только для моей модели ноутбука. Как будет на других, понятия не имею.

    ОтветитьУдалить
  3. а как сделать что бы при выходе из сна заработал gdm

    ОтветитьУдалить
  4. К сожалению, не могу ничего посоветовать, поскольку не пользуюсь gdm - у меня init 3 и startx.

    ОтветитьУдалить