What is hibernation linux

Hibernate в Linux — сложно?

Ты, многоуважаемый, можешь резонно заметить, что в KDE эти самые стандартные средства есть в изобилии. Не могу не согласиться. Вот только в стандартной же комплектации эти самые средства либо не работают, либо… не буду повторяться.

При этом велосипедостроительством заниматься тоже не хотелось бы. Поэтому придется это «слепить» из того, что есть.

Для реализации задуманного нам понадобится, собственно, ядро. Я на данный момент пользуюсь версией 2.6.34. На ее примере и буду рассказывать. А поскольку хочу статью сделать полезной не только для Gentoo`шников, но и для всех, всех, всех, инструкции и ссылки: где, что, как достать для ручной сборки, так же будут представлены, где это необходимо. А чтобы не запутаться, они будут немного сдвинуты относительно остального текста.

Хочу сразу предупредить, что все нижеописанное каждый выполняет на свой страх и риск. Сломал что-то — сам виноват! Так что не помешает сделать бэкап.

1. Установка исходного кода и настройка ядра

Вместо стандартных gentoo-sources нам понадобится патченное ядро sys-kernel/tuxonice-sources. Ставим ядро:
# emerge sys-kernel/tuxonice-sources

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

Распаковываем архив (исходники ядра принято хранить в /usr/src):
# tar -xzvpf linux-2.6.34.tar.gz -C /usr/src

И для единообразия создаем симлинк:
# ln -sf /usr/src/linux-2.6.34 /usr/src/linux

Теперь нужно скачать патч TuxOnIce.

Переходим в каталог с ядром:
# cd /usr/src/linux

Накладываем патч (я для определенности буду считать, что патч лежит в /usr/src):
# bzcat /usr/src/tuxonice-3.1.1.1-for-2.6.34.patch.bz2 | patch -p1

Если исходники ядра или уже готовое ядро установлено через пакетный менеджер, то, возможно, оно уже настроено, как надо, а необходимые пакеты подтянулись по зависимостям. В противном случае требуется установить их самостоятельно. Но конфигурацию ядра придется проверить в любом случае.

Читайте также:  Просмотр сетевых адаптеров linux

Переходим в /usr/src/linux:

Запускаем конфигуратор ядра:

General setup ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support (/usr/src/linux/usr/initramfs_data.cpio.gz) Initramfs source file(s) Built-in initramfs compression mode (None) ---> Device Drivers ---> Graphics support ---> Console display driver support ---> Framebuffer Console support Support for the framebuffer splash [ ] Support for the Framebuffer Console Decorations [ ] Bootup logo --->

Чтобы обзавестись еще и красивым оформлением консоли, можно включить Support for the Framebuffer Console Decorations

Power management and ACPI options ---> [*] Power Management support [*] Suspend to RAM and standby [*] Hibernation (aka 'suspend to disk') (/dev/sda8) Default resume partition Enhanced Hibernation (TuxOnIce) ---> File Allocator Swap Allocator Compression support Userspace User Interface support [ ] Allow Keep Image Mode [*] Replace swsusp by default < >Cluster support ---> [*] Checksum pageset2 (25) Default waiting time for emergency boot messages < >Test pageflags CPU Frequency scaling ---> -*- 'performance' governor 'powersave' governor 'userspace' governor for userspace frequency scaling 'ondemand' cpufreq policy governor

Default resume partition — раздел по умолчанию, где ядро ожидает обнаружить образ системы. Это должен быть любой (если их несколько) swap-раздел жесткого диска достаточной емкости. То есть SWAP >= RAM.
CPU Frequency scaling — поддержка снижения частоты процессора для экономии батареи. Пригодится, поэтому тоже включаем.

Кроме того не помешает включить DMA для жесткого диска, если поддержка DMA еще не включена.

Device Drivers ---> DMA Engine support ---> [*] Support for DMA engines

А так же нам потребуется поддержа LZO/LZF алгоритмов сжатия, что значительно увеличит скорость засыпания и сэкономит место на жестком диске.

Cryptographic API ---> LZO compression algorithm LZF compression algorithm

Включить их надо обязательно монолитно. Иначе могут возникнуть проблемы с пробуждением.

Читайте также:  Jdk 8 alt linux

Ядро сконфигурировано. Сохраняем настройки, компилируем и устанавливем ядро:

# make modules modules_install bzImage
# mount /boot/
# cp arch/x86/boot/bzImage /boot/kernel-tuxonice-2.6.34

2. Установка и настройка дополнительных утилит

  • sys-apps/tuxonice-userui
  • sys-power/hibernate-script
  • media-gfx/splashutils
  • sys-power/pm-utils
  • kde-base/powerdevil

PowerDevil нужен больше для удобства. Соответствующие кнопки будут работать и без него. Так что можно его не устанавливать.

# emerge sys-apps/tuxonice-userui sys-power/hibernate-script media-gfx/splashutils sys-power/pm-utils kde-base/powerdevil

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

2.1 Настройка splash

В каталоге /etc/splash находятся темы для splash-utils — та самая графика, которая будет отображаться при загрузке/выключении/засыпании/пробуждении. Вы можете установить дополнительные пакеты с темами, можете создать свою. Я же воспользуюсь одной из стандартных тем для Gentoo: natural_gentoo.

Я предпочитаю все редкоизменяемые вещи монолитно компилировать в ядро. Противники этого метода могут ознакомиться с мануалами по созданию initrd. Это выходит за рамки данного поста.

Создаем образ initramfs с нашей темой:

# splash_geninitramfs -v -g /usr/src/linux/usr/initramfs_data.cpio.gz -r 1280×800 natural_gentoo

Здесь 1280×800 разрешение экрана ноутбука. Доступные разрешения можно увидеть в папке с темой. Ну а natural_gentoo — название темы.

2.2 Настройка TuxOnIce

Здесь все сводится к созданию симлинка на нужную тему. Снова используем natural_gentoo:

# ln -sfn /etc/splash/natural_gentoo /etc/splash/tuxonice

2.3 Настройка pm-utils

По умолчанию для перехода в спящий/ждущий режим pm-utils использует собственный модуль, который у меня напрочь отказался работать. К тому же он не обеспечивает необходимого нам функционала. А именно — графики. Поэтому заставляем pm-utils работать через tuxonice. Для этого в /etc/pm/conf.d/gentoo (в вашем дистрибутиве имя файла может быть иным) следующую строчку:

Мой ноутбук подключен к Интернет через ADSL модем. Поэтому при пробуждении необходимо переподключаться. Чтобы автоматизировать этот процесс создаем скрипт /etc/pm/sleep.d/50-net.sh следующего содержания:

#!/bin/sh . "$" #Disconnect from Internet net_down() < stopservice "net.ppp0" >net_up() < restartservice "net.ppp0" >case $1 in suspend|hibernate) net_down ;; resume|thaw) net_up ;; esac

Не забываем сделать его исполняемым:

Читайте также:  Linux processes using ports

# chmod +x /etc/pm/sleep.d/50-net.sh

2.4 Настройка PowerDevil

Создайте удобные для вас профили PowerDevil. Конфигуратор можно найти тут:
Параметры системы → Дополнительно → Управление питанием

3. Настройка GRUB

После того, как все установлено и настроено, нужно сконфигурировать загрузчик, чтобы наконец увидеть красивую графику.

Если /boot/ у Вас находится на отдельном разделе, обычно он не монтируется при загрузке системы. Если вы не сделали этого раньше, то сейчас самое время:

Редактируем /boot/grub/grub.conf. Используйте для этого Ваш любимый текстовый редактор. Я же предпочитаю:

В результате должно получиться что-то такое:

title TuxOnIce-Kernel-2.6.34
root (hd0,0)
kernel /boot/kernel-tuxonice-2.6.34 root=/dev/sda3 resume=swap:/dev/sda8 splash=silent,fadein,theme:natural_gentoo video=vesa:1280×800-32@60,mtrr:3,ywrap quiet CONSOLE=/dev/tty1

Пробежимся по некоторым параметрам ядра:

root=/dev/sda3 путь к корневому разделу /

resume=swap:/dev/sda8 указывает на swap-раздел, на котором хранятся данные для восстановления состояния системы.

splash=silent,fadein,theme:natural_gentoo говорит ядру использовать при загрузке тему natural_gentoo

video=vesa:1280×800-32@60,mtrr:3,ywrap — а здесь мы указываем видеорежим, в котором будет отображаться графика и используемый драйвер (в данном случае vesa)

В последний раз напоминаю про бэкап!

4. Проверка результатов.

Ну вот. Наконец все установлено, настроено. Осталось только проверить, как оно будет работать.

Если все сделано верно, Вы увидите красивую (или не очень) заставку при загрузке системы, после которой сразу приглашение Вашего DM (KDM например).
При переключении в консоль (Alt + Ctrl + F1-F6) Ваше внима
В меню завершения работы KDE теперь доступны 2 новые кнопки: Спящий режим и Ждущий режим.
Пришло время проверить их работу. В частности нас интересует режим спящий, т. к. переход в него должен сопровождаться все той же (или другой) графической заставкой.

Если все заработало, а я уверен, что иначе и быть не может, поздравляю!

Источник

Оцените статью
Adblock
detector