Ce document a pour but de détailler les opérations à effectuer pour mettre en place l'arrêt et le réveil automatique de votre ordinateur avec la nouvelle interface de l'ACPI (wakealarm) mise en place avec les noyaux 2.6.22 et plus.
Après configuration, la machine fonctionnera comme un magnétoscope. Elle s'éteindra si elle n'a rien à faire ( et si aucun frontend n'est ouvert) et se rallumera quelques minutes avant le début d'un enregistrement pour se remettre à l'arrêt en fin d'enregistrement.
Si vous souhaitez utiliser cette fonctionnalité, vous devez d'abord vous assurez que le bios de votre carte mère gère l'ACPI. Si ce n'est pas le cas, vous pouvez essayer d'utiliser le programme nvram-wakeup qui écrit directement dans la mémoire (voir le document UTILISER VOTRE ORDINATEUR COMME UN MAGNETOSCOPE). Toutes les cartes modernes supportent l'ACPI. Pour accéder à votre bios, redémarrer votre machine et suivez les indications pour entrer dans le bios. Vous devriez trouver une rubrique qui s'appelle “Power Management” “APM”, ou “Advanced” et dedans des options tel que Wake from RTC, Wake From Alarm, RTC Resume, etc. Si c'est le cas, votre Bios supporte l'ACPI. Il n'y a rien de spécial à faire dans le bios, sauf à valider le redémarrage en cas de coupure de courant.
Regardez l'heure du bios qui peut être au format UTC (Coordinated Universal Time) ou non dans ce cas vous avez en général un décalage d'une heure (en hiver).
L'interface ACPI a changée:
les noyaux 2.6.21 et précédent utilisent /proc/acpi/alarm les noyaux 2.6.22 et suivant utilisent /sys/class/rtc/rtc0/wakealarm
Dans une console, tapez
uname -a
En tapant dans une console en root
ls /sys/class/rtc/rtc0/wakealarm
Si vous n'obtenez pas de réponse, ce fichier n'existe pas. Alors vérifiez la présence de /proc/acpi/alarm (certaines distributions ont conservées cette interface sur les noyaux 2.6.22 et plus).
ls /proc/acpi/alarm
Si la réponse est favorable, reportez vous au tutoriel suivant wakeup_shutdown
Si vous ne trouvez pas /proc/acpi/alarm, ni /sys/class/rtc/rtc0/wakealarm, peut-être que le bon module n'est pas 'monté'. Dans ce cas, arrêter le module “rtc” et monter le module “rtc-cmos” en tapant dans une console en root
rmmod rtc modprobe rtc-cmos
Dans ce cas, il vous faut interdire le montage de ce module à chaque démarrage, dans une console en root, taper la commande suivante:
echo blacklist rtc >>/etc/modprobe.d/blacklist
ou ajouter dans /etc/modprobe.d/blacklist
blacklist rtc
Puis re-vérifier la présence de /sys/class/rtc/rtc0/wakealarm
Pour utiliser correctement /sys/class/rtc/rtc0/wakealarm, vous devrez respecter les 2 nouvelles règles suivantes:
1. comme format de date, wakealarm accepte le nombre de secondes depuis Jan 1, 1970. (e.g. 1214837639 = Mon Jun 30 16:54)
2. Si vous voulez changer l'heure de réveil, vous devez d'abord effacer l'ancienne.
Tapez dans une console en root (pour écrire l'heure du réveil dans le fichier wakealarm)
echo 0 > /sys/class/rtc/rtc0/wakealarm echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm
Vérifier avec la commande
cat /sys/class/rtc/rtc0/wakealarm
Cela doit vous retourner un nombre qui correspond à l'heure actuelle + 5 minutes exprimé en secondes.
Exemple pour convertir un nombre en secondes (epoc) en date et heure
date -d @1214908320 +%F" "%T 2008-07-01 12:32:00
Si l'heure de réveil est correcte, éteindre la machine en tapant:
shutdown -h now
Le réveil doit intervenir dans les 5 minutes. Vous pouvez également tester avec la procédure suivante
Exemple pour convertir une date/heure en secondes et le mettre dans wakealarm
echo 0 > /sys/class/rtc/rtc0/wakealarm date -u --date "Jul 1, 2009 10:32:00" +%s > /sys/class/rtc/rtc0/wakealarm
Vérifier le contenu de wakealarm en tapant dans la console:
cat /sys/class/rtc/rtc0/wakealarm
Créez dans /usr/local/bin un fichier sous le nom setwakeup.sh.
copier et coller le script suivant dans ce fichier
#!/bin/sh #$1 c'est l'argument du script. Il s'agit de l'heure fournie en secondes depuis 1970 #à laquelle vous souhaitez le réveil. #par exemple, /usr/bin/setwakeup.sh `date '+%s' -d '+ 5 minutes'` #doit redémarrer votre ordinateur dans 5 minutes #à utiliser pour le debug de votre script echo "$*" > /var/log/mythtv/myth.wakeup.args #à utiliser si l'heure du bios n'est pas l'heure UTC sfn=$(($1 + 0)) # remplacer 0 par votre décalage en secondes #Effacer l'ancienne heure de réveil. echo 0 > /sys/class/rtc/rtc0/wakealarm #écrire la nouvelle heure de réveil echo $sfn > /sys/class/rtc/rtc0/wakealarm
Sauvegardez dans “/usr/local/bin” et changez les permissions pour rendre ce script exécutable
chmod +x /usr/local/bin/setwakeup.sh
le fichier “sudoers” permet de pouvoir exécuter certaines commandes en se faisant passer pour root. C'est ce qu'on va faire ici, en supprimant en plus la demande de mot de passe root (Attention, ceci peut être très dangereux pour la sécurité, on ne mettra ceci en place que pour des commandes inoffensives). Attention à ne pas placer les commandes de MythTV comme mythwelcome ou mythshutdown dans le sudo : on ne veut pas exécuter ces commandes sous root ! Ajoutez la ligne suivante au fichier /etc/sudoers
%mythtv ALL=NOPASSWD: /sbin/shutdown,/sbin/poweroff,/usr/local/bin/setwakeup.sh
Configurer mythtv-setup ===⇒ Général (4 ème page) comme ci-contre:
Pas d'arrêt système avant la connexion d'un client: si coché, l'arrêt automatique est déactivé jusqu'à ce qu'un client se connecte
Idle Timeout (secondes): temps d'attente avant extinction (si réglez à 0, l'arrêt automatique est dé-activé)
Format de l'heure de réveil: respecter le format proposé, c'est le format utilisé par mythtv
Commande d'écriture de l'heure de réveil: cette commande écrit l'heure de début du prochain enregistrement dans la base de données dans le format ci dessus.
Commande d'arrêt du backend : attention à ne surtout pas placer sudo devant /usr/bin/mythshutdown comme dans l'image ci-contre. On ne veut pas lancer mythshutdown sous root ! La commande à placer est simplement :
/usr/bin/mythshutdown --shutdown
.
Lancer mythwelcome en console
mythwelcome
Puis tapez F11 et configurer comme ci-contre:
Vous définissez ici les paramètres qui permettront à Mythwelcome d'utiliser les plages d'éveil forcé.
Dans mythwelcome, tapez “i”
L'option 'démarrer automatiquement le frontend', permet de démarrer le frontend pour autant qu'il ne s'agisse pas d'un démarrage destiné à un enregistrement.
Le format de date est celui qui est utilisé dans la page 'mythwelcome' et n'a pas d'autre interaction avec le reste du processus
Voir mythwelcome pour plus d'information sur l'utilisation de Mythwelcome.
Avec la télécommande, tapez “enter” pour lancer le frontend
ou tapez “info” pour accéder aux options de mythwelcome.
ou tapez “M” ou “Menu” pour accéder aux options de sortie
UTILISER VOTRE ORDINATEUR COMME UN MAGNETOSCOPE
ACPI Wake-up (en anglais)
Redigé par Gilles74 le 1 aout 2008, corigé le 22 aout pour tenir compte du tutoriel “Wake-up”