Wiki

Outils pour utilisateurs

Outils du site


wakeup_shutdown

Wakeup/Shutdown et Mythwelcome

OBJECTIF

L'objectif de ce tuto est de rendre le comportement de votre mythbox identique à un magnétoscope classique, c'est à dire:

  • vous programmez votre prochain enregistrement
  • votre mythbox s'éteint
  • elle se réveille automatiquement au début de programme
  • elle s'éteint à la fin de l'enregistrement

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

PRINCIPE DU FONCTIONNEMENT

Afin que vous compreniez bien ce que je vous propose, voici les grandes lignes de ce tuto

Le réveil par l'ACPI

Le principe est simple: on va écrire une heure de réveil dans le BIOS, et celui ci se chargera de réveiller la machine à l'heure dite; La plupart des cartes mères permettent de faire ceci directement, sinon il faut utiliser l'utilitaire nv-ram

L'arrêt automatique

Cette fonctionnalité méconnue est intégrée à mythtv. Lorsque le backend détecte une absence d'activité (pas de frontend connecté, et pas d'enregistrement programmé dans les minutes qui suivent), il peut lancer une commande. Nous lui demanderons donc de faire un poweroff de la machine

Le réveil par l'ACPI

Il existe des tutos très bien fait sur le net, je vais détailler en français les opérations principales. En voici deux:

ACPI WAKE UP 1

ACPI WAKE UP 2

MYTHWELCOME

Avant de débuter, je vais juste attirer votre attention sur quelques points

Attention à votre version de noyau!

Jusqu'au 2.6.21, il faut utiliser /proc/acpi/alarm A partir du 2.6.22, c'est /sys/class/rtc/rtc0/wakealarm, mais ce n'est pas une science exacte! Certaines distributions ont conservé /proc/acpi/alarm, d'autres ont tout supprimé …….

C'est la première chose à vérifier avant de se lancer.

J'utilise par la suite /proc/acpi/alarm, à vous d'adapter.

utilisation de l'ACPI

vérifiez que l'ACPI est activé:

$powersave -S
ACPI

désactivation de hwclock update

voir hwclock_update

Vous aurez un fichier à modifier en fonction de votre distribution (utilisez kedit ou gedit, en root)

test du réveil

On arrive au premier test. On va réveiller la machine dans 5 mn.

#echo "+00-00-00 00:05:00" > /proc/acpi/alarm

On vérifie que la commande est bien prise en compte

#cat /proc/acpi/alarm

Un décalage de 1 ou 2 heures est normal.

On éteint la machine (attention, pas avec le bouton ON/OFF)

#shutdown -n -P now

Si tout va bien, la machine se réveille 5 mn plus tard.

prise en compte du fuseau horaire

votre BIOS est certainement décalé d'une heure (en hiver) par rapport à l'heure réelle, il faut créer le script mythwakeset pour en tenir compte.

Créez un fichier dans /usr/bin/mythwakeset (en root), mettez y ce script (le 2ème du message de morphinux), et rendez le exécutable.

Si vous n'avez pas un utilisateur mythtv (ce qui m'étonnerait!) adaptez le chemin du fichier temporaire

On va faire un test. Programmez une heure de réveil dans le futur avec mythwakeset, éteignez, et attendez le réveil.

#mythwakeset 2008-02-24 18:02:00

Vérifiez ensuite que tout s'est bien écrit:

#cat /proc/acpi/alarm
#cat /home/mythtv/timestamp

On éteint et on attend.

#shutdown -n -P now

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). Ajoutez la ligne suivante au fichier /etc/sudoers

mythtv  ALL = (root) NOPASSWD: /usr/bin/mythwakeset, /proc/acpi/alarm,/etc/init.d/mythtv-backend, /usr/bin/mythshutdown,/sbin/shutdown,/sbin/reboot, /sbin/poweroff

Et vous refaites la manip précedente en tant qu'utilisateur mythtv (utilisez sudo!)

La mise en veille auto

Commencez par copier votre script mythwakeset dans /usr/bin, et n'oubliez pas de le rendre exécutable.

Il faut pour cela lancer mythtv-setup, onglet 1, et aller à la page de réveil/arrêt

la commande a exécuter avant l'arrêt:

sudo mythwakeset $time

La commande d'arrêt du backend sera:

sudo shutdown -n -P now

ATTENTION: lorsque vous indiquez le format de l'heure, vérifiez bien ce que vous tapez, aucun contrôle n'est réalisé par mythtv. Si vous faites une faute de frappe, vous risquez d'avoir un format d'heure incorrect. J'ai modifié le script mythwakeset afin qu'il remette l'heure au bon format en cas de problème (merci raceme pour son aide), disponible sur demande sur le forum.

Mythwelcome

Comme expliqué, le backend va couper la machine à la fin de l'enregistrement si aucun client n'est connecté. Cela veut dire qu'aucun frontend ne doit être démarré automatiquement sur la machine!

Mais d'un autre coté, si aucun frontend n'est démarré, le backend va éteindre la machine automatiquement après son démarrage, ce qui n'est pas très pratique. C'est là qu'intervient mythwelcome (http://mythtv-fr.tuxfamily.org/wiki/mythwelcome)

Ce plugin vous permet de ne pas lancer automatiquement mythfrontend au réveil de la machine. Vous aurez à la place un écran vous donnant le statut du backend (quelle émission il enregistre par exemple), et la possibilité de lancer le frontend avec la télécommande.

Mythfilldatabase

Petit détail auquel on ne pense pas forcément: si vous avez programmé la mise à jour des programmes télé via mythfilldatabase, ça ne marchera pas car votre mythbox aura toute les chances d'être éteinte à cette heure là! La première solution consiste à programmer un enregistrement d'émission chaque semaine à la même heure, et de faire en sorte que mythfilldatabase démarre à ce moment là.

Il y a évidement beaucoup plus astucieux: installer le paquet anacron qui permet de lancer des taches programmées dans cron et qui n'auraient pas pu être lancées car la machine était éteinte. et c'est exactement ce qu'il nous faut!

Elle est pas belle la vie dans le monde du manchot …

wakeup_shutdown.txt · Dernière modification: 07/09/2012 par piratebab