Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2014, à 19:39

K!rbY

[Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

Bonsoir les ubunteros !

Je vous explique ce que j'aimerais faire :
-Eteindre (ou mettre en hibernation) mon ordinateur à 3h du matin, avec repousse de 30 minutes si quelqu'un est devant l'ordinateur.
-Rallumer ce même ordinateur à 8h du matin sans que je n'aie rien à faire.

J'ai essayé de passer par le BIOS avec l'auto wake up... mais ça n'a pas marché, pourtant j'ai l'option, je ne comprends pas !

J'ai essayé de voir avec zenity comment je pouvais faire pour la fenêtre, mais... je ne comprends pas comment on peut repousser le temps, et je n'ai pas vraiment le temps de bidouiller des trucs (je pars demain matin pendant 2 semaines et je dois laisser cet ordinateur allumé toute la journée car il me sert de mini-serveur de projet).

Après pour le cron, j'ai l'impression que c'est très simple MAIS, le plus dur dans tout ça c'est de rallumer l'ordinateur, c'est pour ça que je pense que s'orienter dans le mode hibernation, c'est mieux (j'avais cru croire que c'était possible et plus facile je ne sais plus trop où).

Quelqu'un pourrait-il me mener sur la piste et si possible me faire un script ? Après le mettre au démarrage de session ça je sais faire ! Et je l'ai fait pour mon mini-serv mais c'était des scripts très basiques qui demandaient d'écrire une commande de lancement (en gros) dans urxvt (et j'ai galéré d'ailleurs parce que urxvt -e sur mon script marchait pas)

Merci d'avance et bonne soirée !

Dernière modification par K!rbY (Le 05/07/2014, à 11:40)

Hors ligne

#2 Le 04/07/2014, à 20:10

jacobus77

Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

Tu as le tutorial mythtv qui est assez complet :
http://www.mythtv.org/wiki/ACPI_Wakeup

Hors ligne

#3 Le 05/07/2014, à 00:03

K!rbY

Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

Re,

Déjà, merci pour le lien, j'ai pu comprendre directement comment le rallumer et j'ai fait un test... MERVEILLE ça se rallume big_smile

Bon sinon pour l'hibernation automatique, j'ai trouvé exactement le script qui me permet de faire ce que je veux.

Pour ceux qui rêvent d'une automatisation de l'extinction et de l'allumage de leur PC, voici un guide !

Extinction automatique

Copier ce code dans un document texte, enregistrer le document et le nommer comme vous le voudrez, dans mon cas hibernate :

#!/bin/bash
##################################################################################
## Auteur: ljere                                                                ##
## Script pour éteindre le PC automatiquement                                   ##
##################################################################################

# Sauvegarde des documents (pas fait)
while :; do
# Lancement de la commande avec grsync

# Demander si il faut bien éteindre
ans=$(zenity --question --timeout=60 --title "Extinction automatique du poste" --text  "Le PC va s'éteindre brutalement dans 60 secondes." --ok-label "Eteindre maintenant" --cancel-label "J'attends la prochaine alerte dans 30 minutes.");
if [ $? = 5 ]; then 
    dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
    exit 1
fi
    echo 'Utilisateur lance la boucle'
    sleep 1800
done

Pour ceux qui cherchent à éteindre, ou mettre en veille vous devrez remplacer la ligne :

    dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

Par l'une des lignes suivantes selon votre cas :

Mise en veille :

    dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Extinction :

    dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Ensuite, placez votre script dans /usr/bin (pas obligé mais c'est ce que j'ai fait) et rendez le exécutable par tous :

sudo chmod 755 /usr/bin/hibernate

Editez le cron avec nano (à refaire sur chaque user) :

crontab -e

Et rajoutez la ligne suivante à la fin du cron :

0 2 * * * export DISPLAY=:0.0 && /usr/bin/hibernate

(oui j'execute le script à 2 h du matin tous les jours de chaque mois)

Voilà c'est fait, votre ordinateur hibernera (ou ce que vous voudrez) automatiquement à 2h du matin, avec confirmation d'être devant l'écran (ou pas si vous ne l'êtes pas). Pour changer cette heure, changez bien sûr le 2. Et pour changer les minutes, changez le 0.

---

Allumage automatique

Si votre ordinateur a été construit à partir de 2000, normalement c'est tout bon.

Dans un premier temps tapez ceci dans votre terminal préféré :

sudo grep -i rtc /var/log/dmesg

Si vous voyez ça par exemple, c'est tout bon :

RTC can wake from S4

Les spécifications ACPI définissent les "états globaux" suivants :
-G1 Le "sommeil" se divise en quatres états, de S1 à S4.
---S1: Le CPU arrête d'exécuter des instructions.
---S2: Le CPU est off.
---S3: Suspendre dans la RAM.
---S4: Suspendre dans le disque dur (hibernation).
-G2 (S5) Soft off A peu près la même chose que G3 mais peut s'activer par une touche de clavier ou autre.
-G3 Mechanical off

(Traduction approximative)

Donc si vous avez S4 (à ce que j'ai compris dans le tuto anglais), vous pouvez allumer à partir d'une hibernation. Bingo, c'est mon cas, et j'espère le votre.

Je vous renvoie d'ailleurs à la partie Extinction. Oui car imaginons vous ne pouvez pas allumer votre PC quand il est éteint mais quand il hiberne oui. ALORS, au lieu d'éteindre votre machine, faites la hiberner (en plus, 0 consommation d'énergie, ordinateur comme éteint mais relit juste les informations à la sortie de l'hibernation pour remettre les processus sur la RAM)

Bon, c'est bien beau le blabla, mais

Dans un second temps vous allez directement regarder dans votre BIOS la mise en place d'une alarme. Ça devrait s'appeler "Wake From Alarm", "Power-on by Alarm", "Wake from RTC", "RTC Resume", etc... et ça devrait être situé dans un sous-menu du genre "Power Management Setup," "APM," "ACPI," ou "Advanced".

Vous changez les valeurs avec les flèches haut et bas (n'oubliez pas le AM et le PM) jusqu'à arriver à ce qui vous plaît.

Aussi, pensez à changer l'heure de votre BIOS (j'ai du ajouter 2 heures personnellement), souvent c'est pas la même que l'heure actuelle.

Dans un troisième et dernier temps nous allons éditer le fichier "hwclock-save.conf" contenu dans /etc/init.

Donc tapez ceci dans votre console :

gksudo gedit /etc/init/hwclock-save.conf

Normalement, il doit déjà y avoir du texte dedans. Supprimez tout et remplacez par :

# hwclock-save - save system clock to hardware clock
# hwclock-save - save system clock to hardware clock
#
# This task saves the time from the system clock back to the hardware
# clock on shutdown.

description	"save system clock to hardware clock"

start on runlevel [06]

task

script
    . /etc/default/rcS
    [ "$UTC" = "yes" ] && tz="--utc" || tz="--localtime"
    [ "$BADYEAR" = "yes" ] && badyear="--badyear"
    ACPITIME=`cat /proc/acpi/alarm`
    exec hwclock --rtc=/dev/rtc0 --systohc $tz --noadjfile $badyear
    echo "$ACPITIME" > /proc/acpi/alarm
end script

Enregistrez le fichier bien sûr.

Je n'ai pas bien compris pourquoi il fallait faire ça mais il semble que ça désactive les updates de hwclock, du coup, le BIOS garde son heure et pas de risques que l'alarme vous fourbe. (corrigez moi si je me trompe)

Et... c'est tout ! Du moins ça marche pour moi, j'espère que vous aussi !

Merci de la lecture et à bientôt !

Sources : http://www.mythtv.org/wiki/ACPI_Wakeup (Allumage)
http://forum.ubuntu-fr.org/viewtopic.php?id=1102701&p=2 (Script d'extinction)
https://bbs.archlinux.org/viewtopic.php?id=127962 (Les scripts d-bus différents)

Dernière modification par K!rbY (Le 05/07/2014, à 03:07)

Hors ligne

#4 Le 05/07/2014, à 04:12

K!rbY

Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

Bon, problème avec le crontab au final. Quand je mets
0 2 * * * export DISPLAY=:0.0 && /usr/bin/hibernate

ça ne marche pas, mais quand je mets
* * * * * export DISPLAY=:0.0 && /usr/bin/hibernate
là ça marche. Incompréhensible.

Hors ligne

#5 Le 05/07/2014, à 07:51

jplemoine

Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

Je pense que ta gestion de l'horloge du bios n'est pas correcte.
Il est normal qu'elle est 2h de retard : elle est en UTC (GMT, Heure de Greenwich)
Il faut la laisser et mettre l'alarme en UTC.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#6 Le 05/07/2014, à 11:09

K!rbY

Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe

En fait, non bizaremment ça a marché hier comme par magie à 4:15 (oui je suis resté jusque si tard, au risque d'être crevé). Pile à l'heure ou je l'avais programmé, et aucun dérèglement de l'horloge.

Mais d'un coup, c'est l'hibernation automatique qui n'a plus voulu marcher. Du coup j'ai du l'hiberner manuellement.

Ce matin réveil (à la bonne heure je pense j'avais fait des tests hier soir et la sortie d'hibernation était à l'heure prévue). En tout cas au niveau de la mise en route journalière, ça marche et j'étais content, mon script de démarrage de serveur a marché, j'ai même vu plusieurs personnes de mon projet piocher dans les fichiers mis en ligne. En regardant dans les logs même, je vois que le serveur s'est allumé à 7h. Heure prévue, parfait.

DONC, bon point ici. Mais script à revoir. Je vais me re-renseigner, après tout ce n'est pas moi qui l'ai écrit.

Dernière modification par K!rbY (Le 05/07/2014, à 11:10)

Hors ligne