Wiki

Outils pour utilisateurs

Outils du site


mythwelcome:mythwelcome

Réveil par le Bios en utilisant L'ACPI/wakealarm

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.

Pré-requis

Vous devrez avoir pris connaissance du document UTILISER VOTRE ORDINATEUR COMME UN MAGNETOSCOPE.Il résume les principes à respecter pour implémenter cette fonction.

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.

Si votre noyau Linux possède la fonction HPET et date de plus d'un an (plus vieux que la version 2.6.33), il faut la désactiver pour que le réveil fonctionne sur certaines cartes mères.

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).

Il est fortement recommandé de régler l'heure du bios sur l'heure UTC, la programmation en sera grandement facilité. Pour connaitre l'heure UTC, tapez “date -u” dans une console et comparez avec l'heure de votre bios (ouvrir votre bios pour cela).

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

Vérifier votre version de noyau.

Dans une console, tapez

    uname -a
  • Kernel < 2.6.21 voir le tutoriel wakeup_shutdown
  • Kernel > 2.6.22 continuer ce tutoriel

Vérifier la présence de /sys/class/rtc/rtc0/wakealarm

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

Règles de base

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.

Pour convertir une date au format epoch en date lisible par un humain:Convertisseur

Réalisation d'un test pour réveiller la machine dans 5 minutes

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

Attention si votre heure de bios n'est pas réglé sur l'heure UTC, vous pouvez avoir un décalage de 1 ou plusieurs heures. Dans ce cas, il faut rajouter ce décalage, faites le test en remplaçant “+ 5 minutes” par “+ 3900” (pour un décalage d'une heure 3600 secondes + 5 minutes)

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

Intégration dans mythTV

Créer le script d'écriture de l'heure

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

modifier le fichier "sudoers"

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 le mythtv-setup


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

.

configurer mythwelcome

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

mythwelcome


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

Lien pour en savoir plus

UTILISER VOTRE ORDINATEUR COMME UN MAGNETOSCOPE

Mythwelcome

ACPI Wake-up (en anglais)


Redigé par Gilles74 le 1 aout 2008, corigé le 22 aout pour tenir compte du tutoriel “Wake-up”

mythwelcome/mythwelcome.txt · Dernière modification: 25/09/2012 par gilles74