LinuxForum.Fans
Тема

systemd suspend сломался

Автор: 1000Mhz 15 сообщений 1624 просмотров
02.11.2014 01:40 #399478

Команда 'systemctl suspend' суспендит буквально на секунду, после комп сразу же запускается.
Сначала думал, что проблема с xfce4-power-manager, но как видно проблема не в нем. Идей 0, пичаль.
Может pm-utils установить?..

02.11.2014 08:58 #399489

Покажите параметры ядра.

02.11.2014 13:59 #399511

[console]zcat /proc/config.gz | egrep -i 'sleep|suspend'
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_AUTOSLEEP=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
CONFIG_ACPI_SLEEP=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_VT_CONSOLE_SLEEP=y
# CONFIG_DEBUG_ATOMIC_SLEEP is not set[/console]

02.11.2014 15:50 #399516
"1000Mhz" написал:
zcat /proc/config.gz | egrep -i 'sleep|suspend'

Я вас спрашиваю не опции с которым собрано ядра, хотя это тоже полезно, а параметры, которые вы передаёте ядру при загрузке, покажите содержимое '/proc/cmdline' или выдержку из конфига загрузчика.

02.11.2014 16:05 · отредактировано #399519

Да там-то вообще ничего интересного:
root=/dev/disk/by-id/ata-KINGSTON_SV300S37A60G_50026B723107FA69-part1 nomodeset resume=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASZ0025539-part2 splash=silent quiet PROFILE=19-mai-2014 elevator=deadline vga=795

Это все не менялось уже давно, а переходить в спящий режим перестал недавно. Когда- не заметил, увы.

02.11.2014 16:34 #399522

Ну что могу сказать, вот мой конфиг:
[console]
# zgrep -i 'sleep\|suspend' /proc/config.gz
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
CONFIG_ACPI_SLEEP=y
CONFIG_VT_CONSOLE_SLEEP=y
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
[/console]
По большому счёту он почти не отличается от вашего.

Версия ядра:
[console]
# uname -r
3.14.14-gentoo
[/console]

Параметры ядра так же ничем примечательным не отличаются:
[console]
# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.14.14-gentoo root=/dev/mapper/vg0-root ro dolvm resume=/dev/vg0/swap
[/console]

Единственно, что могу сказать, у вас система инициализации systemd, а я использую OpenRC, возможно какой-то баг в SystemD.

В принципе вы можете проверить работу "Suspend to Disk" и "Suspend to Ram", т.е. "спящего" и "ждущего" режимов в ручную даже без всяких systemd или pm-utils, осуществив вывод соответствующего "слова" в соответствующий файл в /proc, а именно:

text

echo disk > /sys/power/state

Переход в спящий режим, т.е. запись состояния оперативной памяти на диск, в указанный раздел resume.

text

echo mem > /sys/power/state

Переход в ждущий режим, т.е. остановка работы системы, но при этом подача питания на модули оперативной памяти, дабы сохранить данные в ней.

За подробностями сюда:
https://www.kernel.org/doc/Documentation/power/states.txt

Проверьте как настроен ACPI в BIOS (UEFI) вашей материнской платы и какой режим сейчас выбран S3 или S4. Вспомните не обновляли ли вы случаем прошивку, т.е. BIOS (UEFI) вашей материнской платы. Не обновляли ли ядро?

Попробуйте указанные команды по ручному переводу ПК в спящий или ждущий режим, загрузитесь с другим ядром, попробуйте другую прошивку для материнской платы.

Существует ли сейчас указанный resume раздел?

"1000Mhz" написал:
Может pm-utils установить?..

Они у вас и так должны быть установлены, но в любом случае они нужны лишь для выключения, перезагрузки, перехода в ждущий и спящий режим из графической оболочки DE от непривилегированного пользователя.

02.11.2014 16:38 · отредактировано #399523
"kostik87" написал:
Они у вас и так должны быть установлены, но в любом случае они нужны лишь для выключения, перезагрузки, перехода в ждущий и спящий режим из графической оболочки DE от непривилегированного пользователя.

Попробую установить.

02.11.2014 16:43 #399524
"1000Mhz" написал:
Попробую установить.

Попробуйте конечно, но я всё же предпочёл, что бы вы попробовали способы описанные выше, для начала просто с '/sys/power/state', ну и ответили на заданные вопросы.

02.11.2014 16:52 #399526

