Я только что установил Ubuntu 14.04 на Fujitsu Lifebook U772 после долгого перерыва с Opensuse, и после установки оказалось, что pm-suspend
работает из коробки. Однако через несколько дней настройки приостановка перестала работать, при этом пункт меню «Suspend» только приводил к тому, что экран на мгновение становился черным, а затем возвращался к экрану блокировки.
Я вручную пытался отключить аппарат от терминала, используя sudo pm-suspend
, но все еще безрезультатно. Я начал просматривать журнал pm-suspend
в /var/log/pm-suspend.log
и заметил кое-что странное:
Running hook /usr/lib/pm-utils/sleep.d/00logging suspend suspend:
Linux deathbook 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Module Size Used by
vboxpci 23194 0
vboxnetflt 27613 0
vboxnetadp 25670 0
vboxdrv 339502 3 vboxnetadp,vboxnetflt,vboxpci
pci_stub 12622 1
ctr 13049 1
ccm 17773 1
bnep 19624 2
rfcomm 69160 0
bluetooth 395423 10 bnep,rfcomm
binfmt_misc 17468 1
nls_iso8859_1 12713 1
arc4 12608 2
iwldvm 232285 0
intel_rapl 18773 0
uvcvideo 80885 0
hid_generic 12548 0
x86_pkg_temp_thermal 14205 0
videobuf2_vmalloc 13216 1 uvcvideo
intel_powerclamp 14705 0
videobuf2_memops 13362 1 videobuf2_vmalloc
coretemp 13435 0
videobuf2_core 40664 1 uvcvideo
videodev 134688 2 uvcvideo,videobuf2_core
kvm_intel 143060 0
mac80211 626557 1 iwldvm
usbhid 52570 0
kvm 451511 1 kvm_intel
i2400m_usb 36521 0
hid 106148 2 hid_generic,usbhid
i2400m 107913 1 i2400m_usb
wimax 34704 1 i2400m
crct10dif_pclmul 14289 0
snd_hda_codec_hdmi 46207 1
crc32_pclmul 13113 0
ghash_clmulni_intel 13216 0
aesni_intel 55624 2
snd_hda_codec_realtek 61438 1
aes_x86_64 17131 1 aesni_intel
i915 783703 4
snd_hda_intel 52355 3
snd_hda_codec 192906 3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
lrw 13286 1 aesni_intel
iwlwifi 169932 1 iwldvm
snd_hwdep 13602 1 snd_hda_codec
snd_pcm 102099 3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
gf128mul 14951 1 lrw
drm_kms_helper 53081 1 i915
snd_page_alloc 18710 2 snd_pcm,snd_hda_intel
snd_seq_midi 13324 0
glue_helper 13990 1 aesni_intel
drm 303102 5 i915,drm_kms_helper
cfg80211 484040 3 iwlwifi,mac80211,iwldvm
ablk_helper 13597 1 aesni_intel
snd_seq_midi_event 14899 1 snd_seq_midi
cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper
snd_rawmidi 30144 1 snd_seq_midi
i2c_algo_bit 13413 1 i915
snd_seq 61560 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 14497 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 29482 2 snd_pcm,snd_seq
mei_me 18627 0
mei 82276 1 mei_me
snd 69238 17 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
rtsx_pci_ms 18151 0
soundcore 12680 1 snd
memstick 16966 1 rtsx_pci_ms
joydev 17381 0
mac_hid 13205 0
lpc_ich 21080 0
fujitsu_laptop 18947 0
video 19476 1 i915
serio_raw 13462 0
parport_pc 32701 0
ppdev 17671 0
lp 17759 0
parport 42348 3 lp,ppdev,parport_pc
rtsx_pci_sdmmc 23274 0
e1000e 254433 0
psmouse 102222 0
ahci 25819 5
libahci 32168 1 ahci
rtsx_pci 45956 2 rtsx_pci_ms,rtsx_pci_sdmmc
ptp 18933 1 e1000e
pps_core 19382 1 ptp
total used free shared buffers cached
Mem: 3905144 2586540 1318604 356556 6452 531508
-/+ buffers/cache: 2048580 1856564
Swap: 8190472 0 8190472
/usr/lib/pm-utils/sleep.d/00logging suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00powersave suspend suspend:
/usr/lib/pm-utils/sleep.d/00powersave suspend suspend: success.
Running hook /etc/pm/sleep.d/10_grub-common suspend suspend:
/etc/pm/sleep.d/10_grub-common suspend suspend: success.
Running hook /etc/pm/sleep.d/10_unattended-upgrades-hibernate suspend suspend:
/etc/pm/sleep.d/10_unattended-upgrades-hibernate suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/50unload_alx suspend suspend:
/usr/lib/pm-utils/sleep.d/50unload_alx suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/60_wpa_supplicant suspend suspend:
Selected interface 'wlan0'
OK
/usr/lib/pm-utils/sleep.d/60_wpa_supplicant suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/75modules suspend suspend:
Unloading kernel module vboxdrv...Done.
/usr/lib/pm-utils/sleep.d/75modules suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/90clock suspend suspend:
/usr/lib/pm-utils/sleep.d/90clock suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend:
/usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95anacron suspend suspend:
stop: Unknown instance:
/usr/lib/pm-utils/sleep.d/95anacron suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95hdparm-apm suspend suspend:
/usr/lib/pm-utils/sleep.d/95hdparm-apm suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/95led suspend suspend:
/usr/lib/pm-utils/sleep.d/95led suspend suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend:
Kernel modesetting video driver detected, not using quirks.
/usr/lib/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend:
kernel.acpi_video_flags = 0
/usr/lib/pm-utils/sleep.d/99video suspend suspend: success.
Running hook /etc/pm/sleep.d/novatel_3g_suspend suspend suspend:
/etc/pm/sleep.d/novatel_3g_suspend suspend suspend: success.
Fri Jul 11 07:17:01 PHT 2014: performing suspend
sh: echo: I/O error
Fri Jul 11 07:17:03 PHT 2014: Awake.
Fri Jul 11 07:17:03 PHT 2014: Running hooks for resume
Running hook /etc/pm/sleep.d/novatel_3g_suspend resume suspend:
/etc/pm/sleep.d/novatel_3g_suspend resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/99video resume suspend:
/usr/lib/pm-utils/sleep.d/99video resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler resume suspend:
/usr/lib/pm-utils/sleep.d/98video-quirk-db-handler resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95led resume suspend:
/usr/lib/pm-utils/sleep.d/95led resume suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/95hdparm-apm resume suspend:
/dev/sda:
setting Advanced Power Management level to 0xfe (254)
APM_level = 254
/dev/sdb:
setting Advanced Power Management level to 0xfe (254)
APM_level = 254
/usr/lib/pm-utils/sleep.d/95hdparm-apm resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95anacron resume suspend:
/usr/lib/pm-utils/sleep.d/95anacron resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/94cpufreq resume suspend:
/usr/lib/pm-utils/sleep.d/94cpufreq resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/90clock resume suspend:
/usr/lib/pm-utils/sleep.d/90clock resume suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/75modules resume suspend:
Reloaded unloaded modules.
/usr/lib/pm-utils/sleep.d/75modules resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/60_wpa_supplicant resume suspend:
Selected interface 'wlan0'
OK
/usr/lib/pm-utils/sleep.d/60_wpa_supplicant resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/50unload_alx resume suspend:
/usr/lib/pm-utils/sleep.d/50unload_alx resume suspend: success.
Running hook /etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend:
/etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend: success.
Running hook /etc/pm/sleep.d/10_grub-common resume suspend:
/etc/pm/sleep.d/10_grub-common resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00powersave resume suspend:
/usr/lib/pm-utils/sleep.d/00powersave resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging resume suspend:
/usr/lib/pm-utils/sleep.d/00logging resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000record-status resume suspend:
/usr/lib/pm-utils/sleep.d/000record-status resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend:
/usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success.
Fri Jul 11 07:17:04 PHT 2014: Finished.
Точнее, именно по этим направлениям (это та часть, где система фактически выполняет приостановку) :
Fri Jul 11 07:17:01 PHT 2014: performing suspend
sh: echo: I/O error
Fri Jul 11 07:17:03 PHT 2014: Awake.
Fri Jul 11 07:17:03 PHT 2014: Running hooks for resume
Running hook /etc/pm/sleep.d/novatel_3g_suspend resume suspend:
/etc/pm/sleep.d/novatel_3g_suspend resume suspend: success.
Я думаю, что странной частью здесь является sh: echo: I/O error
, который появляется каждый раз, когда система делает приостановку, как вы можете видеть, система сразу же пробуждается после ошибки.
Я пробовал много обходных путей, которые включают следующее:
vboxdrv
Virtualbox, поскольку я читал, что они иногда мешают способности хост-машины приостановить работу /proc/acpi/wakeup
errors=remount ro
для /
в /etc/fstab
на errors=continue
Несмотря на все Тем не менее проблема сохраняется. Может ли это быть проблемой с ядром? Еще тогда, когда я все еще использовал Opensuse 12.3, я застрял в ядре 3.7, а теперь здесь, в Ubuntu 14.04, я использую ядро 3.13. Хотя я немного сомневаюсь, что проблема может заключаться в ядре, так как 3.13 вышел из коробки, и в то время приостановка работала.
ОБНОВЛЕНИЕ :
Я обнаружил, что причина эха, вызывающего сбой ввода-вывода, находится в строке 321 из /usr/lib/pm-utils/pm-functions
. Я получил это, включив подробное ведение журнала и отладку для pm-suspend
, и отключив все хуки (временно переместив их в другой каталог).
Это строка вопроса:
do_suspend() { echo -n "mem" >/sys/power/state; }
Насколько я понимаю, этот echo
имеет решающее значение, потому что это интерфейс между pm-suspend
и низкоуровневыми функциями в ядре, которые обрабатывают приостановки , Проблема в том, почему в этот момент может произойти ошибка ввода-вывода. Я попытаюсь вручную выполнить команду на терминале и посмотрим, по-прежнему ли возникает ошибка ввода-вывода.
Хорошо, мне удалось наконец найти преступника для этой проблемы, но сначала, немного фона: Я забыл упоминать, что мой ноутбук имеет гибридный жесткий диск по умолчанию. Это - регулярный механический жесткий диск на 500 ГБ, добавленный SSD на 24 ГБ, который раньше использовался Windows 8 для спящего режима и вероятно материала кэша. Я использовал SSD, чтобы спрятать мой корневой раздел прежде в OpenSUSE, пока он в конечном счете не умер (ошибки ввода-вывода полностью вниз), предложив мне переместить раздел в жесткий диск, также устанавливая Ubuntu 14.04.
Длинная короткая история: ошибки ввода-вывода я достигаю резервное устройство, были так или иначе вызваны моим дефектным SSD.
то, Что я сделал для фиксации этого, должно было удалить блочное устройство SSD от /dev
. В моем случае мой SSD всегда показывается /dev/sdb
, таким образом, я ввел следующее в терминал как корень (любезность решения эта полезная статья ):
# echo 1 > /sys/block/sdb/device/delete
убедиться заменить 'sdb' устройством Вы думаете, дефектный . У меня только есть он как /dev/sdb
, потому что, как я упомянул прежде, мой SSD всегда получает это сначала.
"удаление" сбрасывается на каждой новой начальной загрузке, поэтому что я сделал был, добавляют, что строка к моему /etc/rc.local
, который гарантирует, что /dev/sdb
будет удален при начальной загрузке. Это могло бы влияние, загружающееся со съемными дисками, вставленными на Вашей машине, но в моем случае SSD является физически частью жесткого диска так или иначе, таким образом, это автоматически добирается /dev/sdb
блочное устройство после того, как жесткий диск добирается /dev/sda
.
Та же проблема здесь: sh: echo: I/O error
в /var/log/pm-suspend.log
в 14,04 (или скорее Монетный двор 17).
Другой ответ. Я играл с 'su пополудни - в спящем режиме' вместо этого, это также перестало работать с хорошими in-your-face предупреждениями как "Замораживание задач, отказавших после... ". Затем выполнение "dmesg | меньше" и поиск с" / Замораживание" показывают отслеживание стека, включающее "предохранитель". Причина: открытая сеть монтируется в Файлах/Наутилусе/Немо. Фиксация: размонтирование в GUI. Затем используйте/etc/fstab запись вместо этого для монтирования сетевого диска. Это намного более устойчиво.
[122274.535148] Freezing user space processes ...
[122294.540137] Freezing of tasks failed after 20.009 seconds (1 tasks refusing to freeze, wq_busy=0):
[122294.540167] bash D ffff88022ec74480 0 6868 6825 0x00000004
[122294.540178] ffff88021e6ddb50 0000000000000082 ffff8800c8a9e000 ffff88021e6ddfd8
[122294.540180] 0000000000014480 0000000000014480 ffff8800c8a9e000 ffff88021f7c8660
[122294.540181] ffff880034813800 ffff88021e6ddb78 ffff88021f7c8740 ffff88021f7c8660
[122294.540183] Call Trace:
[122294.540188] [<ffffffff81723129>] schedule+0x29/0x70
[122294.540192] [<ffffffff812aaa95>] __fuse_request_send+0x115/0x280
[122294.540195] [<ffffffff810aafd0>] ? prepare_to_wait_event+0x100/0x100
[122294.540197] [<ffffffff812aac12>] fuse_request_send+0x12/0x20
Наиболее вероятная причина этой проблемы (для людей, читающих это), оставляет карту с интерфейсом USB или SD-карту подключенными в ноутбуке (не обязательно смонтированный). Размонтирование, если это смонтировалось (ошибочное средство ввода-вывода, которое маловероятно). После того как Вы рады, что это не смонтировано, удалите его и попробуйте pm-suspend
снова.
А большие слова благодарности к @rey-balgs для совместного использования его исследования (и сохранение меня много горя).
У меня была подобная проблема, и это было о: swapoff
Попытка работать:
sudo swapon -a