ACPI Wakeup

Материал из RuVDRWiki

Перейти к: навигация, поиск

Содержание

Введение

ACPI (Advanced Configuration and Power Interface) - это спецификация, которая определяет интерфейс через который соединена современная компьютерная аппаратура и операционная система. Вследствие этого операционная система не нуждается ни в каких сведениях о наличествующей аппаратуре, чтобы иметь возможность использовать эти аппаратные функции. ACPI - это совершенствование APM, PNPBIOS и других технологий. ACPI поддерживает также контроль потребления энергии, перевод компьютеров в состояние покоя и активизацию и деактивизацию устройств.

VDR и ACPI

К сожалению, в практике ACPI не всегда работает коректно с Linux. Принципиально считается, чем более актуальное в настоящее время используемое ядро (операционной системы) Linux и мат. плата включая версию BIOS, тем более перспективной является здесь запланированная затея.
Также не будем умалчивать, что в данное время поддерживается только время просыпания компьютера, день или дата не учитываются. Это значит, что компьютер будет просыпаться ежедневно в установленное время.

Установки BIOS

  • Активируйте в BIOS обязательно ACPI.
  • Деактивируйте возможно наличествующиеся функцию APM для просыпания компьютера посредством часов BIOS (RTC), например под "RTC Alarm Resume". Иначе различные функции могут мешать друг другу.

Тест

Перед тестом проверьте обязательно системное время и время установленное в BIOS.
Выполните следущую команду в консоли, подставив конечно ваше ауктуальное время:

echo "2006-10-22 23:59:59" >/proc/acpi/alarm

Проверьте также, прописалось ли время:

cat /proc/acpi/alarm

Если всё прописалось, тогда можно выключить компьютер

poweroff

и надеяться, что он проснётся в установленное время.

Инсталляция acpi-wakeup

tar xfj acpi-wakeup-0.1.tar.bz2

cd acpi-wakeup-0.1
 
gcc -o unix2iso8601 unix2iso8601.c 
 
cp unix2iso8601 /usr/bin
 
cp vdrpoweroff.sh /usr/local/bin

При этом устанавливается программка, которая пересчитывает формат времени, который использует VDR в формат системного времени. Также нужно заменить используемый до этого скрипт для выключения компьютера на тот, что поставляется с acpi-wakeup.

Закоментируйте в файле /usr/local/bin/vdrpoweroff.sh неподходящие PATH-переменные:

#!/bin/sh

## export PATH=/bin

newtime=$(($1 - 120 ))   # 2 minutes earlier
hwclock --systohc --utc
echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm
exec poweroff

Время просыпания ставится при этом на 2 минуты перед следующим запрограммированным таймером. Обратите внимание, что установки предполагают, что часы BIOS(RTC) установлены на время по GMT или UTC и не на "localtime". Такая установка имеет преимущество, так как в этом случае переход на летнее-зимнее время происходит автоматически.

Особенности

  • Если имеются проблемы с автоматическим просыпанием компьютера, тогда пропишите в скрипт время просыпания два раза:
#!/bin/sh

## export PATH=/bin

newtime=$(($1 - 120 ))   # 2 minutes earlier
hwclock --systohc --utc
echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm
echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm
exec poweroff
  • Часто компьютер забывает также время просыпания после её установки, если при выключении компьютера HW-Clock (RTC) приравнивается времени системы. В Suse данная проблема решается, закоментировав следущие строчки в /etc/init.d/boot.clock:
 
stop)
  if [ "$HOSTTYPE" != "s390" -a "$HOSTTYPE" != "s390x" ] ; then
##    echo -n "Set Hardware Clock to the current System Time"
      # write back to hardware clock and calculate adjtime
##    /sbin/hwclock --systohc $HWCLOCK
      rc_status -v -r
  fi
    ;;

Ссылки

  1. acpi-wakeup-0.1.tar.bz2
  2. Computer programmgesteuert aufwecken von Mirko Dölle
  3. Hompage проекта ACPI
  4. NVRAM_WakeUp
  5. Проекты WakeUp
  6. Включение VDR по таймеру
Личные инструменты
На других языках