SUSPEND2 (Standby)

  • Для тех кто хочет попробывать что-то вроде Standby модуса.


    1) И так, устанавливаем уже пропатченное/готовое ядро (спасибо free-x):

    Исходный код
    cd /tmp
    wget http://www.free-x.de/vdr/arvdr-kernel-2.6.20.2.tar.bz2
    tar -xvjf arvdr-kernel-2.6.20.2.tar.bz2 -C /
    reboot


    2) После перезагрузки создаём ещё один swapfile для suspend2:

    Исходный код
    dd if=/dev/zero of=/var/swap_file bs=1M count=512
    mkswap /var/swap_file
    swapon /var/swap_file


    И вносим новый swap_file в /etc/fstab:

    Исходный код
    /var/swap_file  none		swap     sw                              0 0


    И перезагружаем компьютер.
    3) Аккуратное засыпание заключается в остановке процессов, отключении сетевых интерфейсов, выгрузке модулей и т.д. Всем этим занимается скрипт hibernate.
    Скачайте пакет hibernate версии 1.94-2 Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    и помесьтите его в /tmp
    Устанавливаем hibernate:

    Исходный код
    dpkg -i /tmp/hibernate_1.94-2_all.deb


    4)Настройка hibernate
    В файле /etc/hibernate/common.conf правим/изменяем/вносим следущее:

    Исходный код
    ### modules
    UnloadModules lirc_serial
    #UnloadAllModules yes
    UnloadBlacklistedModules yes
    LoadModules lirc_serial 
    # LoadModulesFromFile /etc/modules

    Исходный код
    ### network
    DownInterfaces auto
    UpInterfaces auto

    Исходный код
    ### services
    # RestartServices laptop-mode
    StopServices runvdr
    StartServices  runvdr

    В файле /etc/hibernate/suspen2.conf правим/изменяем/вносим следущее:

    Исходный код
    SuspendDevice swap:/dev/hda1:XxXXXXXX


    Вместо больших иксов вам нужно внесьти номер вашего swap_file. Его вы найдёте в /sys/power/suspend2/swap/headerlocations

    Исходный код
    cat /sys/power/suspend2/swap/headerlocations


    Далее

    Исходный код
    ## Powerdown method - 3 for suspend-to-RAM, 4 for ACPI S4 sleep, 5 for poweroff
    PowerdownMethod 5


    Исходный код
    ## For filewriter:
    FilewriterLocation /suspend_file 1000
    VerifyFilewriterResume2 yes
    Исходный код
    # Scale CPU to full speed to make sure we suspend as fast as possible.
    FullSpeedCPU yes


    5) Последнее и очень важное, настройка загрузчика GRUB
    Новому ядро необходимо передать параметр resume2, например:

    Исходный код
    title		Debian GNU/Linux, kernel 2620 Default 
    root		(hd0,0)
    kernel		/boot/vmlinuz root=/dev/hda1 ro vga=0x314 acpi=force quiet resume2=swap:/dev/hda1:XxXXXXXX
    savedefault
    boot


    Вместо больших иксов вам нужно внесьти номер вашего swap_file. Его вы найдёте в /sys/power/suspend2/swap/headerlocations

    Исходный код
    cat /sys/power/suspend2/swap/headerlocations


    Перезагружаем компьютер и пробуйте усыпить командой

    Исходный код
    hibernate


    Чтобы компьютер проснулся, нажмите просто powerbutton



    Несколько пелезных ссылок на тему suspend2:
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Желаю успехов.

  • Так похоже ни кого интереса нету?Кто ещё пробывал? какие результаты?

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем schpuntik ().

  • Какие могут быть результаты ?
    Если у меня VDR перегружается около одного раза в квартал !!!
    Кому надо при этом ловить секунды загрузки ?

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Grischenkow ().

  • Но не у всех он работает круглосуточно!У меня например загрузка длиться 1,5 мин и больше ,а сусрепдом 35 сек

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем schpuntik ().

  • Ну когда как! Ну раза 3 в день это точно а иногда и больше! Я его использую как ресивер! А не сервер и факс сервеи и прочих примочек типа рутер! Поэтому если он мне не нужен я его выключаю! Соответсвенно он должен и загружаться быстро как ресивер.

  • Цитата

    Со слов пользователя schpuntik
    Так похоже ни кого интереса нету?Кто ещё пробывал? какие результаты?


    у меня, например, после установки нового ядра перестал работать софтдевайс :( пришлось откатиться на старое ядро.

  • Было 1:15 стало 0:35. Чудесно.


    Пару замечаний: у меня 128МБ памяти, значит мне хватит
    dd if=/dev/zero of=/var/swap_file bs=1M count=128 и
    FilewriterLocation /suspend_file 128


    Хотя, как я понял, второе не надо, если первое сделал?
    Спасибо большое.

  • Вчера поставил попробовать. Я так понял, что BIOS должен поддерживать эти моди S3, S4 или S5? Мой может только S1 и S3. Попробовал в S3. Собственно работает. Теперь ведро запускается за 23 сек. 8o Но есть пару вопросов.


    1. При выполнении hibernate получаю следующее:


    Starting suspend at Thu Apr 19 14:27:08 CEST 2007
    hibernate: [01] Executing CheckLastResume ...
    hibernate: [01] Executing CheckRunlevel ...
    hibernate: [01] Executing LockFileGet ...
    hibernate: [01] Executing NewKernelFileCheck ...
    hibernate: [06] Executing Swsusp2SetupFilewriter ...
    hibernate: WARNING: Filewriter location given, but kernel does not have filewriter
    hibernate: support. Ignoring.
    ...


    2. Ведро запускается в исходном состоянии, т.е. канал, громкость и т.д. не сохраняется. Или это нормально?
    3. Наверное самое главное. Можно ли как-нибудь сделать, что-бы ведро уходило в спячку с пульта. Хотя-бы той же кнопкой PowerOff ( а лучше наверное какой-нибудь другой). А то с конзоли это делать как-то не удобно.

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем metasens ().


  • Как понимать 5 пункт, куда что прописывать?

  • Сегодня решыл попробовать suspend2


    вроде все сделал, за исключением того что версия по новее оказалась уже: 1.97 а не 1.94


    после запуска хибернате выдает ошибkу и ничего не происxодит, вот что в конзоле выдал:


    Исходный код
    arvdr:/# hibernate
    /usr/sbin/hibernate: line 1: command: gaim-remote: not found
    /usr/sbin/hibernate: line 1: command: gconftool: not found
    /usr/sbin/hibernate: line 1: command: sylpheed-claws: not found
    hibernate: Creating 1000 MB filewriter target.
    cat: /sys/power/suspend2/: Is a directory
    ABORTING: /sys/power/suspend2/ did not return a valid result.
    hibernate: Aborting.
  • chico
    Наверно версия этого скрипта не работает со старыми патчами.... попробуй другую версию. Или собери сам ядро с более свежими патчами.

  • У меня под Убунту 7.10 Gutsy hibernate работает без проблем со стандартним ядром с репозиториев. Я воспользовался с первого поста (спасибо Bikalexander), изменил только


    Исходный код
    ### modules
    UnloadModules lirc_serial em8300 b2c2_flexcop_pci
    #UnloadAllModules yes
    UnloadBlacklistedModules yes
    LoadModules lirc_serial em8300 b2c2_flexcop_pci
    # LoadModulesFromFile /etc/modules


    em8300 - ето понятно, опитним путем вияснил, что драйвер не поднимался, а b2c2_flexcop_pci - почему-то не работал после hibernate модуль моей СС2 карточки, пришлось добавить и все заработало на ура.


    Вопрос - ВДР работает от юзера vdr, поетому скрипт hibernate не срабативает (только от root) . Можна сделать чтоби нормальний юзер мог тоже оперировать етим скриптом (типа добавить в команду в command.conf)?