После установки pm-utils:
[console]> systemd suspend
Excess arguments.[/console]

pm-suspend - поведение то же.
echo mem > /sys/power/state - поведение то же.

Думаю, что все-таки ошибка более тупая, и не исключено, что моя - в настройке системы (осваиваю systemd + polkit). Пока отключу тогда переход в ждущий режим, не хочу машинку просто так мучать))

02.11.2014 16:59 #399527
"1000Mhz" написал:
systemd suspend

Вообще, команда должна быть:

text

systemctl suspend
"1000Mhz" написал:
pm-suspend - поведение то же.

Логично, потому что, как я сказал, нужен только для работы из DE от непривилегированного пользователя, а раз у вас сейчас не работает suspend to disk, то и pm-utils в DE так же ничгео нового не покажут.

"1000Mhz" написал:
echo mem > /sys/power/state - поведение то же.

Это переход в ждущий режим, а не спящий (запись на диск).

"1000Mhz" написал:
Думаю, что все-таки ошибка более тупая, и не исключено, что моя - в настройке системы (осваиваю systemd + polkit). Пока отключу тогда переход в ждущий режим, не хочу машинку просто так мучать))

Вы ответите вот на эти вопросы?

"kostik87" написал:
Проверьте как настроен ACPI в BIOS (UEFI) вашей материнской платы и какой режим сейчас выбран S3 или S4. Вспомните не обновляли ли вы случаем прошивку, т.е. BIOS (UEFI) вашей материнской платы. Не обновляли ли ядро?

Попробуйте указанные команды по ручному переводу ПК в спящий или ждущий режим, загрузитесь с другим ядром, попробуйте другую прошивку для материнской платы.

Существует ли сейчас указанный resume раздел?

Покажите что выводится в dmesg при попытке выполения вот этих команд:

text

echo disk > /sys/power/state

затем смотрите что вывелось в dmesg:

text

dmesg | tail -n 30
text

systemctl suspend

и снова смотрите что вывелось в dmesg.

Вы не обновляли systemd? Попробуйте установить прошлую версию.

02.11.2014 17:09 · отредактировано #399528

kostik87, мне ждущий режим не критичен, а спящий (с записью на диск) вообще не нужен. Речь об обычном десктопе всего-то :) В BIOS настройки год не менял как минимум.

Лучше пойду почитаю документацию, чем попусту тратить время на проверку всего подряд. Но в любом случае спасибо.

02.11.2014 17:21 #399530
"1000Mhz" написал:
мне ждущий режим не критичен, а спящий (с записью на диск) вообще не нужен.

Так а зачем вы тогда создавали тему? Если вам спящий режим (с записью на диск) не нужен, тогда зачем вы вызываете команду ''systemctl suspend', ибо она как раз и переводит систему в спящий режим с записью на диск?

"1000Mhz" написал:
Лучше пойду почитаю документацию,

Это конечно похвально, но зачем в таком случае вы вообще создавали тему?

"1000Mhz" написал:
чем попусту тратить время на проверку всего подряд.

Если не хотите проверять как у вас в данный момент работают указанные функции и показывать содержимое журналов (dmesg).

Весьма непонятно. Без ваших ответов на вопросы решить проблему нельзя, здесь не телепаты.

Удачи в решении вашей проблемы.

02.11.2014 17:28 · отредактировано #399531
"kostik87" написал:
тогда зачем вы вызываете команду ''systemctl suspend', ибо она как раз и переводит систему в спящий режим с записью на диск?

Упс! Я думал это ждущий *фейспалм.жпг* Ну точно, не зря написал про чтение документации.

"kostik87" написал:
показывать содержимое журналов (dmesg)

в моем случае уже journalctl, и там ничего нет.

02.11.2014 17:38 #399535
"1000Mhz" написал:
в моем случае уже journalctl, и там ничего нет.

Измените debug level ядра, в вашем случае добавьте к параметрам ядра 'systemd.log_level=debug systemd.log_target=kmsg'.

02.11.2014 21:37 #399580
1000Mhz написал:
[quote="kostik87"]тогда зачем вы вызываете команду ''systemctl suspend', ибо она как раз и переводит систему в спящий режим с записью на диск?

Упс! Я думал это ждущий *фейспалм.жпг*[/quote]
Правильно думал. :) systemctl suspend - ждущий, systemctl hibernate - спящий.

Войдите или зарегистрируйтесь, чтобы ответить.