Summary: | Не происходит восстановления образа памяти после перехода в suspend2disk | ||||||
---|---|---|---|---|---|---|---|
Product: | Branch 4.1 | Reporter: | Лаврущенко Александр <kpykcb> | ||||
Component: | suspend | Assignee: | Nobody's working on this, feel free to take it <nobody> | ||||
Status: | CLOSED WONTFIX | QA Contact: | qa-4.1 <qa-4.1> | ||||
Severity: | blocker | ||||||
Priority: | P2 | ||||||
Version: | unspecified | ||||||
Hardware: | x86 | ||||||
OS: | Linux | ||||||
Attachments: |
|
Как именно вы запускаете suspend2disk? Попробуйте удалить пакет suspend, или хотя бы закомментировать строку TryMethod ususpend-disk.conf в /etc/hibernate/disk.conf (если suspend2disk запускается через hibernate). Файлы 99-root.rules, 99-resume.rules не нужно искать в системе - они создаются только в initramfs в процессе загрузки, и в дальнейшем уничтожаются вместе с остальным содержимым initramfs, загруженным в память. Кроме того, эти файлы создаются только при использовании root=LABEL=... или resume=LABEL=...; при использовании других форм задания устройств (в том числе UUID) дополнительные файлы не создаются даже в initramfs. (In reply to comment #1) > Как именно вы запускаете suspend2disk? s2disk > Попробуйте удалить пакет suspend, или хотя бы закомментировать строку > TryMethod ususpend-disk.conf > в /etc/hibernate/disk.conf (если suspend2disk запускается через hibernate). Попробовал. Resume произошёл, но отправить систему в suspend2disk больше не получается. Точнее не получается до нормального завершения, т.е. после reboot/poweroff снова можно, но только один раз. + не заводится usb мышь (Genius NetScroll+Mini Traveler). Заметил в системном логе надпись, что какой-то девайс не может уснуть. Откомментировал опцию UnloadAllModules yes, появилась возможность отправлять в сон снова. Мышь заводится. Однако теперь "некорректно восстанавливаются" acerhk/acer-wmi/iwl3945(какой точно не скажу), но перестаёт работать индикатор wlan и на кнопку (rfkill switch) уже не реагирует. Возможно не правильные параметры модулям передаются. Но это уже собственно точно не проблема klibc-utils-initramfs, мне думается. > Файлы 99-root.rules, 99-resume.rules не нужно искать в системе - они создаются только в > только при использовании root=LABEL=... или resume=LABEL=...; при использовании других пробовал и эти варианты. > форм задания устройств (в том числе UUID) дополнительные файлы не создаются > даже в initramfs. Понятно. Проблема даже не klibc-utils-initramfs, а mkinitrd - отсутствие поддержки s2disk (userland swsusp); сейчас там поддерживается только swsusp из ядра (запускаемый через echo disk >/sys/power/state; код для сохранения образа в этом случае находится в ядре). К сожалению, в области suspend расплодилось слишком много различных реализаций и утилит для поддержки, каждая со своим набором багов. Хотя можно попробовать перегенерировать initrd, добавив в вызов mkinitrd опции: -a /lib/ld-linux.so.2=/lib/ld-linux.so.2 \ -a /lib/libc.so.6=/lib/libc.so.6 \ -a /lib/liblzo2.so.2=/usr/lib/liblzo2.so.2 \ -a /bin/resume=/usr/lib/suspend/resume (при установленном пакете suspend; на x86_64 пути будут другие). При загрузке с таким initrd должно произойти возобновление после использования s2disk из пакета suspend (а вот поддержка swsusp из ядра, вероятно, сломается). (In reply to comment #3) >/sys/power/state; код для сохранения образа в этом случае находится в ядре). К > сожалению, в области suspend расплодилось слишком много различных реализаций и > утилит для поддержки, каждая со своим набором багов. Согласен uswsup,swsup,tuxonice. Буду надеятся, что выживет сильнейший :). > Хотя можно попробовать перегенерировать initrd, добавив в вызов mkinitrd опции: > > -a /lib/ld-linux.so.2=/lib/ld-linux.so.2 \ > -a /lib/libc.so.6=/lib/libc.so.6 \ > -a /lib/liblzo2.so.2=/usr/lib/liblzo2.so.2 \ > -a /bin/resume=/usr/lib/suspend/resume при установленном suspend, у меня: -a /lib/ld-linux.so.2=/lib/ld-linux.so.2 \ -a /lib/libc.so.6=/lib/libc.so.6 \ -a /lib/liblzo2.so.2=/usr/lib/liblzo2.so.2 \ -a /bin/resume=/usr/sbin/resume > suspend (а вот поддержка swsusp из ядра, вероятно, сломается). Не проверял, но uswsup заработало. Мне показалось засыпает\просыпается быстрее, может из-за компрессии, мышь после первого просыпания отвалилась, после второго нет (видимо потому, что заснул через hibernate во второй раз, т.е. с выгрузкой всех модулей). Однако забыл отметить, что в обоих случаях uswsup,swsup иногда отваливаются настройки клавиатурных раскладок в иксах. Помогает перезапуск иксов. В общем по-сути баг мне кажется решён, или его не было :). Тикет закрывать что-ли? > Однако забыл отметить, что в обоих случаях uswsup,swsup иногда отваливаются
> настройки клавиатурных раскладок в иксах. Помогает перезапуск иксов.
Ответить как часто не могу, но таки часто.
Внесение конфигурации в xorg.conf не помогает, порылся в системе понял, что в ALT сделано
несколько иначе.
Восстановление раскладки возможно так как сделано в alterator-xkb:
setxkbmap -option && setxkbmap $(cat /etc/X11/xinit/Xkbmap)
было-бы неплохо заставить эту команду выполнятся при resume.
Кто-нибудь подскажет как это кошерно сделать?
Запуск s2disk производится из меню klaptop, и у меня есть подозрение, что он вызывает напрямую
s2disk т.к. не выполняется xbacklight, запуск которогого прописан в конфиге
kpykc/~> sudo cat /etc/hibernate/common.conf | gr -A 1 xba
### xbacklight
BackLight yes
Если надо на это другой баг открыть подкажите, а то я сомневаюсь.
В 4.1/branch исправления не будут вноситься уже технически (заглушена очередь на сборку), поэтому прошу ошибки, актуальные для sisyphus/p7/t7, перевесить на текущие ветки или сизиф. |
Created attachment 3029 [details] логи, грепы логов, инфо о системе, необходимые конфиги Ноутбук ACER TravelMate 4720 (Linux предустановлен). Винчестер Hitachi, остальное железо Intel, кроме наверное памяти, тачпада, экрана, кард-ридера dvd-rw. Переход в suspend2disk происходит нормально. Однако после включения системы восстановления образа памяти не происходит. В логаг сообщения не остаётся, но выглядит оно ~ как resume image not found: kinit: name_to_dev_t(/dev/sda6) = dev(8,6) kinit: trying to resume from /dev/sda6 kinit: No resume image, doing normal boot... И дальше загрузка продолжается как обычный старт системы. swap не активируется. Причём, если отменить запуск очистки образов hibernate-cleanup, то можно запустить: /lib/mkinitrd/klibc/bin/resume /dev/sda6 и появляется индикатор выполнения восстановления образа. Я пытался переделывать скрипты initramfs, результата не вышло, но есть нюанс использования правил udev которые отсутствуют в системе напрочь: /etc/udev/rules.d/99-root.rules /etc/udev/rules.d/99-resume.rules До недавнего перехода на ALTLinux пользовался Debian Lenny, где подобной проблемы не возникало вообще, начал использовать ноутбук с 2.6.22(точнее 2.6.18, сначала был etch, потом обновился). Вся информация которая показалась мне важно в архиве.