Repository 32bit  Forum
Repository 64bit  Wiki

[WORKAROUND]Timidity e RTC non accessibile

Forum dedicato ai Porting ufficiali e non di Slackware, vedi Slack/390, ARMedslack, Slamd64, Slackintosh, Ocsid, Sloox, Zenwalk, How-Tux, Slax etc etc

Moderatore: Staff

Regole del forum
1) Specificare nome e versione del porting.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[WORKAROUND]Timidity e RTC non accessibile

Messaggioda 414N » sab mar 15, 2008 18:46

Salve a tutti.
Da qualche giorno a questa parte, durante lo spegnimento del pc, è comparso il messaggio: "Cannot set hardware clock to system time (localtime)".
Indagando, ho scoperto tramite il comando
Codice: Seleziona tutto
hwclock --debug --show

che il device /dev/rtc è occupato.
Una rapida occhiata ai processi che lo usano non ha restituito nulla.
In un primo momento ho pensato si trattasse di qualcosa inerente al kernel (il modulo RTC per esempio), ma non avendolo ricompilato o aggiornato di recente, lo escluderei (anche perchè fino a qualche giorno fa non avevo questo errore durante lo spegnimento).
Cercando tramite Google una risposta mi sono imbattuto in un bugzilla di Ubuntu nel quale un utente segnala l'interferenza di timidity++ (che ho installato da sorgenti un mesetto fa) con il RTC di sistema. Chiudendo timidity risulta di nuovo possibile accedere all'hardware clock.
Ho già in mente una soluzione temporanea al problema, ma vorrei sapere se qualcun altro è nella mia stessa situazione o ci è passato.
Ultima modifica di 414N il mer mar 19, 2008 16:50, modificato 1 volta in totale.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Timidity e RTC non accessibile

Messaggioda 414N » sab mar 15, 2008 20:21

Se a qualcuno può interessare ho anche preparato un file rc.timidity utile per lanciare/fermare/rilanciare timidity senza doverlo fare manualmente.
Non è il massimo della finezza ma sembra funzionare:
Codice: Seleziona tutto
#!/bin/bash

# Variabili globali

TIMIDITYPID=""
TIMIDITYPATH="/usr/local/bin/timidity"

# Funzione che ricava il PID di timidity dall'output di ps

getpid () {

        TIMIDITYPID=`ps aux | grep "$TIMIDITYPATH" | grep -v grep | awk '{ print $2}'`
}

# Funzione che lancia Timidity (se non è già in esecuzione)

start () {

        if [ "$1" ]
        then
                echo "Timidity is already running (PID=$1)"
                exit 1
        else
                if [ -x "$TIMIDITYPATH" ]
                then

                        echo -n "Starting Timidity..."
                        "$TIMIDITYPATH" -iAD 1>/dev/null &
                        echo "done"
                fi
        fi
}

# Funzione che ferma Timidity (se è in esecuzione)

stop () {

        if [ "$1" ]
        then

                echo -n "Stopping Timidity..."
                kill -9 "$1"
                echo "done"
        else
                echo "Timidity is not running"
                exit 1
        fi

}

# Funzione che rilancia Timidity (sia nel caso che sia
# in esecuzione, sia che non lo sia)

restart () {


        echo "Restarting Timidity..."
        getpid
        if [ "$TIMIDITYPID" ]
        then
                stop "$TIMIDITYPID"
                sleep 1
        fi
        start ""
        echo "Timidity restarted"


}

# Ricavo innanzitutto il PID di Timidity se è in esecuzione

getpid

# Decido il da farsi

case "$1" in
start)
        start "$TIMIDITYPID"
;;

stop)
        stop "$TIMIDITYPID"
;;
restart)
        restart "$TIMIDITYPID"
;;

*)
        echo "Usage: `basename "$0"` start|restart|stop"
        exit 1
;;
esac
exit 0

Andrebbe piazzato in /etc/rc.d insieme ai suoi compagni di merende e reso eseguibile (chmod +x rc.timidity da root).
Per lanciarlo all'avvio, aggiungete:
Codice: Seleziona tutto
# Avvio di timidity

if [ -x /etc/rc.d/rc.timidity ]
then
        /etc/rc.d/rc.timidity start
fi

in rc.local.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Timidity e RTC non accessibile

Messaggioda 414N » mer mar 19, 2008 16:49

Temporaneamente ho risolto mettendo in /etc/rc.local_shutdown
Codice: Seleziona tutto
#!/bin/bash

# Uccide timidity

if [ -x /etc/rc.d/rc.timidity ]
then
        /etc/rc.d/rc.timidity stop
fi

e spostando l'esecuzione di /etc/rc.d/rc.local_shutdown all'interno di rc.6 prima del salvataggio dell'ora attuale sul hardware clock.
La soluzione però mi sembra poco elegante e potrebbe portare ad avere altri problemi nel caso di altri comandi presenti in rc.local_shutdown.
Qualcuno ha un consiglio?
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE


Torna a Porting Slackware

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron