6

Я запускаю Debian на встроенной плате. Я хотел бы приостановить или перевести плату, скажем, в 10 часов вечера и разбудить ее в 7 часов утра. Нет проблем приостановить / спящий режим платы с помощью pmi action suspend / hibernate . Но мне интересно, можно ли запланировать, чтобы доска проснулась в определенное время (возможно, с помощью cron или чего-то еще?). Если это так, не могли бы вы объяснить все необходимые шаги, как я могу это сделать?

Обратите внимание, что можно активировать встроенную плату, используя внешний сигнал прерывания или построив простую схему с микроконтроллером, таким как PIC, таймер и реле, чтобы установить, когда нужно активировать плату. Но это не то, что я прошу. Я хотел бы узнать, есть ли в Linux какой-либо метод для выполнения операции пробуждения. На плате есть соединение WiFi и невозможно подключить другой кабель, кроме кабеля питания (не пишите о пробуждении по локальной сети).

2 ответа2

13

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

В зависимости от того, насколько глубоко спит устройство, это может быть возможно путем настройки BIOS для включения устройства в определенное время, если BIOS поддерживает такую функцию. При отключении питания вы будете непосредственно возиться с битами в памяти CMOS и надеетесь, что вы ничего не повредите, но в принципе это должно быть выполнимо, и если вам не требуется, например, устойчивость в случае обновления BIOS, это может быть даже практично. Однако это все еще зависит от того, что устройство не полностью отключено; что-то должно отслеживать системные часы реального времени и выполнять последовательность включения при достижении предварительно выбранного значения. То же самое относится и к таким методам, как Wake on LAN, Wake on Ring и т.д., Которые зависят от того, что инициирует событие включения питания. (Получу ли я понижающее голосование за то, что пишу о Wake on LAN, несмотря на то, что вы просите ответчиков не ...?)

Более того, то, что запускается в ATX (даже при нажатии кнопки питания), - это переход из одного состояния питания в другое. Единственный способ полностью отключить систему ATX - это отключить питание с помощью переключателя на блоке питания или отсоединить шнур питания. Это в отличие от блоков питания AT, которые фактически полностью отключались при выключении компьютера, потому что переключатель питания находился на одной линии со шнуром питания переменного тока так же, как переключатели питания ATX PSU (а не кнопка питания компьютера). Это на самом деле не имеет никакого значения, потому что, независимо от того, полностью ли отключено питание системы или просто запущен какой-то цикл, который ожидает, когда системные часы достигнут определенного значения, операционная система и даже процессор не работают. если он включен (что является подробностью реализации материнской платы и BIOS; возможно, они используют дополнительный, маломощный процессор только для таких простых задач), то не будет запускать установленный код, поэтому Linux нигде нет видно, что касается процессора, а тем более, чем cron.

Нижняя линия; Я был бы чрезвычайно удивлен, если то, что вы спрашиваете, выполнимо непосредственно через Linux, хотя это могло бы быть возможно, если взглянуть на более широкую картину окружающего оборудования и прошивки. Почти наверняка самая безопасная ставка - это именно тот внешний триггер, запрограммированный на отключение для запуска последовательности включения по истечении заданного интервала или в определенный момент времени (если он имеет независимый RTC).

0

Просто для тех, кто ищет это, посмотрите на интерфейс для RTC. В моей нынешней системе запись даты в будущем в /sys/class/rtc/rtc0/wakealarm заставит систему проснуться в будущем. Например:

# wake up the system in 3 minutes
sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"

Измените + 3 minutes на tomorrow 0700 близко к тому, что вы хотите, если только вы не запускаете команду после полуночи ...

Я нашел это на linux.com.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .