2011-09-25

Despertador para Linux

NOTA: esta versão do script programa sempre para o dia a seguir; ou seja, se programarem depois da meia noite ele programa não para a manhã seguinte (p.ex.) mas para a segunda manhã. Eu depois corrijo isso.

Na sequência do post Como arrancar o computador a uma hora determinada deixo aqui o código para um despertador.

Assume a existência do ficheiro ~/musicaClassica/Richard Wagner - The ride of the Valkyries from Die Walkure.flv .

Quem não quiser tem sempre outras hipóteses como substituir a parte do vlc por
aplay /dev/urandom
para ouvir estática gerada pelo vosso computador em tempo real ^^




#!/bin/sh
# FIXME: setting after midnight doesn't work as expected

FICHEIRO="$HOME/musicaClassica/Richard Wagner - The ride of the Valkyries from Die Walkure.flv"

setRTC() {
 sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
 sudo sh -c "echo `date '+%s' -d "tomorrow $1"` > /sys/class/rtc/rtc0/wakealarm"
 cat /sys/class/rtc/rtc0/wakealarm
}


if [ $# -eq 0 ]
then
 echo "Usage: `basename $0` horaDoDespertador [ficheiroATocar]"
 exit -1
fi

if [ $# -eq 2 ]
then
 FICHEIRO=$2
fi

if [ ! -f "$FICHEIRO" ]
then
 echo O ficheiro para despertar não existe ou está mal configurado
 exit -2
fi

setRTC $1
sudo pm-hibernate

sleep 30
vlc --repeat "$FICHEIRO"



AVISO: isto hiberna o computador imediatamente a seguir.



Requisitos:
  • computador com ACPI
  • Linux kernel > 2.6.22
Potenciais problemas:
  • pode haver conflito com o HPET Timer
  • pode haver desactivação do alarme ao actualizar a hora na BIOS (coisa que os Linux fazem ao encerrar) -- no meu caso não houve problema com isso
  • este e outros têm solução em ACPI Wakeup .

2 comments:

Anonymous said...

The ride of the Valkyries? Interesting choice :P

Sintra said...

ahahahah acordar a ouvir isso, que brutal!