Автор Тема: Simply p9 на ноутбуке HP 15s-fq2020ur. Проблемы со спящим, ждущим режимом.  (Прочитано 17188 раз)

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
У меня вторая система тоже с systemd. Там с этим всё в порядке...

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
И любопытно здесь то, что в установленной alt-p9-xfce-sysv,
на любом из ядер
# ls -1 /boot/vmlinuz-{4.19,5}*
/boot/vmlinuz-4.19.102-std-def-alt1
/boot/vmlinuz-5.10.17-un-def-alt1
/boot/vmlinuz-5.4.98-std-def-alt1

в Lenovo G50-80 с выходом из suspend и hibernate всё нормально.
Естессно resume= в /etc/sysconfig/grub2 для hibernate должен быть прописан. И здесь даже неважно если объём свопа меньше чем объём памяти.  Важно чтобы весь объём занятой памяти поместился в имеющийся своп. Причём нужно учесть и то, что если своп не один, то uuid свопа в /etc/fstab и в resume= должен совпадать.
Т.е. в системе на sysv с этим нормально. А что там в системе на systemd... Да леший его знает что там в этом systemd накрутили.
Вот с моего компьютера.
# Automaticaly update grub on device(s)
# NB: don't put /dev/mdX there but rather '/dev/sda /dev/sdb '!
#GRUB_AUTOUPDATE_DEVICE='/dev/sda '
# Use '--force' option for grub-install
#GRUB_AUTOUPDATE_FORCE='no'

# Automaticaly update config file on kernel install/removal
# default: true
GRUB_AUTOUPDATE_CFG=true

# Automaticaly updated config filename
# default: /boot/grub/grub.cfg
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg

# How to handle /boot/vmlinuz* symlinks:
# 'yes','true' - include in config
# 'no','false' - skip in config
# 'default'    - include only /boot/vmlinuz in config
# default: default
GRUB_VMLINUZ_SYMLINKS=default

# Whether to add failsafe entries:
# 'yes','true' - add for all kernels
# 'no','false' - skip for all kernels
# 'default'    - add failsafe entry only for /boot/vmlinuz
# default: default
GRUB_VMLINUZ_FAILSAFE=default

# Preload specific grub modules
#GRUB_PRELOAD_MODULES=''

# Set normal timeout
#GRUB_TIMEOUT=5

# Set hidden timeout (do not show menu)
#GRUB_HIDDEN_TIMEOUT=3

# Show timeout counter when hidden
#GRUB_HIDDEN_TIMEOUT_QUIET=TRUE

GRUB_CMDLINE_LINUX_DEFAULT=' quiet resume=/dev/disk/by-uuid/c9d12593-0627-480b-b168-5e2f3313f80d panic=30 splash'
GRUB_CMDLINE_LINUX='failsafe vga=normal'
GRUB_TERMINAL_OUTPUT='gfxterm'
GRUB_GFXMODE='800x600'
GRUB_DEFAULT='saved'
GRUB_SAVEDEFAULT=true
GRUB_WALLPAPER=/usr/share/plymouth/themes/workstation/grub.jpg
GRUB_COLOR_NORMAL=white/light-blue
GRUB_COLOR_HIGHLIGHT=black/light-gray

# This is especially important as EFI Boot Manager label
GRUB_DISTRIBUTOR="ALT Linux"

# This defines /boot/efi/EFI subdir name
GRUB_BOOTLOADER_ID="altlinux"
GRUB_THEME=/boot/grub/themes/workstation/theme.txt
GRUB_AUTOUPDATE_DEVICE='/dev/disk/by-id/wwn-0x50014ee0adbb0381 '
GRUB_AUTOUPDATE_FORCE='no'


proc /proc proc nosuid,noexec,gid=proc 0 0
devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0
tmpfs /tmp tmpfs nosuid 0 0
UUID=4a3206dd-4ace-4d5c-8415-f006bb9f5f12 / ext4 relatime 1 1
UUID=9cb74bae-9bd1-459f-b5fb-b721f8fc2fef /home ext4 nosuid,relatime 1 2
UUID=c9d12593-0627-480b-b168-5e2f3313f80d swap swap defaults 0 0
Прописан. Совпадает.
« Последнее редактирование: 05.03.2021 21:31:52 от gosts 87 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Под hibernate будет использоваться своп на sda10:
ls -l /dev/disk/by-uuid/ | grep sda10
lrwxrwxrwx 1 root root 11 мар  5 21:14 ed4b21a4-3876-457f-b5ed-bdf19da16976 -> ../../sda10
# grep ^GRUB_CMDLINE_LINUX_DEFAULT /etc/sysconfig/grub2
GRUB_CMDLINE_LINUX_DEFAULT='resume=/dev/disk/by-uuid/ed4b21a4-3876-457f-b5ed-bdf19da16976 panic=30'
# grep swap /etc/fstab
UUID=ed4b21a4-3876-457f-b5ed-bdf19da16976 swap swap defaults 0 0
UUID=8703fdd8-ff3f-4af8-af95-267ed3bc1cab swap swap defaults 0 0
# swapon
NAME       TYPE         SIZE USED PRIO
/dev/sda10 partition   10,4G   0B   -2
/dev/sdb4  partition 1004,1M   0B   -3
# head -n 2 /proc/meminfo
MemTotal:       16313000 kB
MemFree:        13074828 kB

Очевидно, что объём занятой памяти для сброса в своп на hibernate, меньше чем SwapFree незаполненного свопа:
# echo '(16313000-13074828)*1000/1024^3' | bc -l
3.01578268408775329589

И этого достаточно для hibernate, несмотря на то, что объём свопа меньше чем объём физической памяти.

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
Для меня уход компьютера в сон не так критичен. У меня десктоп. Батареи (кроме батарейки для BIOS) в нём нет, поэтому я просто выставил срок ухода монитора в спячку на максимум. А вот тем у кого ноутбуки наверняка несладко...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А вот тем у кого ноутбуки наверняка несладко...

Да там ничего сложного, даже если своп меньше физпамяти, если конечно сам хибернейт не сломан:
- Что такое занятая, что такое свободное и четыре математических действия в пределах пятого класса.
Но если со школой когда-то не слюбилось, ну значит не судьба :-)

Как пример:
У меня на sysv из hibernate нормально выходит при физпамяти в 16 гигов и свопе в 10.4 гига, - математика в пределах школы. А ресайзить разделы ради свопа, мне лень. В кранем случае можно и кеш с буферами дропнуть если не будет хватать а они распухли.
« Последнее редактирование: 06.03.2021 02:25:11 от Speccyfighter »

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
А вот тем у кого ноутбуки наверняка несладко...

Да там ничего сложного, даже если своп меньше физпамяти,
Я не о том сколько памяти и сколько Свопа, а о том, что пользователи ноутбуков частенько пользуются гибернацией. Медленнее разряжается аккумулятор и т.д.
если конечно сам хибернейт не сломан:
Кстати, подозреваю, что сломан... :rolleyes:
- Что такое занятая, что такое свободное и четыре математических действия в пределах пятого класса.
Но если со школой когда-то не слюбилось, ну значит не судьба :-)
В школе по математике всегда "хорошо" и "отлично" было...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
- Что такое занятая, что такое свободное и четыре математических действия в пределах пятого класса.
Но если со школой когда-то не слюбилось, ну значит не судьба :-)
В школе по математике всегда "хорошо" и "отлично" было...

:-) Это было не вам. А тем профессионалам, которые сначала отказались включать мозг, потом отказались писать алгоритм на бумаге или в голове и начали сразу стучать код по клавиатуре.


Да там ничего сложного, даже если своп меньше физпамяти,
Я не о том сколько памяти и сколько Свопа, а о том, что пользователи ноутбуков частенько пользуются гибернацией. Медленнее разряжается аккумулятор и т.д.
если конечно сам хибернейт не сломан:
Кстати, подозреваю, что сломан... :rolleyes:

Сначала нужно получить выводы условий удачного выполнения хибернейт, не на словах, а выводами:
- Конфиги
- SwapFree на момент hibernate
- Агрессивность заполнения физпамяти на момент hibernate
- Агрессивность заполнения своп на момент hibernate

которые позволяют использовать hibernate при свопе даже меньшем чем объём физпамяти.

Если эти условия соблюдены, то проблема однозначно в коде.


Но даже при удачном хибернейт есть засада. Профессионалы линукс, успешно превратили современный линукс в сраный виндовс:

- На хибернейт, через несколько секунд экран на секунду-две погаснет, далее рабочий стол отобразится снова, но ни на какие нажатия клавиш система не будет реагировать. В этот момент идёт сброс дампа памяти в своп. Процесс достаточно длительный, в зависимости от заполнения памяти. И пользователь может не понять что происходит с системой. В более ранние времена этот процесс проходил по-другому.
- На загрузке с выходом из хибернейт почти аналогично:
Будет только вывод лога рам-диска и дальше система как бы замрёт. В этот момент происходит восстановления памяти из своп. И этот момент в зависимости от заполнения памяти тоже может быть относительно длительным.

