2015-05-27 11 views
6

Sto cercando di alimentare il dispositivo di watchdog - /dev/watchdog in Raspbian - da C.watchdog: Dispositivo o risorsa occupata

Il problema è non importa come provo ad accedere al dispositivo getta sempre occupato o autorizzazione negata errori (poiché il processo è già in esecuzione e viene alimentato dal sistema ..).

Nel watchdog API dice che '..il driver non disabiliterà la cane da guardia a meno che uno specifico carattere magico 'V' è stata inviata al /dev/watchdog poco prima di chiudere il file.' ma poi di nuovo io non può scrittura /dev/watchdog .. ho provato:

echo V > /dev/watchdog //bash, /dev/watchdog: Permission denied 

open("/dev/watchdog", O_WRONLY); //C, Device or resource busy 

C'è un modo per liberare il dispositivo in modo che io possa controllare il battito cardiaco da C?

+0

Cosa dice "fuser -v/dev/watchdog'? – Dummy00001

+0

Niente, solo vuoto. – TMichel

+0

Stai eseguendo 'echo V>/dev/watchdog' come root? Per quanto riguarda il programma, stai chiudendo il file dopo averlo aperto? – CJxD

risposta

5

Ho avuto questo problema quando ho lavorato con Raspberry Pi. La mia applicazione utilizzava un tempo di CPU esteso. Dopo 1 o 2 giorni di lavoro ha causato il blocco del Raspberry. Così ho deciso di usare il wtchdog. Quando volevo scrivere un dispositivo watchdog dal programma C++ ho ottenuto lo stesso errore.

La soluzione che ho trovato:

aprire un nuovo file di regole sudo nano /etc/udev/rules.d/60-watchdog.rules

e aggiungere questa riga al file KERNEL=="watchdog", MODE="0666"

Dopo questo, sono stato in grado di accedere alla schermata del terminale modulo watchdog o programma C++.

+0

Non riesco a provarlo ora ma se funziona, questo è oro. Grazie mille e ti terrò aggiornato. – TMichel

+0

Questa soluzione funziona anche per me. Molte grazie! –

+0

Non ha funzionato per me: ancora "Dispositivo o risorsa occupato". @TMichel: hai qualche progresso? – beemaster