LINUX.ORG.RU

suspend-to-ram & xorg


0

1

Всем привет.

suspend-to-ram работает из консоли: на pm-suspend засыпает и просыпается отлично, когда иксы выключены.

suspend-to-ram работает из консоли даже когда иксы запущены, но при этом по ctrl+alt+fN я находился в момент вызова pm-suspend в tty. После сна можно по ctrl+alt+fN вернутся в иксы, и они продолжат работать как ни в чем ни бывало.

Если же suspend-to-ram вызывать из иксов, то после сна изображение на экране замирает, но отображается. Клавиатура доступна, драйвера устройств и все такое - доступны. Пытался вводить пароль в блокировщик экрана (от любой DE, не важно, даже просто xorg пустой без всего тоже зависает аналогично) вслепую - не получается. По ctrl+alt+fN зависает уже намертво и клавиатура перестает отвечать.

Gentoo. HP Pavilion g7.

Некоторые данные + логи:

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Thames XT [Radeon HD 7670M]
2 видеокарты, включена дискретная + fglrx.

Часть лога после в момент просыпания:

Sep 28 00:46:34 fillo-laptop kernel: [ 3809.184112] EXT4-fs (dm-1): re-mounted. Opts: commit=0
Sep 28 00:46:35 fillo-laptop kernel: [ 3809.386452] EXT4-fs (dm-2): re-mounted. Opts: commit=0
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.641439] PM: Syncing filesystems ... done.
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.827402] Freezing user space processes ... (elapsed 0.01 seconds) done.
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.838863] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.849906] Suspending console(s) (use no_console_suspend to debug)
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.850108] sd 0:0:0:0: [sda] Synchronizing SCSI cache
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.850177] sd 0:0:0:0: [sda] Stopping disk
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.890831] wlo1: deauthenticating from f8:1a:67:ec:b0:78 by local choice (reason=3)
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.904064] cfg80211: Calling CRDA to update world regulatory domain
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.911086] i8042 aux 00:07: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.911099] i8042 kbd 00:06: System wakeup enabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.923919] <6>[fglrx] IRQ 47 Disabled
Sep 28 00:46:44 fillo-laptop kernel: [ 3809.923971] <6>[fglrx] Preparing suspend fglrx in kernel.
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.543991] <6>[fglrx] Suspending fglrx in kernel completed.
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.543992] <6>[fglrx] Power down the ASIC .
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.554718] PM: suspend of devices complete after 2701.896 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.554876] PM: late suspend of devices complete after 0.155 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.555086] r8169 0000:08:00.0: System wakeup enabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.566130] ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.577097] ehci-pci 0000:00:1a.0: System wakeup enabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.587813] xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.598788] PM: noirq suspend of devices complete after 43.861 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.599240] ACPI: Preparing to enter system sleep state S3
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.601064] PM: Saving platform NVS memory
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.601947] Disabling non-boot CPUs ...
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.603130] smpboot: CPU 1 is now offline
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.604100] ACPI: Low-level resume complete
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.604147] PM: Restoring platform NVS memory
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.604721] Enabling non-boot CPUs ...
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.604752] smpboot: Booting Node 0 Processor 1 APIC 0x2
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.618265] CPU1 is up
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.619472] ACPI: Waking up from system sleep state S3
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.711180] xhci_hcd 0000:00:14.0: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.722407] ehci-pci 0000:00:1a.0: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.744411] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.789511] PM: noirq resume of devices complete after 100.086 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.789601] PM: early resume of devices complete after 0.070 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.789620] i915 0000:00:02.0: setting latency timer to 64
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.790267] xhci_hcd 0000:00:14.0: setting latency timer to 64
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.790411] ehci-pci 0000:00:1a.0: setting latency timer to 64
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.790516] snd_hda_intel 0000:00:1b.0: irq 45 for MSI/MSI-X
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.790672] ehci-pci 0000:00:1d.0: setting latency timer to 64
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.790697] ahci 0000:00:1f.2: setting latency timer to 64
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.793166] r8169 0000:08:00.0: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.797631] <6>[fglrx] Power up the ASIC
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.797705] <6>[fglrx] Preparing resume fglrx in kernel.
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.799080] [drm] Wrong MCH_SSKPD value: 0x16040307
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.799081] [drm] This can cause pipe underruns and display issues.
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.799081] [drm] Please upgrade your BIOS to fix this.
Sep 28 00:46:44 fillo-laptop kernel: [ 3812.851213] i8042 kbd 00:06: System wakeup disabled by ACPI
Sep 28 00:46:44 fillo-laptop kernel: [ 3813.006564] usb 2-1.5: reset high-speed USB device number 3 using ehci-pci
Sep 28 00:46:44 fillo-laptop kernel: [ 3813.052601] <6>[fglrx] Resuming fglrx in kernel completed.
Sep 28 00:46:44 fillo-laptop kernel: [ 3813.052647] <6>[fglrx] IRQ 47 Enabled
Sep 28 00:46:44 fillo-laptop kernel: [ 3813.108557] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
Sep 28 00:46:44 fillo-laptop kernel: [ 3813.111072] ata5.00: configured for UDMA/100
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.728546] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.844350] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.847315] ata1.00: configured for UDMA/100
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.858507] sd 0:0:0:0: [sda] Starting disk
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.873051] PM: resume of devices complete after 2081.275 msecs
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.873249] Restarting tasks ... done.
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.881295] video LNXVIDEO:00: Restoring backlight state
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.882122] video LNXVIDEO:01: Restoring backlight state
Sep 28 00:46:44 fillo-laptop wpa_cli: interface wlo1 DISCONNECTED
Sep 28 00:46:44 fillo-laptop wpa_cli: executing 'false /etc/init.d/net.wlo1 --quiet stop' failed
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.973164] EXT4-fs (dm-1): re-mounted. Opts: commit=0
Sep 28 00:46:44 fillo-laptop kernel: [ 3814.977572] EXT4-fs (dm-2): re-mounted. Opts: commit=0
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.946203] wlo1: authenticate with f8:1a:67:ec:b0:78
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.949542] wlo1: send auth to f8:1a:67:ec:b0:78 (try 1/3)
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.951444] wlo1: authenticated
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.952496] wlo1: associate with f8:1a:67:ec:b0:78 (try 1/3)
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.956186] wlo1: RX AssocResp from f8:1a:67:ec:b0:78 (capab=0x431 status=0 aid=1)
Sep 28 00:46:45 fillo-laptop kernel: [ 3815.956302] wlo1: associated
Sep 28 00:46:45 fillo-laptop wpa_cli: interface wlo1 CONNECTED
Sep 28 00:46:45 fillo-laptop wpa_cli: executing '/etc/init.d/net.wlo1 --quiet start' failed
Sep 28 00:46:58 fillo-laptop logger: ACPI event unhandled: button/mute MUTE 00000080 00000000 K
Sep 28 00:46:58 fillo-laptop logger: ACPI event unhandled: button/mute MUTE 00000080 00000000 K
Sep 28 00:46:58 fillo-laptop logger: ACPI event unhandled: button/mute MUTE 00000080 00000000 K
Sep 28 00:46:59 fillo-laptop logger: ACPI event unhandled: button/mute MUTE 00000080 00000000 K
Sep 28 00:46:59 fillo-laptop logger: ACPI event unhandled: button/mute MUTE 00000080 00000000 K
Эвенты про кнопку MUTE были получены уже после зависания, что говорит о том, что замирают только иксы, но в их логах вообще ничего необычного. Лог абсолютно ничем не отличается от лога при старте иксов. EE в нем нет, никакой софт не падает (segfault, etc).