Причём при соблюдении условий, в которые пользователь не должен внедряться ни разу, удачный хибернейт на alt-p9-xfce-sysv, на том же Xfce что и Simply но на sysvinit, происходит даже в том случае, если объём своп меньше объёма физпамяти:

alt-p9-xfce-sysv с апдейтами
до хибернейт
# free -mw
              total        used        free      shared     buffers       cache   available
Mem:          15930        2958       10820         565          66        2085       12118
Swap:         11611           0       11611
# fdisk -l /dev/sda10 | head -n 2 # своп
Диск /dev/sda10: 10,4 GiB, 11122900992 байт, 21724416 секторов
Единицы: секторов по 1 * 512 = 512 байт

После выхода из хибернейт
# free -mw
              total        used        free      shared     buffers       cache   available
Mem:          15930        2937       10841         565          67        2084       12140
Swap:         11611           0       11611
« Последнее редактирование: 06.03.2021 16:02:58 от Speccyfighter »

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
- На хибернейт, через несколько секунд экран на секунду-две погаснет, далее рабочий стол отобразится снова, но ни на какие нажатия клавиш система не будет реагировать
Выходит, просто ждать надо?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
- На хибернейт, через несколько секунд экран на секунду-две погаснет, далее рабочий стол отобразится снова, но ни на какие нажатия клавиш система не будет реагировать
Выходит, просто ждать надо?

Чудес не бывает:
Ну да. Как в сраном виндовсе. :-)
В раннеальтовые времена, загрузка с выходом из хибернейт почти ничем не отличалась от обычной загрузки.

Уход в хибернейт с выключением компьютера, на alt-p9-xfce-sysv работающей с usb-hdd sata2 5400 RPM через usb 2.0, выполняется за 37 секунд.
Полный выход из хибернейт с автовходом в X-сессию Xfce включая поднятие беспроводной сети, выполняется за 59 секунд, с округлением до целых.

Заполнение памяти:
# free -mw
              total        used        free      shared     buffers       cache   available
Mem:          15930        3004       11772         571          55        1098       12079
Swap:         11611           0       11611
« Последнее редактирование: 06.03.2021 16:54:59 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
...
которые позволяют использовать hibernate при свопе даже меньшем чем объём физпамяти.
...

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

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
- На хибернейт, через несколько секунд экран на секунду-две погаснет, далее рабочий стол отобразится снова, но ни на какие нажатия клавиш система не будет реагировать
Выходит, просто ждать надо?
[/quote]

Ну да. Как в сраном виндовсе. :-)
[/quote]
А то, что курсор при движении мыши двигается после выхода из гибернации? Как с этим быть? Ведь выходит, что компьютер не виснет полностью...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А то, что курсор при движении мыши двигается после выхода из гибернации? Как с этим быть? Ведь выходит, что компьютер не виснет полностью...

На alt-p9-xfce-sysv, курсор может двигаться после восстановления дампа с отображением рабочего стола, но до поднятия беспроводки. Но не раньше. Очевидно почему. В системе на sysv, лог /var/log/pm-suspend.log, начиная с Awake, всем с thaw hibernate, подскажет как это происходит с последовательной отработкой хуков.
После выхода из гибернации, функциональность системы должна восстанавливаться полностью, в состояние до входа в гибернацию. Никаких наверное и может быть, здесь нет и быть не может.
« Последнее редактирование: 06.03.2021 17:21:09 от Speccyfighter »

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
И ещё, загруженную страницу можно пролистать колёсиком мыши... Странно.

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
В раннеальтовые времена, загрузка с выходом из хибернейт почти ничем не отличалась от обычной загрузки.
Я же писал, что на Восьмой платформе с этим вообще проблем не было. Подвигал мышью, экран проснулся и сразу можно работать.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Как они уже заколебали эти линуксовые специалисты:
# dmesg | grep 'hibernation\|lost' | tail -n 5
[47026.051266] PM: hibernation: hibernation exit
[48366.198543] wlan0: Connection to AP XX:XX:XX:XX:XX:XX lost
[48370.269538] wlan0: Connection to AP XX:XX:XX:XX:XX:XX lost
[48412.279249] wlan0: Connection to AP XX:XX:XX:XX:XX:XX lost
[48415.776062] wlan0: Connection to AP XX:XX:XX:XX:XX:XX lost
# iwconfig wlan0 | grep Signal
          Link Quality=68/70  Signal level=-42 dBm 

Не чини то что не сломано.
« Последнее редактирование: 06.03.2021 17:44:37 от Speccyfighter »