Вобщем попала мне приставка PSP в руки, на что обратил внимание - офигенно быстрая система засыпания.Когда был жив мой Sony Clie, я ресетом на нем пользовался в исключительных случаях - сбоях софта. А обычно просто вкл-выкл, без перезагрузки. Но там железо немного другое, при выключении память остается запитанной, просто переводим проц и другие хитрые чипы в спящий режим. И экран гасим. Конечно, это работает очень быстро. И удобно - на какой проге выключишь, на той и включишь.
В данном направлении принял решение собрать tuxonice для тестирования, что и было сделано.Наткнулся в сети на http://kerneltrap.org/node/13910 (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.
Все статьи и патчи на эту тему от 2007-8 годов. Наверно уже безнадежно устарели.Цитата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.
использование kexec состоит из (1) загрузки нового ядра в память и (2) действительная перезагрузка в него. Для (1) синтакс следующий:Так мы можем вызывать пробуждение вручную, там где нам это надо. А надо нам это делать во время работы initrd. То есть можно сделать поиск по дискам, можно спросить пользователя, а потом перезапустить ядро с указанием нужного swap-раздела или файла.
kexec -l <kernel-image> --append="<command-line-options>" --initrd=<initrd>
где <kernel-image> - ядро, предназначенное для перезагрузки, <command-line-options> - параметры, передаваемые этому ядру, <initrd> - диск, создаваемый загрузчиком в оперативной памяти.
Затем, для (2) следует написать:
kexec -e
А надо нам это делать во время работы initrdа зачем нам это надо именно в это время?
а зачем нам это надо именно в это время?Чтобы заменить или дополнить существующую систему save-файлов. Возможно, будет прирост скорости загрузки. Получится поддержка сохраненки в ядре - круто.
в параметрах tuxonice (когда конфиг ядра делается) есть пункт "при пробуждении ПК обрабатывать initrd.gz" точно помню.Я не понимаю, чем это может нам помочь. При пробуждении будет выполняться init с поиском по дискам и вопросами к пользователю? Тогда чем это будет отличаться от обычной работы фругал?
При пробуждении будет выполняться init с поиском по дискам и вопросами к пользователю?нет, будет подмонитрован нужный раздел с файлом 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, просто идет нормальная загрузка. Если я его устанавливаю (через другой дистр) - получаю картинку как выше.у тебя swap раздел сделан на флешке? я задавал значение resume=swap:/dev/sda7 непосредственно редактируя строку в grub4dos
Чего-то не выходит с kexec - Pro, можешь посмотреть конфиги ядер:конфиги у меня на работе, только на неделе смогу вытащить файлы
CONFIG_KEXEC=y ?
у тебя swap раздел сделан на флешке? я задавал значение resume=swap:/dev/sda7 непосредственно редактируя строку в grub4dosУ меня swap-файл на флешке. В другом дистре я не набираю swapon .... поэтому ничего затираться не должно.
Возможен еще вариант что когда ты грузишь сторонний дистрибутив - он подключает swap и затирает на нем данные.
конфиги у меня на работе, только на неделе смогу вытащить файлыЛучше выложи их все куда-нибудь, чтобы каждый раз тебя не дергать. Временами возникают вопросы, интересно посмотреть.
Xы застревают на взлете, как и у тебя, приходится вручную перезапускать.перед засыпанием убей xneur и gxneur может быть поможет.
Саш, я разобрался как поднимать tuxonice из initмож как нить без init обойтись?
мож как нить без init обойтись?C usb - не получается, потому что надо тупо ждать 5 секунд, прежде чем шина готова будет. С хардом можно и 0 секунд ждать, не проблема. А чем тебе init не нравится?
А чем тебе init не нравится?ждать пока распакуется неохота
насчет неготовности шины - в ядре есть параметр времени ожидания готовности usb его можно поменять, я щас 3 или 4 сек ставлюХм. Надо бы поменьше поставить попробовать. Я в init-е 5 секунд жду, если 4 ставлю - картинка как выше.
Хм. Надо бы поменьше поставить попробовать. Я в init-е 5 секунд жду, если 4 ставлю - картинка как выше.наоборот побольше поставить, Барри ставит 5 (раньше 5 и стояло но потом Линус Тольвардс и команда поставили 1 сек.)
наоборот побольше поставить, Барри ставит 5 (раньше 5 и стояло но потом Линус Тольвардс и команда поставили 1 сек.)Мне кажется, что наоборот, но в любом случае его надо поменять и посмотреть, что получится.
выложу ядро с включенных kexeсДа kexec мне не нужен, без него все пашет. Хотя на перспективу - может где и пригодится, не знаю.
mount -t proc none /proc
mount -t sysfs none /sys
########### Tuxonice wake up ##############
if [ "$tux_path" != "" -a "$tux_delay" != "" ]; then
echo -n "Tuxonice wake up..." > /dev/console
sleep $tux_delay
echo $tux_path > /sys/power/tuxonice/resume
echo 1 > /sys/power/tuxonice/do_resume
sleep 3
exit
fi
############################################
#[ -e $PMEDIA ] && usbfunc
#[ "`echo "$PMEDIA" | grep 'usb'`" != "" ] && usbfunc #Pro add here
mount -t rootfs -o remount,rw rootfs /
ln -s /proc/mounts /etc/mtab #resize2fs,e2fsck need this.
title PuppyRus 2.11 Snow Dog (Tuxonice)
find --set-root --ignore-floppies --ignore-cd /PuppyRus_2.11/initrd.gz
kernel /PuppyRus_2.11/vmlinuz pmedia=usbflash psubdir=PuppyRus_2.11 pfix=ram tux_path=swap:/dev/sdb1:0x130df8 tux_delay=5
initrd /PuppyRus_2.11/initrd.gz
/sys/power/tuxonice/fileэто видимо относится к просто файлу (не swap) да?
/sys/power/tuxonice/file/target - Location of file (nonswap) to write
image to. When written, resume= is set to matching dev/block that should
be put into resume= on kernel command line.
/sys/power/tuxonice/file/enabled
хм странно что у тебя обрабатывается initrd.gz - я вроде в конфиге ядра для tuxonice отключал эту функцию (ее конечно в настройках /sys можно включить) ты не включал случайно?Нет, я написал все, что я делаю. Swap-файл использую самый обычный - http://uco.puppyrus.org/faq/quest47.html (http://uco.puppyrus.org/faq/quest47.html)
Я как-то попробовал сделать обычную перезагрузку после hibernate-засыпания и подъема. Куча ошибок на экране и весь hibernate сбился, пришлось заново делатьвот я и думаю что мож в отдельный файл сохранять а не в swap-файл....
echo 1 > /sys/power/tuxonice/do_hibernateOK!
И самое главное - фтопку hibernate-скрипт, засыпать надо командойну тоже можно, но он еще выполняет некоторые действия для программ (для gaim например) т.е. видимо бывают проблемы, но думаю да, надо самим лучше писать систему управления с русскими коментариями и описанием
но он еще выполняет некоторые действия для программ (для gaim например)Сейчас от него больше вреда, чем пользы. Надо скрипт творчески перерабатывать или свой писать.
подключенные sfs сохраняются?Не пробовал.
Нужно мнение господа, продолжаем копать и настраивать или выкидываем?Ну, перспективы хорошие, я могу взятся за управляющую программку на tcl, но в целом требуется совместное тестирование и обдумывание, дело серьезное.
подключенные sfs сохраняются?Да. Подключал с внешнего харда.
1. keep-image mode. Включается echo 1 > /sys/power/tuxonice/keep_image У нас такого файла нет, т.к. при компиляции было выключено CONFIG_SUSPEND2_KEEP_IMAGE. Позволяет зафиксировать в имидже состояние системы и многократно к нему возвращаться. Выключение "слежения" или что-то вроде того. Фиксация, насколько я понял, произойдет в засыпании после этого включения echo 1 > ....да это типа для киосков сделано или файловых систем монтируемых только на чтение. Включить?
Все это немного не то, что хотелось бы, но может и получится построить на этом многоимиджевую систему.для начала бы хоть с одним сделать. Ты не понял концепции - в настроенной системе быстро загрузится и все. Геморрой с выбором нужного имиджа и т.п. сведет на нет весь выигрыш времени загрузки, забей и не заморачивайся.
(25) Default waiting time for emergency boot messagesон в секундах?
Надо выставить как можно больше, чтобы USB успевало сработать, тогда и в init может лезть не придется. А жесткому диску это не помешает - он раньше срабатывать будет.
Включить?Да, может пригодится. Например можно включать перед экспериментами с системой и назад откатываться.
Геморрой с выбором нужного имиджа и т.п. сведет на нет весь выигрыш времени загрузки, забей и не заморачивайся.Выбор имиджа при загрузке невозможен технически. Я просто пытаюсь понять, на что способна технология, когда лучше поймешь меньше потом переделывать приходится.
он в секундах?Точно не в секундах, за 25 секунд USB точно бы завелась. Я думаю, это миллисекунды.
а ты качал перезалитые мной файлы? там все как надо или что-то еще треба?Скачал и протестировал, вот, что заметил:
1. Нет моей вставки в init, а без нее я по прежнему не могу подняться с USB.да не поставил
3. Изменилась надпись на варнинге: Default action if you don't select one in 100 seconds: continue booting.ну да договаривались выставить побольше.
4. Нерабочий параметр resume=....тут ничо не понял, лучше стало или нет.
2. Теперь минимальный рабочий tux_delay - 7.могу уменьшить до 4 (сейчас 5 стоит) но на медленных ПК устройства не смогут инициализироваться.... хотя по идее в init же делаем паузу.... давай в 1 поставлю.
ну да договаривались выставить побольше.Да я думал, что эти цифры за другое отвечают.
тут ничо не понял, лучше стало или нет.Наверное да, получается что если не сработает параметр resume=, то пойдет обычная загрузка puppy, без всяких варнингов. Пользователь не будет пугаться.
Перезалил файлы: поставил твою вставку в init,Не пойму в чем дело, но этот initrd не находит главный sfs. Предыдущий работает нормально.
И еще у меня *.desktop в программе былfixmenus сделай
Не пойму в чем дело, но этот initrd не находит главный sfs. Предыдущий работает нормально.от блин :)
ты знаешь, я думаю это влияет параметр в 1 сек выставленный в ядре, давай верну 3 или 4 сек. Думаю ядро просто не успевает найти твою флешку....Фиг знает. У меня все на флешке, так ядро и initrd находит, а sfs никак. Ну я долго парился, и каталог по разному обзывал, и скачивал несколько раз и в инит заглядывал - ну не могу запустить и все. Со сборкой от 15-го числа никаких проблем не было, а тут полный привет.
dim-kut, а скрипт засыпания будет?Будет, но не раньше, чем через месяц.
не засыпает или надо предварительно save файл сделать? а то я без него гружусьНе знаю, но я проверял все три варианта с сейвом, работало. На флешках. Вспомнил недоработку - в моем фрагменте для меню.лст pmedia всегда usbflash :)
Не знаю, но я проверял все три варианта с сейвом, работало. На флешках. Вспомнил недоработку - в моем фрагменте для меню.лст pmedia всегда usbflashну я естественно твой вариант menu.lst не переносил, но в нем для примера подставляется путь к файлу как resume=file:uuid=123123o1230010o0:123456 и в /sys прописывается тоже значение по uuid
resume=file:uuid=123123o1230010o0:123456Первый раз такое вижу. Значения для меню.лст я беру из /sys/.... файлов согласно гентушной инструкции и у меня все было в другом формате.
знач что-то не так срабатывает, проверь на чистой загрузке без saveЕсли править меню.лст из программы, то на чистой загрузке мне непонятно где его искать. Этот вариант лучше сразу заблокировать, потом проблем меньше будет. Когда есть сохраненка, есть /mnt/home/..., тогда и настраиваем tuxonice.
добавление в menu.lst (для grub4dos) и др. загрузчики надо будет реализовывать, иначе не айс получается.Да тут с одним menu.lst столько вариантов текста может быть, про другие загрузчики вообще молчу.
т.к. файл гибернации лежит там же где и основной sfs,Почему? Я не ограничиваю пользователя, пусть делает его где хочет, проверяю только чтобы путь с /mnt/ начинался. У меня он обычно на соседней флешке создается, т.к. на системной флешке места мало. Поднимается система оттуда без проблем.
Почему? Я не ограничиваю пользователя, пусть делает его где хочет,противоречит пункту 1 концепции.
Как работать с menu.lst я разобрался, делаю. Смущает только, что в других дистрах этот файл может сильно отличаться. Или там другой загрузчик?вот поэтому и надо наверное сделать так, чтобы не пришлось делать изменения средствами установщика, пусть init скрипт ищет.
Цитата: Pro от 15 Октября 2011, 08:46:14Скрипт init ничего искать не может, мы уже говорили об этом. Свою вставку в init я могу сделать в одном-единственном месте: ПОСЛЕ монтирования /proc и /sys и ДО монтирования корневой файловой системы. Если я переношу ее ниже - просыпания не происходит, пробовал. Об этом написано в гентушной инструкции.
Геморрой с выбором нужного имиджа и т.п. сведет на нет весь выигрыш времени загрузки, забей и не заморачивайся.
Выбор имиджа при загрузке невозможен технически. Я просто пытаюсь понять, на что способна технология, когда лучше поймешь меньше потом переделывать приходится.
Тогда, если я во время настройки нахожу в этом каталоге swap- или tuxonice- файлы от предыдущих настроек, я их безжалостно стираю.swap то за что. Кстати а никак не сделать чтобы файл создавался только необходимого размера при самом процессе засыпания? А то надо будет подписать чтоб юзеры размер файла задавали не менее размера оперативки
swap то за что.Надо как-то сделать, чтобы у бестолкового юзера балласта в каталоге не оставалась. А то сделает swap-файл, а потом перенастроит. И будет большой файл балластом лежать.
Кстати а никак не сделать чтобы файл создавался только необходимого размера при самом процессе засыпания? А то надо будет подписать чтоб юзеры размер файла задавали не менее размера оперативкиСоздание файла - операция медленная, она смажет первое впечатление от hibernate для юзера, стоит ли.
я хотел чтобы для случая когда загрузка с флешки - было ожидание загрузки модуля ядра нужногоА разве ядру нужны модули для флешки? В 211 у меня работало без них, сейчас поставил 213, посмотрю.
А разве ядру нужны модули для флешки? В 211 у меня работало без них, сейчас поставил 213, посмотрю.нет не нужны, но там как раз есть цикл ожидания готовности usb устройств - т.е. параметр который ты задаешь для ожидания готовности становится не актуальным (по идее)
Надо как-то сделать, чтобы у бестолкового юзера балласта в каталоге не оставалась. А то сделает swap-файл, а потом перенастроит. И будет большой файл балластом лежать.а вот для этого, мы в начале этой темы обсуждали - куда складывать сохранение, в swap или отдельный файл.
а вот для этого, мы в начале этой темы обсуждали - куда складывать сохранение, в swap или отдельный файл.Дык, пока непонятно что из них лучше, лучше держать обе опции рабочими. Потом ненужную заблокируем.
попробую сделать ядро 3.1.1попробуй сначала из swap-раздела подняться.
проверил с патчем BFSА зачем он нам нужен?
resume почему то в init как переменная не передаетсяСтоп-стоп. resume - это параметр не для init, это параметр для ядра. Оно его узнает как свой параметр и не передает дальше в init. Ну и начинает подъем туксонайза без всякого init.
Ну и начинает подъем туксонайза без всякого init.при включенной опции обработки init (в настройках tuxonice) параметр resume может и обрабатывается но запускается init и вот из него не пробуждалось ничего.
в подсказке для добавления параметра в menu.lst ошибка, ведь вместо resume используем tux_path - вот оно меня и сбивало все времяДа, там наверно есть ошибки, но мы вроде решили при работе с встроенным жестким диском (пользователь выбирает HDD или USB) работать с параметром resume, без init, так быстрее будет.
Да, там наверно есть ошибки, но мы вроде решили при работе с встроенным жестким диском (пользователь выбирает HDD или USB) работать с параметром resume, без init, так быстрее будет.эм... не помню чтобы мы решили что-то подобное. Давай тогда распиши что делается, когда пользователь выбирает пункт что работает с USB. И при компиляции ядра обработка init для tuxonice должна быть включена или выключена?
эм... не помню чтобы мы решили что-то подобное.Ну где-то в начале этой темы ты говорил, что лучше бы обойтись без init, для скорости. Поэтому при выборе пользователем встроенного HD я подставляю параметр resume. Можно конечно использовать tux_path и tux_delay=0, но потеряем чуть времени на распаковку initrd. На первой версии ядра с туксонайз у меня работали оба варианта - с init и без.
И при компиляции ядра обработка init для tuxonice должна быть включена или выключена?Вот это не знаю.
Поэтому при выборе пользователем встроенного HD я подставляю параметр resume.А при выборе USB? что подставляем?
А при выборе USB? что подставляем?Для USB я и придумал вставку в init, чтобы выждать несколько секунд, пока USB очухается. С параметром resume с USB не поднимешься - ядро сразу запускает подъем, а шина еще не готова.
4. Нужна корректировка вставки в init чтобы при отсутствии образа resume, но при заданных tux_path не происходил выход из init скрипта а то виснет система.Можно ввести еще один параметр tux_path_check какой-нибудь, и передавать путь к файлу в init в нормальном виде, и там проверять его наличие. В случае раздела сложнее, надо подумать, может cat /proc/partitions поможет, не знаю покажет ли она swap.
4. Нужна корректировка вставки в init чтобы при отсутствии образа resume, но при заданных tux_path не происходил выход из init скрипта а то виснет система./sys/power/tuxonice/last_result -> Bit flag - if last hibernate failed, why?
2. в init скрипте заклыдваем твой код (тоже сделано, код я разместил после секции wait_usb т.е. если загрузка с диска usb то будет ожидание готовности устройства, если с HDD то не будет ожидания)
echo 1 > /sys/power/tuxonice/do_resumeОтсюда - http://ru.gentoo-wiki.com/wiki/TuxOnIce (http://ru.gentoo-wiki.com/wiki/TuxOnIce)
Это необходимо вставить после монтирования /sys, Но перед монтированием файловых систем.
У меня с tux_path=/dev/sda3 tux_delay=5 проснулся (с иксами), но тут же упал в кернел паник.По USB?
либо tuxonice пытается отключить процессы чтобы подставить те что были сохранены в hibernate файле.ага видимо так и есть, отключает а потом не может получить доступ к usb устройству и считать данные.
надо чтоб не останавливались процессыНадо чтобы прочитать оно могло с USB нормально. Тогда exit в init не будет приводить к панике т.к. в это время будет подъем системы.
пытается найти в /mnt/home файл menu.lst которого нетуМнда, получается этот вариант только для флешки, при установке puppyrus на жесткий диск там файла menu.lst нет. А есть (у меня) на отмонтированном sda1, разделе с WinXP. И как тогда быть? Монтировать все жесткие разделы и искать menu.lst? Можно на левый какой-нибудь наткнуться. Помнится, ты хотел автоматическую правку menu.lst, предложи вариант алгоритма.
все таки надо показывать что нужно прописать в загрузчик - хотя бы для контроля.Это легко, сделаю.
До задания размера файла у меня дело не дошло - из-за menu.lst (кстати странно, по идее сначала должен быть файл сделан а уж потом искать меню загрузчика)Я хотел сразу отсечь случай первой загрузки (т.е. загрузки без сохраненки).
Помнится, ты хотел автоматическую правку menu.lst, предложи вариант алгоритма.тут вопрос надо ставить так : Как и чем определить какой загрузчик используется в системе? т.е. будет известно какой загрузчик - будет ясно какой файл конфига надо искать.
тут вопрос надо ставить так : Как и чем определить какой загрузчик используется в системе? т.е. будет известно какой загрузчик - будет ясно какой файл конфига надо искать.В твоей системе где menu.lst? На sda1? Давай, я сделаю его обработку, а другие варианты буду прописывать по мере прояснения ситуации и просьбам трудящихся.
Вопрос ко всем:
1. Сообщите путь к вашему menu.lst
2. Смонтирован ли этот раздел после старта системы, по умолчанию?
/mnt/sda7/boot/grubМнда, весело. Ну я попробую сделать поиск по всем sda до 2-3 вложенных каталогов. Но если несколько menu.lst найдется, надо пользователя спрашивать, никуда не денешься.
К сожалению программа пока не умеет автоматически прописывать параметры загрузкиПри установке на хард можно научить.
При установке на хард можно научить.Не понял.
У меня в 215 заработало с tux_path=/dev/sda3, но простая загрузка/перезагрузка перестала работать.простая загрузка/перезагрузка должна работать с другим пунктом меню. Этот - только для подъема tuxonice.
Puppyrus2install генерирует menu.lst, добавить лишнюю запись не проблемаПри установке на хард можно научить.Не понял.
А /dev/sda3 - это swap-раздел или там еще номер файла дальше прописан?swap-раздел
Puppyrus2install генерирует menu.lst, добавить лишнюю запись не проблемаК сожалению это не выход. Тогда в этот момент придется полностью tuxonice настраивать и получать номер файла.
У меня нет вообще, если верить Pfind.А можно посмотреть menu.lst из этого каталога ?
http://www.mediafire.com/?v67iij6pvy0xuОтсюда ничего загрузить не удалось.
Отсюда ничего загрузить не удалось.Продублировал на ftp в /Gaff/users/dim-kut/sleepyhead
Идея такая - при настройке sleepyhead вносит строку с параметром TUX_PATH второй строкой в init.перепаковывает init чтоли?
перепаковывает init чтоли?Да. Поэтому в каталоге есть initrd_handler.
В init после строки echo 1 > /sys/power/tuxonice/do_resume (стр 378) убрал exit. Теперь при засыпании просыпается, а при перезагрузке загружается без ошибок.Спасибо. Это ощутимо помогло, но для надежной работы потребовалось еще sleep 0.1 между echo вставить.
#puppyrus2 tuxonice section
########### Tuxonice wake up ##############
if [ "$TUX_PATH" ]; then
echo " " > /dev/console
echo "Found Tuxonice settings: $TUX_PATH" > /dev/console
echo "Wake up ? ( type any char for no)" > /dev/console
read -t 1 -n1 TUX_INPUT
fi
if [ ! "$TUX_INPUT" -a "$TUX_PATH" ];then
echo "Tuxonice wake up..." > /dev/console
# if [ "$tux_delay" ]; then
# sleep $tux_delay
# fi
echo $TUX_PATH > /sys/power/tuxonice/resume
sleep 0.1
echo 1 > /sys/power/tuxonice/do_resume
#sleep 1
#exit
fi
############################################
Поздравляю, следующий этап - настройка пункта меню Пуск-Выключение-Спящий режимЭтап пройден. Sleepyhead при настройке создает этот пункт. Там в названии в скобках слово "hibernate". Вызывается скрипт do_sleep, в котором пока только одна волшебная команда. Когда не настроено, то и пункта такого нет.
Попробовал на ретро-ядре.В ретро-ядре, я так понимаю, установлен ретро-патч tuxonice. А он тоже не стоит на месте. Например этот список файлов - http://lists.freedesktop.org/archives/pm-utils/2008-January/000711.html (http://lists.freedesktop.org/archives/pm-utils/2008-January/000711.html) заметно отличается от сегодняшнего. Поэтому sleepyhead для ретро - это отдельная песня.
По поводу пункта меню, в 215 у меня и так прекрасно работает.Дядя Шурик, напиши пожалуйста подробно, что именно работает (а что нет). Мне как разработчику крайне важно это знать.
Дядя Шурик, напиши пожалуйста подробноPuppyRus215 оригинал от Pro. В menu.lst добавлен tux_path=/dev/sda3. Из init убран exit. Больше изменений нет. Кликаю "Меню - Выключение - Спящий режим" - засыпает, при запуске просыпается примерно за 5 секунд (не считая BIOS). Кликаю "Меню - Выключение - Выключение/Перезагрузка компьютера" - выключается с сохранением сессии, при запуске загружается как обычно.
Sleepyhead при настройке создает этот пункт.нет, ненадо его создавать, он должен быть виден постоянно. Т.к. спящий режим это основная фишка - прятать ненадо ничего.
p.s. Надо будет сделать, чтобы кнопка "удалить настройки" этот пункт меню удаляла. Незачем ему просто так болтаться.ненадо.
С новым sleepyhead у меня выходит в тёмный экран и больше и на что не регирует. Пришлось отключать питание.Вчера в обед скачал с ftp 215, там стоит последний вариант кода в init. (как в моем посте выше), давайте от него и отталкиваться. Контролировать работу этого кода можно с экрана, TUX_PATH выводится на экран, если он неправильный - это можно отследить. Если начался подъем туксонайз - пишется wake up ... Если все это не работает - нажмите любую клавишу когда задается вопрос и запустится загрузка "по старому".
В menu.lst добавлен tux_path=/dev/sda3Мануалы требуют формат swap:/dev/sda3. Но похоже туксонайзу без разницы.
TUX_PATH выводится на экранНе выводится, только "Wake up ?"
В старом варианте было tux_path, в новом TUX_PATH. С чем связано изменение регистра и не вызовет ли оно неудобств?TUX_PATH вносится скриптом sleepyhead напрямую в init, второй строчкой. Для этого sleepyhead перепаковывает initrd. Таким образом нет надобности прописывать tux_path в загрузчике (автоматизировать внесение параметра в grub2dos или grub имхо практически невозможно - миллион вариантов). По идее сейчас tux_path загрузчика должен игнорироваться, но возможно tux_path и TUX_PATH влияют друг на друга (я считал, что это разные переменные) и это приводит к ошибке. Надо убрать tux_path из menu.lst, настройка полностью автоматическая.
TUX_INPUT бесполезна, что ни жми грузится "просыпанием"У меня нормально работает. Только время ожидания 1 сек. Если в эту секунду что-то нажато (я нажимал символьные кнопки, с буквами, за остальные не поручусь) то идет обычная загрузка.
Время засыпания дольше чем время выключения, а время загрузки одинаковое.На всякий случай проверьте
При нажатии клавиши в момент ожидания в 1с, выскакивают какие то надписи и кернел паник, реакции на клавиатуру ни какой.В загрузчике, надеюсь tux_path не прописан? Должно быть чисто.
У меня нормально работает. Только время ожидания 1 сек.Установил 2 сек. Заработало.
В загрузчике, надеюсь tux_path не прописан? Должно быть чисто.нет не прописан.
Уже нашел решение, как заставить read читать пробел (похоже все упорно жмут его), завтра проверю до конца.Жал именно символьную кнопку.
Жал именно символьную кнопку.А что за железо? Клавиатура USB?
########### Tuxonice wake up ##############
if [ "$TUX_PATH" ]; then
echo " " > /dev/console
echo " " > /dev/console
echo "Found Tuxonice settings: $TUX_PATH" > /dev/console
echo "Press any key for return normal boot Puppy" > /dev/console
TUX_IFS=$IFS
IFS=$'\n'
read -t 2 -n 1 TUX_INPUT
if [ ! $TUX_INPUT ]; then
echo "Tuxonice wake up..." > /dev/console
# if [ "$tux_delay" ]; then
# sleep $tux_delay
# fi
echo $TUX_PATH > /sys/power/tuxonice/resume
sleep 0.1
echo 1 > /sys/power/tuxonice/do_resume
else
echo "Return normal boot Puppy" > /dev/console
fi
IFS=$TUX_IFS
fi
############################################
TUX_PATH естественно пришлось вписать в menu.lst.Зачем? Можно было настроить через sleepyhead, она бы забросила TUX_PATH в init.
А кто использует "чужой" загрузчик, так всё равно руками вписывать приходится.Ничего не приходится вписывать. Полная независимость от загрузчика.
ну это для проприетарных дров... у нас не тот случайНу а как без интел-видеомодулей загрузиться ? Пусть даже в консоль ?
причем тут интел? статья же про nvidia-drivers-270-41-06 вродеСтатья про мою ошибку. Я ее на трех DELLах наблюдаю, на всех видео Intel. Может оно и не связанно, конечно. Просто хочу проверить.
в репозитарии "215-packages" есть 2.16 и 2.17 версии, качни и проверь.Проверил. Лучше не стало. Погонял tuxonice и на десктопе с NVIDIA-32 Мб и со своп-разделом. Первый раз вроде поднялся, только Хы подвисли. Но больше укладываться не захотел - см. фото.
Зачем? Можно было настроить через sleepyhead, она бы забросила TUX_PATH в init.А затем, что sleepyhead не работает при чистой загрузке (pfix=ram). Возможность "усыпить" систему гораздо полезнее именно при чистой загрузке.
А затем, что sleepyhead не работает при чистой загрузке (pfix=ram).Это можно поправить. Сделаю.
Это можно поправить. Сделаю.Я в этом не сомневаюсь. Но гораздо проще внести исправления в puppyrus2install (см. строки 91-101)
Но гораздо проще внести исправления в puppyrus2install (см. строки 91-101)А если кто-то не пользуется инсталятором? Если создает руками каталог и копирует туда три файла? Опять же grub2 всякие - с ними что делать? Пусть руками прописывают?
Пусть руками прописывают?Зачем? Вот
#!/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
Это черновой набросок, думаю, можно сделать лучше.Ну если вы за это возьметесь, то делайте. От меня тут что-то нужно? А почему файл /tmp/swap ? Он ведь внутри сохраненки. Pro требует, чтобы swap-файл лежал в каталоге с системными файлами и это разумно, на мой взгляд.
А почему файл /tmp/swap ?Это метка, назвать можно как угодно.