Если кто обратил внимание на «Wrong MCH_SSKPD value: 0x16040307», то аналогичная строчка есть всегда. Пытался гуглить в ее сторону, но безуспешно.

pm-suspend.log

Initial commandline parameters: 
Blacklisting 01grub.
Blacklisting 90clock.
Сб. сент. 28 00:46:34 MSK 2013: Running hooks for suspend.
Running hook /usr/lib64/pm-utils/sleep.d/00logging suspend suspend:
Linux fillo-laptop 3.10.7-gentoo-fillo #10 SMP PREEMPT Mon Sep 23 00:17:26 MSK 2013 x86_64 Intel(R) Pentium(R) CPU B960 @ 2.20GHz GenuineIntel GNU/Linux
Module                  Size  Used by
fglrx                5087097  -2 
r8169                  46165  -2 
i2c_i801                8272  -2 
             total       used       free     shared    buffers     cached
Mem:       3937740    2209004    1728736          0      97432     600844
-/+ buffers/cache:    1510728    2427012
Swap:      1000444          0    1000444

/usr/lib64/pm-utils/sleep.d/00logging suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/00powersave suspend suspend:
Blacklisting 01grub.
Blacklisting 90clock.

/usr/lib64/pm-utils/sleep.d/00powersave suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/01grub suspend suspend:

