L'objectif de ce tuto est de rendre le comportement de votre mythbox identique à un magnétoscope classique, c'est à dire:
Afin que vous compreniez bien ce que je vous propose, voici les grandes lignes de ce tuto
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
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
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:
Avant de débuter, je vais juste attirer votre attention sur quelques points
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.
vérifiez que l'ACPI est activé:
$powersave -S ACPI
voir hwclock_update
Vous aurez un fichier à modifier en fonction de votre distribution (utilisez kedit ou gedit, en root)
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.
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
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!)
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.
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.
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 …