Поиск по блогу

среда, 19 января 2011 г.

Сломался hibernate на моей eeepc'шке

Началось все со странной перезагрузки при попытке разбудить ноутбук из hibernation. Вроде процесс восстановления прошел, но вместо скринсейвера я увидел логотип асуса и последующую загрузку и проверку разделов на винте. Время было позднее и я не придал этому никакого значения - рещил, что был аппаратный сбой.
На следующий день история повторилась на работе. Времени разбираться не было и оставил как есть. Ближе к вечеру появилось свободное время - решил разобраться, что сломалось. Прикинул что дня три назад все еще работало, а значит нужно искать проблему в изменениях за последние двое суток. Вспомнилось, что делал обновления до текущего Debian Squeeze и обновилось что-то в районе ядра и прошивки для беспроводной карточки. Дома, где впервые заметил проблему, ноут засыпает с включенным wi-fi - и сразу напрашивалось, что сбоит включенная карточка в момент выхода ноута из спячки.
Попробовал сделать hibernate и снова включить ноут, но уже с отключенным wi-fi - результатом была та же перезагрузка. Начал искать причину среди недавних апдейтов ядра и системы засыпания. На тот момент стояло linux-image-2.6.32-5-686, uswsusp и pm-utils (работает поверх uswsusp). Поискал последние изменения в пакетной базе
$ grep 'status installed' /var/log/dpkg.log

2011-01-17 16:30:35 status installed linux-base 2.6.32-30
2011-01-17 16:31:09 status installed linux-image-2.6.32-5-686 2.6.32-30
2011-01-17 16:31:11 status installed firmware-linux-free 2.6.32-30
2011-01-17 16:31:11 status installed linux-libc-dev 2.6.32-30
Ядро обновилось с версии 2.6.32-29 на 2.6.32-30 - пошел читать changelog. Вроде ничего подозрительного не видно, решил глянуть upstream changelog, вот в нем и нашлось изменение в районе подсистемы PM / Hibernate
commit 012f9fdfd2965f573171f848d1aa46531cab7062
Author: Takashi Iwai 
Date:   Fri Dec 10 00:16:39 2010 +0100

    PM / Hibernate: Fix PM_POST_* notification with user-space suspend
    
    commit 1497dd1d29c6a53fcd3c80f7ac8d0e0239e7389e upstream.
    
    The user-space hibernation sends a wrong notification after the image
    restoration because of thinko for the file flag check.  RDONLY
    corresponds to hibernation and WRONLY to restoration, confusingly.
    
    Signed-off-by: Takashi Iwai 
    Signed-off-by: Rafael J. Wysocki 
    Signed-off-by: Greg Kroah-Hartman 

Полное описание комита
Решил откатиться на версию 2.6.32-29 и зафиксировать версию ядра, пока проблема не будет решена. Старую версию взял со snapshot.debian.org
Установка
$ wget http://snapshot.debian.org/archive/debian/20101211T031516Z/pool/main/l/linux-2.6/linux-image-2.6.32-5-686_2.6.32-29_i386.deb \
http://snapshot.debian.org/archive/debian/20101211T031516Z/pool/main/l/linux-2.6/linux-libc-dev_2.6.32-29_i386.deb \
http://snapshot.debian.org/archive/debian/20101210T205106Z/pool/main/l/linux-2.6/linux-base_2.6.32-29_all.deb \
http://snapshot.debian.org/archive/debian/20101210T205106Z/pool/main/l/linux-2.6/firmware-linux-free_2.6.32-29_all.deb
$ sudo dpkg -i *2.6.32*.deb
Фиксация версии в пакетной базе
$ sudo aptitude hold linux-image-2.6.32-5-686 firmware-linux-free linux-base linux-libc-dev
Перезагрузка и пробую засыпать на диск:
pm-hibernate
- все в порядке, включение прошло без проблем, осталось отписаться о проблеме разработчикам.





Комментариев нет:

Отправить комментарий