====== Démarrage automatique à l'heure/date ======
* Objet : Mise sous tension automatique de la machine en fonction d'une date/heure programmée.
* Niveau requis : {{tag>avisé}}
* Commentaires : Fonctionne aussi sur des machines qui n'ont **pas** dans le programme Setup du BIOS l'option "Wake on RTC".
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi :
* Création par [[user>MicP]] 09/09/2013
* **Testé sur** :
* Eee PC 900
* Eee PC 1005PE
* G53SW
* P5KPL-AM EPU
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7373 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
Je me suis retrouvé invité chez un de mes fils pour quelques temps (à Lyon).\\
Je voulais pouvoir accéder à ma machine (Toulouse) par le port 22 en ssh, mais j'avais auparavant observé plusieurs centaines de tentatives de login par jour sur ce port de ma machine.
J'ai donc décidé que ma machine ne démarrerait qu'à partir d'une date/heure.
Arrivé chez mon fils, j'ai donc eu besoin de re-programmer à distance (en CLI par ssh) la date/heure de re-démarrage auto, avant de l'arrêter avec "shutdown".\\
Certains programmes de Setup BIOS permettent de programmer une heure de démarrage,\\ **__toutefois, l'astuce fonctionne, même si cette option est absente du programme Setup du BIOS__**, (par ex: Eee PC900, G53SW etc...)
===== Utilisation =====
Si :
michel@deb9550:~$ dmesg | grep RTC
[ 0.805708] rtc_cmos 00:03: RTC can wake from S4
michel@deb9550:~$
C'est que ce qui suit sera possible.
Tout d'abord, l'accès à la RTC en lecture sur ma machine:\\
michel@deb-quad:~$ cat /proc/driver/rtc
rtc_time : 01:40:30
rtc_date : 2013-08-16
alrm_time : 01:17:31
alrm_date : 2013-08-17
alarm_IRQ : no
alrm_pending : no
update IRQ enabled : no
periodic IRQ enabled : no
periodic IRQ frequency : 1024
max user IRQ frequency : 64
24hr : yes
periodic_IRQ : no
update_IRQ : no
HPET_emulated : yes
BCD : yes
DST_enable : no
periodic_freq : 1024
batt_status : okay
Pour pouvoir écrire dans le registre de la date/heure d'alarme de la RTC, Il faut d'abord y écrire la valeur "0".\\
Ensuite, la date/heure peut lui être envoyée en nombre de secondes depuis le 01/01/1970 00:00:00 UTC.
Voici la ligne de commande qui m'a permis de re-programmer la RTC de ma machine de façon à ce qu'elle re-démarre dans les 5 minutes suivantes.\\
cat /proc/driver/rtc; echo -e "\n##############\n"; echo 0 >/sys/class/rtc/rtc0/wakealarm && echo `date '+%s' -d '+ 5 minutes'` >/sys/class/rtc/rtc0/wakealarm && cat /proc/driver/rtc
Vous pouvez changer "minutes" en "days", "hours", ou "seconds" dans << `date '+%s' -d '+ 5 minutes'` >>.\\ (voir "man date")
Juste après avoir lancé la ligne de commande ci-dessus,\\ j'ai utilisé la commande ci-dessous pour arrêter le système.
shutdown -h now
Avant :
michel@deb-quad:~$ cat /proc/driver/rtc
rtc_time : 01:47:34
rtc_date : 2013-08-16
alrm_time : 01:17:31
alrm_date : 2013-08-16
alarm_IRQ : no
alrm_pending : no
update IRQ enabled : no
periodic IRQ enabled : no
periodic IRQ frequency : 1024
max user IRQ frequency : 64
24hr : yes
periodic_IRQ : no
update_IRQ : no
HPET_emulated : yes
BCD : yes
DST_enable : no
periodic_freq : 1024
batt_status : okay
michel@deb-quad:~$
Après :
root@deb-quad:~# echo 0 >/sys/class/rtc/rtc0/wakealarm && echo `date '+%s' -d '+ 5 minutes'` >/sys/class/rtc/rtc0/wakealarm && cat /proc/driver/rtc
rtc_time : 01:49:56
rtc_date : 2013-08-16
alrm_time : 01:54:56
alrm_date : 2013-08-16
alarm_IRQ : yes
alrm_pending : no
update IRQ enabled : no
periodic IRQ enabled : no
periodic IRQ frequency : 1024
max user IRQ frequency : 64
24hr : yes
periodic_IRQ : no
update_IRQ : no
HPET_emulated : yes
BCD : yes
DST_enable : no
periodic_freq : 1024
batt_status : okay
root@deb-quad:~#
Après avoir lancé la commande,\\ ''alarm_IRQ : no''\\
a été changé en :\\
''alarm_IRQ : yes''.\\ \\ La machine a donc pu re-démarrer à l'heure prévue.
Si ''alarm_IRQ : no'' n'a pas changé, essayez en augmentant le délais comme par exemple avec "+ 121 minutes",\\
C'est ce que j'ai dû faire pour mon G53SW.
===== Liens =====
* http://www.mythtv.org/wiki/ACPI_Wakeup
* http://www.mythtv.org/wiki/Wake-on-LAN
* https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock
* http://ragsagar.wordpress.com/2011/08/15/how-to-automatically-wake-up-your-computer-at-a-particular-time-resume-by-rtc-alarm-in-arch-linux/