Eseguire script al cambio di alimentazione.

Riconoscimento, installazione e configurazione delle periferiche.
Scrivi risposta
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Eseguire script al cambio di alimentazione.

Messaggio 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?
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Re: Eseguire script al cambio di alimentazione.

Messaggio da Pedro.zena »

so che è brutto, ma non trovo niente da nessuna parte, quindi.... up  :'(
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Re: Eseguire script al cambio di alimentazione.

Messaggio da Pedro.zena »

up
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Re: Eseguire script al cambio di alimentazione.

Messaggio da Pedro.zena »

up
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Re: Eseguire script al cambio di alimentazione.

Messaggio da Pedro.zena »

up
Avatar utente
vda
Prode Principiante
Messaggi: 171
Iscrizione: sabato 1 novembre 2008, 0:34

Re: Eseguire script al cambio di alimentazione.

Messaggio da vda »

dai un'occhiata allo script seguente: forse può esserti utile. Io lo utilizzo con Cron per il CPU scaling.

Ciao,  8) 

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

Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]
Pedro.zena
Prode Principiante
Messaggi: 76
Iscrizione: giovedì 26 aprile 2007, 18:35

Re: Eseguire script al cambio di alimentazione.

Messaggio da Pedro.zena »

umh.. intanto grazie per la risposta  ;D
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
Avatar utente
vda
Prode Principiante
Messaggi: 171
Iscrizione: sabato 1 novembre 2008, 0:34

Re: Eseguire script al cambio di alimentazione.

Messaggio 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,  8) 
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]
Avatar utente
The Elle
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 897
Iscrizione: mercoledì 12 marzo 2008, 14:01
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64
Località: Avellino

Re: Eseguire script al cambio di alimentazione.

Messaggio 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,  8) 

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?
Non cercare di piegare il cucchiaio, è impossibile... Convinciti dell'unica possibile verità: che il cucchiaio non esiste...

Tutto ciò che ha un'inizio, ha anche una fine...
Avatar utente
vda
Prode Principiante
Messaggi: 171
Iscrizione: sabato 1 novembre 2008, 0:34

Re: Eseguire script al cambio di alimentazione.

Messaggio 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,  8)
Ultima modifica di vda il giovedì 21 ottobre 2010, 17:13, modificato 1 volta in totale.
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]
Avatar utente
The Elle
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 897
Iscrizione: mercoledì 12 marzo 2008, 14:01
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64
Località: Avellino

Re: Eseguire script al cambio di alimentazione.

Messaggio da The Elle »

immagino che le istruzioni per la seconda modalità siano quelle scritte vero? lo devo provare...
Non cercare di piegare il cucchiaio, è impossibile... Convinciti dell'unica possibile verità: che il cucchiaio non esiste...

Tutto ciò che ha un'inizio, ha anche una fine...
Avatar utente
vda
Prode Principiante
Messaggi: 171
Iscrizione: sabato 1 novembre 2008, 0:34

Re: Eseguire script al cambio di alimentazione.

Messaggio 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...

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]
Avatar utente
The Elle
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 897
Iscrizione: mercoledì 12 marzo 2008, 14:01
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64
Località: Avellino

Re: Eseguire script al cambio di alimentazione.

Messaggio 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...
Non cercare di piegare il cucchiaio, è impossibile... Convinciti dell'unica possibile verità: che il cucchiaio non esiste...

Tutto ciò che ha un'inizio, ha anche una fine...
Scrivi risposta

Ritorna a “Driver e periferiche”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti