Сайт | Скачать | Видео | Wiki

Автор Тема: Эксперименты с hibernate/tuxonice  (Прочитано 41379 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Эксперименты с hibernate/tuxonice
« : 30 Сентябрь 2011, 16:08:38 »
мне опять скучно, какой я провокатор можете здесь отписать или в личку если что ;)

Я уже часть этого расписывал Ddshurick может и всех заинтересует.......
Вобщем попала мне приставка PSP в руки, на что обратил внимание - офигенно быстрая система засыпания. Т.е. по сути дела ОС не выгружается и восстановление очень быстрое. В данном направлении принял решение собрать tuxonice для тестирования, что и было сделано.

Следующая мысля, о том что 6 из 10 проблем - это хреновая работа xorg. Траблы с настройкой и т.п. бякой чес слово задолбали, универсальности нет, что не радует абсолютно :( Посему возникли мысли об альтернативе:
1. Переход на wayland (для версии 211 все нужное выложено в gaff)
2. Переход на mini-xwin (но модуль ядра проприетарный и сможем ли мы уговорить разработчиков сделать для нас неизвестно) НО написать письмо разработчикам с просьбой - от нас не убудет и по голове не ударят. Неизвестно будет ли оно работать на всех видеокартах в различных разрешениях.
3. Засунуть в дистриб нечто вроде xorg из дистрибутива TinyCoreLinux (он там вроде боле-мене универсальный на базе xvesa сделан .....)

Что нам дает отказ от xorg: нехилое уменьшение размера дистрибутива, ускорение загрузки, упрощение настройки, отсутствие 3D и ускорения.
« Последнее редактирование: 12 Октябрь 2011, 11:39:25 от Zay »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #1 : 30 Сентябрь 2011, 16:59:03 »
Вобщем попала мне приставка PSP в руки, на что обратил внимание - офигенно быстрая система засыпания.
Когда был жив мой Sony Clie, я ресетом на нем пользовался в исключительных случаях - сбоях софта. А обычно просто вкл-выкл, без перезагрузки. Но там железо немного другое, при выключении память остается запитанной, просто переводим проц и другие хитрые чипы в спящий режим. И экран гасим. Конечно, это работает очень быстро. И удобно - на какой проге выключишь, на той и включишь.
« Последнее редактирование: 30 Сентябрь 2011, 17:00:57 от dim-kut »
Engineering is the art of making what you want from things you can get.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #2 : 04 Октябрь 2011, 17:27:37 »
В данном направлении принял решение собрать tuxonice для тестирования, что и было сделано.
Наткнулся в сети на http://kerneltrap.org/node/13910

Цитата
Kexec base hibernation has some potential advantages over uswsusp and
TuxOnIce (suspend2). Some most obvious advantages are:

1. The hibernation image size can exceed half of memory size easily.
2. The hibernation image can be written to and read from almost
   anywhere, such as USB disk, NFS.
Толком не разбирался еще, но выглядит заманчиво ...
Engineering is the art of making what you want from things you can get.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #3 : 06 Октябрь 2011, 09:07:16 »
Цитата
Цитата
Kexec base hibernation has some potential advantages over uswsusp and
TuxOnIce (suspend2). Some most obvious advantages are:

1. The hibernation image size can exceed half of memory size easily.
2. The hibernation image can be written to and read from almost
   anywhere, such as USB disk, NFS.
Толком не разбирался еще, но выглядит заманчиво ...
Все статьи и патчи на эту тему от 2007-8 годов. Наверно уже безнадежно устарели.

По поводу tuxonice я тут вот что подумал: Механизм kexec позволяет делать горячий перезапуск ядра. И, что важно - со своей строкой параметров:
Цитата
использование kexec состоит из (1) загрузки нового ядра в память и (2) действительная перезагрузка в него. Для (1) синтакс следующий:
kexec -l <kernel-image> --append="<command-line-options>" --initrd=<initrd>
где <kernel-image> - ядро, предназначенное для перезагрузки, <command-line-options> - параметры, передаваемые этому ядру, <initrd> - диск, создаваемый загрузчиком в оперативной памяти.
Затем, для (2) следует написать:
kexec -e
Так мы можем вызывать пробуждение вручную, там где нам это надо. А надо нам это делать во время работы initrd. То есть можно сделать поиск по дискам, можно спросить пользователя, а потом перезапустить ядро с указанием нужного swap-раздела или файла.

Но остается проблема - tuxonice не хочет работать с USB. По этому поводу нашел только
http://lists.tuxonice.net/pipermail/tuxonice-devel/2009-March/005112.html
Непонятно, сделал это Найджел или нет. Лучше наверное с ним списаться.
« Последнее редактирование: 06 Октябрь 2011, 09:11:37 от dim-kut »
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #4 : 06 Октябрь 2011, 11:22:28 »
А надо нам это делать во время работы initrd
а зачем нам это надо именно в это время?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #5 : 06 Октябрь 2011, 11:58:53 »
а зачем нам это надо именно в это время?
Чтобы заменить или дополнить существующую систему save-файлов. Возможно, будет прирост скорости загрузки. Получится поддержка сохраненки в ядре - круто.

Просто иначе я вообще не вижу смысла возится с hibernation-ами, т.к. все они заточены под обычные full-линуксы. Ну сделаем, потратим много времени и сил, а работать будет только с хардом и пользоваться этим будет несколько человек. Надо ли?
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #6 : 06 Октябрь 2011, 14:22:01 »
в параметрах tuxonice (когда конфиг ядра делается) есть пункт "при пробуждении ПК обрабатывать initrd.gz" точно помню.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #7 : 08 Октябрь 2011, 15:57:52 »
в параметрах tuxonice (когда конфиг ядра делается) есть пункт "при пробуждении ПК обрабатывать initrd.gz" точно помню.
Я не понимаю, чем это может нам помочь. При пробуждении будет выполняться init с поиском по дискам и вопросами к пользователю? Тогда чем это будет отличаться от обычной работы фругал?

Я писал об обратном - чтобы мы (в init) вызывали пробуждение через kexec, а не оно нас.
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #8 : 08 Октябрь 2011, 16:56:29 »
При пробуждении будет выполняться init с поиском по дискам и вопросами к пользователю?
нет, будет подмонитрован нужный раздел с файлом hibernate и запущена процедура восстановления сессии
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #9 : 08 Октябрь 2011, 23:51:32 »
Вот картинка, которую я вижу, если пытаюсь подцепить swapfile на флешке. То же и со swap-разделом. Если продолжить загрузку - не находится главный sfs и вылет в init-консоль.

Pro, ты говорил, тебе удалось проснуться - расскажи подробно, по шагам, плиз.
« Последнее редактирование: 08 Октябрь 2011, 23:54:16 от dim-kut »
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #10 : 09 Октябрь 2011, 07:43:55 »
Да вроде все просто было:
1. выставил сжатие попроще в настроках (в /sys )
2. дал hibernate команду
3. при загрузке указал параметр resume=/dev/sda8 (мой раздел swap)

оно вжик и восстановилось
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #11 : 09 Октябрь 2011, 09:41:50 »
Со строчкой resume=... я загрузится не могу, а если гружусь без нее, hibernate мне сообщает вот что:
Код
# hibernate
/usr/share/hibernate/scriptlets.d/gaim: line 6: command: gaim-remote: not found
/usr/share/hibernate/scriptlets.d/galeon: line 6: command: gconftool: not found
/usr/share/hibernate/scriptlets.d/pidgin: line 7: command: purple-remote: not found
/usr/share/hibernate/scriptlets.d/sylpheed_claws: line 6: command: sylpheed-claws: not found
You haven't specified a resume=/resume2= parameter on your kernel command line

Your GRUB or LILO config should have something like resume=swap:/dev/hdaX
where /dev/hdaX is your swap partition. You will then need to either reboot
after doing so or set it manually (this time only) using:
    echo swap:/dev/hdaX > /sys/power/tuxonice/resume
hibernate: Aborting.
#
Я пробую сделать как он советует:
Код
# 
# swapon /mnt/home/swapfile
# echo swap:/dev/sdb1:0x1ec5e8 > /sys/power/tuxonice/resume
# cat  /sys/power/tuxonice/resume
swap:/dev/sdb1:0x1ec5e8
Если теперь набрать hibernate - компьютер нормально засыпает на флешку, видны все этапы.

Проснутся он оттуда не может, поскольку в menu.lst не установлен параметр resume, просто идет нормальная загрузка. Если я его устанавливаю (через другой дистр) - получаю картинку как выше. 

То есть с засыпанием на USB-диск проблемы нет, непонятно как будить его. Как вариант - через kexec.

Цитата
нет, будет подмонитрован нужный раздел с файлом hibernate и запущена процедура восстановления сессии
Я совсем не представляю как этим управлять. Объясни подробнее или ткни, где это написано.
Engineering is the art of making what you want from things you can get.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Концепция нуна, вектор и все такое
« Ответ #12 : 09 Октябрь 2011, 10:26:37 »
Чего-то не выходит с kexec - Pro, можешь посмотреть конфиги ядер:
CONFIG_KEXEC=y ?
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #13 : 09 Октябрь 2011, 10:27:12 »
Я совсем не представляю как этим управлять. Объясни подробнее или ткни, где это написано.
нигде не написано, это надо писать самим


Проснутся он оттуда не может, поскольку в menu.lst не установлен параметр resume, просто идет нормальная загрузка. Если я его устанавливаю (через другой дистр) - получаю картинку как выше.
у тебя swap раздел сделан на флешке? я задавал значение resume=swap:/dev/sda7 непосредственно редактируя строку в grub4dos
Возможен еще вариант что когда ты грузишь сторонний дистрибутив - он подключает swap и затирает на нем данные.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
  • Автор темы
Re:Концепция нуна, вектор и все такое
« Ответ #14 : 09 Октябрь 2011, 10:28:10 »
Чего-то не выходит с kexec - Pro, можешь посмотреть конфиги ядер:
CONFIG_KEXEC=y ?
конфиги у меня на работе, только на неделе смогу вытащить файлы
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.