Pagina 1 di 1
Eseguire script al cambio di alimentazione.
Inviato: giovedì 14 ottobre 2010, 21:21
da Pedro.zena
Ciao a tutti.
Ho il seguente problema.
Vorrei sapere come posso far eseguire un file sh con all'interno alcuni semplici comandi al cambio di alimentazione del mio portatile (Batteria / rete elettrica).
All'inizio avevo pensato ad utilizzare laptop-mode che aveva le cartelle apposta dove mettere gli script da eseguire. Purtroppo non posso installarlo altrimenti non riesco ad ibernare il portatile.
Ho allora pensato a toccare qualcosa sotto /etc/acpi/event, soltanto che leggendo su internet si fa riferimento alle cartella ac.d e battery.d, non presenti nel mio sistema (ubuntu 10.10).
C'è un unico file power.sh:
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/policy-funcs
if [ -z "$*" ] && ( [ `CheckPolicy` = 0 ] || CheckUPowerPolicy ); then
exit;
fi
pm-powersave $*
Come posso fare per eseguire questi script?
Re: Eseguire script al cambio di alimentazione.
Inviato: venerdì 15 ottobre 2010, 21:42
da Pedro.zena
so che è brutto, ma non trovo niente da nessuna parte, quindi.... up :'(
Re: Eseguire script al cambio di alimentazione.
Inviato: sabato 16 ottobre 2010, 16:15
da Pedro.zena
up
Re: Eseguire script al cambio di alimentazione.
Inviato: domenica 17 ottobre 2010, 14:03
da Pedro.zena
up
Re: Eseguire script al cambio di alimentazione.
Inviato: lunedì 18 ottobre 2010, 20:10
da Pedro.zena
up
Re: Eseguire script al cambio di alimentazione.
Inviato: martedì 19 ottobre 2010, 12:40
da vda
dai un'occhiata allo script seguente: forse può esserti utile. Io lo utilizzo con Cron per il CPU scaling.
Ciao,
Codice: Seleziona tutto
#!/bin/bash
#
# Script per la gestione del risparmio energetico: imposta la frequenza di CPU in modo differente a seconda che il pc sia alimentato da rete
# elettrica o da batteria.
#
# Per eventuali modifiche seguire la sintassi del comando cpufreq-selector:
#
# cpufreq-selector [-c numero_di_cpu] [-g governor(=ondemand/powersave/conservative/performance)] [-f frequenza_in_KHz]
#
# Può essere utile far esguire lo script
# 1. All'avvio del sistema, per impostare da subito ed in maniera definitiva una determinata frequenza di CPU.
# In tal caso:
# - assicurarsi che lo script sia eseguibile
# - includere lo script nell'elenco delle applicazioni d'avvio
# - disattivare (cambiandolo di nome o rendendolo non eseguibile) lo script /etc/init.d/ondemand.
# 2. Ad intervalli regolari di tempo, per monitorare lo stato del sistema ed adeguare in conseguenza la frequenza di CPU.
# In questo caso è possibile pianificare l'esecuzione dello script attraverso Cron:
# - verificare che il servizio Cron sia attivo attraverso il comando
# sudo service cron status
# - assicurarsi che lo script sia eseguibile
# - all'interno di una sessione bash eseguire
# sudo crontab -e
# - pianificare l'esecuzione dello script (qui si assume una volta al minuto) digitando al termine del file
# * * * * * sh path_dello_script/energy_saver.sh
# - aggiungere al file una o più righe vuote
# - salvare e chiudere (in sequenza Ctrl+O Enter Ctrl+X)
# - riavviare il servizio Cron attraverso il comando
# sudo service cron restart
var=`cat /proc/acpi/ac_adapter/AC/state`
if [ "$var" = "state: on-line" ]
then
cpufreq-selector -c 0 -g ondemand
else
cpufreq-selector -c 0 -g powersave
fi
exit 0
Re: Eseguire script al cambio di alimentazione.
Inviato: mercoledì 20 ottobre 2010, 15:02
da Pedro.zena
umh.. intanto grazie per la risposta