/usr/lib64/pm-utils/sleep.d/01grub suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/49bluetooth suspend suspend:

/usr/lib64/pm-utils/sleep.d/49bluetooth suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/75modules suspend suspend:

/usr/lib64/pm-utils/sleep.d/75modules suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/90clock suspend suspend:

/usr/lib64/pm-utils/sleep.d/90clock suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/94cpufreq suspend suspend:

/usr/lib64/pm-utils/sleep.d/94cpufreq suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/95led suspend suspend:

/usr/lib64/pm-utils/sleep.d/95led suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend:
Kernel modesetting video driver detected, not using quirks.

/usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/99video suspend suspend:
kernel.acpi_video_flags = 0

/usr/lib64/pm-utils/sleep.d/99video suspend suspend: success.
Сб. сент. 28 00:46:35 MSK 2013: performing suspend
Сб. сент. 28 00:46:44 MSK 2013: Awake.
Сб. сент. 28 00:46:44 MSK 2013: Running hooks for resume
Running hook /usr/lib64/pm-utils/sleep.d/99video resume suspend:

/usr/lib64/pm-utils/sleep.d/99video resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler resume suspend:

/usr/lib64/pm-utils/sleep.d/98video-quirk-db-handler resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/95led resume suspend:

/usr/lib64/pm-utils/sleep.d/95led resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/94cpufreq resume suspend:

/usr/lib64/pm-utils/sleep.d/94cpufreq resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/90clock resume suspend:

/usr/lib64/pm-utils/sleep.d/90clock resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/75modules resume suspend:
Reloaded unloaded modules.

/usr/lib64/pm-utils/sleep.d/75modules resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/49bluetooth resume suspend:

/usr/lib64/pm-utils/sleep.d/49bluetooth resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/01grub resume suspend:

/usr/lib64/pm-utils/sleep.d/01grub resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/00powersave resume suspend:
Blacklisting 01grub.
Blacklisting 90clock.

/usr/lib64/pm-utils/sleep.d/00powersave resume suspend: success.
Running hook /usr/lib64/pm-utils/sleep.d/00logging resume suspend:

/usr/lib64/pm-utils/sleep.d/00logging resume suspend: success.
Сб. сент. 28 00:46:44 MSK 2013: Finished.
Тоже ничего необычного.


У меня была точь-в-точь такая же проблема. Появлялась когда как... Решил ее переходом на просто настраиваемый и надежный hibernate-script.
Вообще, с pm-utils у меня чудеса творились - бывало, после сна вдруг начинал корректно работать индикатор wifi, который у меня обычно горит постоянно.

batekman ★★★ ()
Ответ на: комментарий от Extraterrestrial

systemd мне понравился своей интеграцией и скоростью загрузки, а не перешел я на него по следующим причинам:

  • нежелание осиливать переход;
  • неправославность;
  • с eudev у меня более корректно начинают работать кнопки Fn+*, тогда как c systemd'шным udev'ом Fn+F1, например, начинает флудить знаком «±».
batekman ★★★ ()
Ответ на: комментарий от Extraterrestrial

Разве что по мнению некоторых аналитиков ЛОРа (таких как AX).

То, что systemd уныл, а его автор — криворукий школьник, известно всем и каждому. Неслучайно в дистрах, где заботятся о стабильности (таких как дебиан), systemd никогда не будет основной системой инициализации.

AX ★★★★★ ()

Емнип в hibernate-script можно указывать модули, которые необходимо выгрузить перед „засыпанием“. И именно эта фича зачастую решает.

init_6 ★★★★★ ()
Ответ на: комментарий от AX

таких как дебиан

systemd в дебиане не по дефолту не потому что он какой-то плохой, а потому то у дебиана кроме Linux еще есть другие ядра, на которых systemd не взлетает. И тем не менее, пакет systemd в дебиане есть. Есть даже статья в его вики о том, как его завести.

известно всем и каждому.

Известно лишь то, что ты просто его не осилил.

Extraterrestrial ★★★★★ ()
Последнее исправление: Extraterrestrial (всего исправлений: 1)
Ответ на: комментарий от Extraterrestrial

а потому то у дебиана кроме Linux еще есть другие ядра

Это просто повод, чтобы не тащить к себе это УГ. Не могут же майнтайнеры в открытую сказать, что поццеринг идиот. :)

