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

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

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7705
  • Репутация: +175/-2
  • Старый чайник
Re:Эксперименты с hibernate/tuxonice
« Ответ #180 : 21 Январь 2012, 19:02:31 »
Это можно поправить. Сделаю.
Я в этом не сомневаюсь. Но гораздо проще внести исправления в puppyrus2install (см. строки 91-101)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Эксперименты с hibernate/tuxonice
« Ответ #181 : 21 Январь 2012, 19:35:53 »
Но гораздо проще внести исправления в puppyrus2install (см. строки 91-101)
А если кто-то не пользуется инсталятором? Если создает руками каталог и копирует туда три файла? Опять же grub2 всякие - с ними что делать? Пусть руками прописывают?
Зачем оставлять ручную работу, когда нетрудно все автоматизировать. Перепаковка inird вполне надежно работает, за последние дни ни одной проблемы у меня с этим не было. Зачем тогда привязываться к загрузчику?

P.S. Можно реализовать оба варианта - продвинутым пользователям не перепаковывать initrd, а выдавать фрагмент для menu.lst на экран. Пусть руками прописывают.
« Последнее редактирование: 21 Январь 2012, 19:43:50 от dim-kut »
Engineering is the art of making what you want from things you can get.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7705
  • Репутация: +175/-2
  • Старый чайник
Re:Эксперименты с hibernate/tuxonice
« Ответ #182 : 22 Январь 2012, 00:33:59 »
Пусть руками прописывают?
Зачем? Вот
Код
#!/bin/sh
if [ "$(grep "TUX_PATH" /proc/cmdline)" = "" ]; then
CMDLINE=$(cat /proc/cmdline | cut -f3- -d '=')
SEDLINE=$(cat /proc/cmdline | cut -f3- -d '=' | sed 's/\//\\\//g')
PART=$(probepart)
SWAP="TUX_PATH=$(echo "$PART" | grep swap | cut -f1 -d '|' | sed 's/\//\\\//g')" || echo 1 > /tmp/swap
echo "$PART" | grep -vE 'iso9660|none|swap' | cut -f1 -d '|' | while read P; do
mount $P /mnt/data
find /mnt/data -maxdepth 3 -name grub.cfg | while read M; do
 if [ "$(cat "$M" | grep "$CMDLINE")" != "" ]; then
C=$(sed "s/$SEDLINE/$SEDLINE $SWAP/" "$M")
mv "$M" "${M}~"
echo "$C" > "$M"
 fi
 done
find /mnt/data -maxdepth 3 -name menu.lst | while read M; do
 if [ "$(cat "$M" | grep "$CMDLINE")" != "" ]; then 2>/dev/null
C=$(sed "s/$SEDLINE/$SEDLINE $SWAP/" "$M")
mv "$M" "${M}~"
echo "$C" > "$M"
 fi
 done
umount /mnt/data
done
fi
if [ ! -f /tmp/swap ]; then
echo 1 > /sys/power/tuxonice/do_hibernate
else
Xdialog --title "TuxOnIce" --msgbox "Отсутствует раздел swap.
Настройте спящий режим." 0 0
fi
-------
 Немного доработал.
« Последнее редактирование: 22 Январь 2012, 17:48:16 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Эксперименты с hibernate/tuxonice
« Ответ #183 : 22 Январь 2012, 17:06:19 »
А что это? Можно на словах объяснить? Я не настолько хорошо баш знаю. :(
Engineering is the art of making what you want from things you can get.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7705
  • Репутация: +175/-2
  • Старый чайник
Re:Эксперименты с hibernate/tuxonice
« Ответ #184 : 22 Январь 2012, 17:46:21 »
 В /proc/cmdline сохраняются загрузочные опции ядра. Если есть TUX_PATH сразу переходим к засыпанию, если нет, то запускается цикл сканирования всех разделов на наличие загрузчиков. Здесь только GRUB2 и grub4dos, но можно добавить syslinux и LILO. Далее проверяем на совпадение $CMDLINE. Если совпадает, значит загрузка произведена отсюда. Тогда дописываем в конец строки опций загрузки $SWAP (TUX_PATH=/dev/sdxx). Файл /tmp/swap создаётся при отсутствии swap-раздела и выводит предупреждение о необходимости настройки режима засыпания.
 Это черновой набросок, думаю, можно сделать лучше.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Эксперименты с hibernate/tuxonice
« Ответ #185 : 22 Январь 2012, 18:43:50 »
Это черновой набросок, думаю, можно сделать лучше.
Ну если вы за это возьметесь, то делайте. От меня тут что-то нужно? А почему файл /tmp/swap ? Он ведь внутри сохраненки. Pro требует, чтобы swap-файл лежал в каталоге с системными файлами и это разумно, на мой взгляд.
Engineering is the art of making what you want from things you can get.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7705
  • Репутация: +175/-2
  • Старый чайник
Re:Эксперименты с hibernate/tuxonice
« Ответ #186 : 22 Январь 2012, 20:47:19 »
А почему файл /tmp/swap ?
Это метка, назвать можно как угодно.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32