in effetti è quello che cercavo.. mi piacerebbe però trovare un metodo non-polling.. cioè senza utilizzare cron, voglio dire, non esiste una qualche directory o un qualche script che parte in automatico al cambio di alimentazione? eventualmente modificherei quello
Re: Eseguire script al cambio di alimentazione.
Inviato: mercoledì 20 ottobre 2010, 21:41
da vda
Meravigliato del particolare "appetito di batteria" di Ubuntu, anch'io ho cercato a lungo un'applicazione che gestisca in modo automatico ed efficace il risparmio energetico. In effetti, sembra che in ambiente KDE la gestione dell'alimentazione sia ottima e particolarmente configurabile, mentre, con Gnome, lo stesso aspetto è un po' carente (almeno a partire da Ubuntu 10.04). Di qui la necessità di provvedere attraverso script.
Ad ogni modo, se trovi di meglio, fammi senz'altro sapere: la cosa interessa anche me!
Ciao,
Re: Eseguire script al cambio di alimentazione.
Inviato: giovedì 21 ottobre 2010, 16:17
da The Elle
vda ha scritto:
dai un'occhiata allo script seguente: forse può esserti utile. Io lo utilizzo con Cron per il CPU scaling.
Ciao,
Codice: Seleziona tutto
#!/bin/bash
#
# Script per la gestione del risparmio energetico: imposta la frequenza di CPU in modo differente a seconda che il pc sia alimentato da rete
# elettrica o da batteria.
#
# Per eventuali modifiche seguire la sintassi del comando cpufreq-selector:
#
# cpufreq-selector [-c numero_di_cpu] [-g governor(=ondemand/powersave/conservative/performance)] [-f frequenza_in_KHz]
#
# Può essere utile far esguire lo script
# 1. All'avvio del sistema, per impostare da subito ed in maniera definitiva una determinata frequenza di CPU.
# In tal caso:
# - assicurarsi che lo script sia eseguibile
# - includere lo script nell'elenco delle applicazioni d'avvio
# - disattivare (cambiandolo di nome o rendendolo non eseguibile) lo script /etc/init.d/ondemand.
# 2. Ad intervalli regolari di tempo, per monitorare lo stato del sistema ed adeguare in conseguenza la frequenza di CPU.
# In questo caso è possibile pianificare l'esecuzione dello script attraverso Cron:
# - verificare che il servizio Cron sia attivo attraverso il comando
# sudo service cron status
# - assicurarsi che lo script sia eseguibile
# - all'interno di una sessione bash eseguire
# sudo crontab -e
# - pianificare l'esecuzione dello script (qui si assume una volta al minuto) digitando al termine del file
# * * * * * sh path_dello_script/energy_saver.sh
# - aggiungere al file una o più righe vuote
# - salvare e chiudere (in sequenza Ctrl+O Enter Ctrl+X)
# - riavviare il servizio Cron attraverso il comando
# sudo service cron restart
var=`cat /proc/acpi/ac_adapter/AC/state`
if [ "$var" = "state: on-line" ]
then
cpufreq-selector -c 0 -g ondemand
else
cpufreq-selector -c 0 -g powersave
fi
exit 0
perchè usi cron? lo stesso script non funziona senza eseguirlo una volta al minuto?
Re: Eseguire script al cambio di alimentazione.
Inviato: giovedì 21 ottobre 2010, 17:07
da vda
The Elle ha scritto:
perchè usi cron? lo stesso script non funziona senza eseguirlo una volta al minuto?
Mi fa piacere che lo script susciti tanto interesse. Se comunque leggi le note all'interno dello stesso script, vedrai che vengono indicate due modalità di utilizzo:
- la prima imposta la frequenza di CPU una volta per tutte all'avvio del sistema;
- la seconda, attraverso Cron, controlla ad intervalli prefissati lo stato di alimentazione del pc ed adegua in conseguenza la frequenza di CPU al fine di risparmiare batteria.
Fra le due modalità, personalmente, preferisco la seconda perchè, con modestissimo aggravio per il sistema, consente di collegarsi / scollegarsi dalla rete elettrica a piacimento durante la stessa sessione ottimizzando i consumi. Ad ogni modo, nulla vieta di adottare la prima soluzione.
Spero di essersi stato utile,

Re: Eseguire script al cambio di alimentazione.
Inviato: giovedì 21 ottobre 2010, 17:12
da The Elle
immagino che le istruzioni per la seconda modalità siano quelle scritte vero? lo devo provare...
Re: Eseguire script al cambio di alimentazione.
Inviato: giovedì 21 ottobre 2010, 18:49
da vda
The Elle ha scritto:
immagino che le istruzioni per la seconda modalità siano quelle scritte vero? lo devo provare...
Ok, poi fammi sapere...

Re: Eseguire script al cambio di alimentazione.
Inviato: giovedì 21 ottobre 2010, 21:46
da The Elle
forse mi sai risolvere anche questo: a batteria il mouse usb se ne andava in autosospensione, ho risolto inserendo in rc.local una stringa echo con un comando sudo che mi abilita il mouse

ma una soluzione più elegante? Oppure una stringa nello stesso script funzionante? Ho provato a inserire la mia ma nn va...