ты просто его не осилил.

Почему-то всегда, когда речь заходит о каком-то неудобном поделии (systemd или gnome-shell). я вижу эту стандартную фразу.

*смотрит на название раздела* Впрочем, спорить с поццерингофагами всё равно бессмысленно, тем более здесь не толксы.

AX ★★★★★ ()
Ответ на: комментарий от batekman

Огромное спасибо, hibernate-script помог.

Насчет вашего холивара о systemd. Лично мне он не нужен, т.к. в Gentoo openrc (и он клевый, кстати; тоже создает ощущение целостности и допиленности). Из других ОС я тоже что-то использую (Ubuntu, Arch Linux, Debian, CentOS, CRUX), так там либо свои поделки, либо init. И в любом случае я не испытывал никакой нужды в другой системе инициализации, особенно на серверах, где, имхо, systemd не просто не нужен, а еще и overhead. Лапши из BSD-like инициализации не боюсь, т.к. если все грамотно делать, то будет красиво, просто и понятно, а более 95% фишек systemd просто не нужны (лично мне). К Леннарту как к программисту отношусь параллельно, сталкивался с PulseAudio и все успешно настроил в принципе. Нравится, что он основательно и по-своему подходит к разработке, даже сообщения об ошибках сразу дают понять, что это он кодил.

Так что нет здесь никаких проблем, главное - есть выбор. Мне нравится BSD-like init (идеально для меня - это как в CRUX), systemd - даже проще, один раз доки прочитал, все скрыто от пользователя. Ну да, не по идеологии, слишком много фишек, которые не нужны и репутация автора противоречивая, но тут все сами выбирают - свобода opensource. Либо ощущение целостности, либо сам себе дистростроитель.

Не нравится только стиль продвижения systemd. Не очень круто пытаться объявлять его зависимостями DE (WTF?!?!?!) или интегрировать с udev. Должен быть выбор.

Так что я не понял, о чем у вас спор конкретно.

fillo ()
Ответ на: комментарий от fillo

Лично мне он не нужен

Да и мне :)

тоже создает ощущение целостности и допиленности

Вся фишка в том, что systemd умеет некоторые вещи, с которыми при обычной системе инициализации приходится скрестись по всему /etc. То же засыпание у него по какой-то своей системе (правда, не уверен, совместимо ли оно с tuxonice). Действие при нажатии power, открытии/закрытии крышки, автоматически работающие права пользователя на спящий режим, перезагрузку и выключение через logind как в X, так и через systemctl - всё это в одном целом. В общем, init+ConsoleKit+polkit+acpi+pm-utils...=systemd.

Arch Linux

Там уже тоже systemd по умолчанию.

сталкивался с PulseAudio и все успешно настроил в принципе.

Как я с этой пульсой не бился, всё равно звук заикается. Но, опять же, вкусность - возможность централизованной настройки звука для каждого приложения (ради которой я и возился).

Так что я не понял, о чем у вас спор конкретно.

Да так, ни о чём, просто пара постов слабенького холивара.

batekman ★★★ ()
Ответ на: комментарий от batekman

Мне тоже PulseAudio для этого нужен, плюс простой путь заставить сливаться все в какой-либо sink (в моем случае это jack), т.к. не все приложения джекифицированные.

Хотел тут спросить еще.. я использую kde в данный момент, нужно hibernate-script туда впилить. Сделал скрипт для /etc/pm/sleep.d, в котором вписал для suspend/hibernate убивать pm-* и запускать hiberntate/hibernate-ram. Вроде все работает. Есть более красивые пути? Ну, на всякий случай, вдруг я тут набыдлокодил.

fillo ()
Ответ на: комментарий от fillo

Должна подействовать замена симлинков pm-* на hibernate*, хотя это тоже скорее хак.
Можно залезть в кишки кедам и там всё поправить, а ещё лучше - сделать эти варианты считываемыми из конфигов (желательно с возможностью добавления новых) и выложить патч - вот это будет по-мужски :)
Ну или обертку запилить...
Люблю openbox - что поставил в меню, то и вызывается.

batekman ★★★ ()
Ответ на: комментарий от batekman

Пожалуй, способ с /etc/pm/sleep.d самый красивый. Насчет патчить KDE - это overkill, т.к. hibernate-script - это, скорее, продвинутый костыль. Да и что-то мне подсказывает, что скоро все будут сидеть на systemd на десктопах.

fillo ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.