Pagina 1 di 2
Suono all'umount delle periferiche
Inviato: gio 8 set 2005, 20:11
da Experience
Salve ragazzi...vi espongo il mio dilemma:
con delle regole udev ho configurato le cose affinchè il mio lettore appena si monti crei un nuovo file in /dev, e suoni appena questo viene effettuato; a questo punto con automount monto a mio piacimento la periferica....
il dilemma è: come configurare un suono, in collaborazione con automount, per quando viene smontata automaticamente la periferica?! mi servirebbe sopratutto per la pennina, non tanto per il cdrom ( che non esce quando è ancora montato, e quindi capisco quando posso estrarlo ).
Dite che è qualcosa di impossibile?! forse bisogna creare un demone che mi controlli la directory /mnt/rimovibili gestita da automount?!
Grazie a tutti, ciaoooo
Inviato: gio 8 set 2005, 21:51
da rob
carinissimo problema, tanto carino che mi è venuto in mente di fare uno script
Codice: Seleziona tutto
DIR= #qui ci metti la directory/file che vuoi controllare, ad es. /mnt/pen
SOUND=/opt/kde/share/sounds/KDE_Beep_Beep.wav #o un altro suono a tua scelta
while true ; do
while ! [ -x $DIR ]; do
sleep 4
done
play $SOUND
while [ -x $DIR ]; do
sleep 2
done
play $SOUND
done
rendi eseguibile lo script e lo avvii con un & alla fine, così gira in background.
volendo puoi variare i tempi di polling.
ciao, rob
Inviato: gio 8 set 2005, 22:04
da gallows
io sostituirei "[ -x $DIR ]" con "[ -e $DEV]".
Perché il mount-point si presume sia sempre eseguibile, l'esistenza del dispositivo no!
DEV è /dev/storage ad esempio che è un link alla pendrive, lo crei con:
KERNEL="sd[a-z]1", SYMLINK="storage"
Inviato: gio 8 set 2005, 22:06
da gallows
Ah, peraltro udev è in grado di eseguire programmi all'inserimento di un device, eg:
PROGRAM="programma"
Quindi lo script di rob puoi farlo partire in quel modo
PS. In piú si evita che giri sempre in bg
Inviato: gio 8 set 2005, 22:06
da rob
azz, hai 10000 volte ragione, nella mia (de)mente confusa stavo pensando che -x stesse per esiste (eXists).
appreciated

rob
Inviato: gio 8 set 2005, 22:55
da rob
ok, tiriamo fuori lo script finale. lo scipt viene quindi lanciato da udev (sistemare il file di configurazione di udev), emette un beep, comincia a fare polling e, quando il device viene smontato, emette un beep ed esce.
Codice: Seleziona tutto
DEV= #directory del device creata dinamenicamente da udev
SOUND=/opt/kde/share/sounds/KDE_Beep_Beep.wav #o un altro suono a tua scelta
play $SOUND
while [ -e $DEV ]; do
sleep 2
done
play $SOUND
...che bello l'open source
rob
Inviato: ven 9 set 2005, 8:45
da salbutamolo
Ciao a tutti,
interessante questo script! Mi dite che sintassi avete usato per la variabile PROGRAM di udev, please? Una cosa tipo:
Have a nice day
Inviato: ven 9 set 2005, 9:00
da salbutamolo
Ciao a tutti,
tanto per capirci...questa è la regola per la mia pennetta usb:
Codice: Seleziona tutto
BUS="usb", KERNEL="sd?1", SYSFS{serial}="230760A43DF1A8EF", NAME="%k", GROUP="disk", MODE="0660", SYMLINK="exagerate"
PROGRAM="/home/nemesi/.kde/mount_sound.sh %k"
E così ho modificato lo script proposto:
Codice: Seleziona tutto
DEV=/dev/sda1
SOUND=/opt/kde/share/sounds/KDE_Beep_Connect.wav
play $SOUND
while [ -e $DEV ]; do
sleep 2
done
play $SOUND
Alla variabile DEV ho provato ad essegnare sia il mount point che il symlink creato da udev, ma nisba lo script non viene chiamato! Have a nice day
Inviato: ven 9 set 2005, 11:25
da MAT
Da
http://linux-corner.blogspot.com/2005/0 ... -udev.html
When a device named ``dev0'' is plugged, udev looks into the directory /etc/dev.d/dev0/ looking for executable *.dev files and executes them. For the pendrive I can write the /etc/dev.d/pendrive/automount.dev file:
Codice: Seleziona tutto
#!/bin/bash
if [ "$ACTION" == "add" ] ; then
logger -t dev.d "Mounting pendrive"
mkdir /mnt/pendrive
/bin/mount /mnt/pendrive
fi
if [ "$ACTION" == "remove" ] ; then
logger -t dev.d "Unmounting pendrive"
/bin/umount /mnt/pendrive
rmdir /mnt/pendrive
fi
Quindi basta che crei in quella directory un file .dev eseguibile con il tuo script.
Inviato: ven 9 set 2005, 13:05
da Experience
Uauuuuuuu....veloci, numerosi, quanto volenterosi!!

Anche io iniziato a studiare shell scripting, piano piano ci arriverò anche io
Però il problema non è risolto, infatti sda1 non scompare se non quando stacco la penna, e nemmeno il mio symlink...solo la directory /mnt/rimovibili/player scompare...e a me serve monitorare quella per capire quando automount mi ha smontato la pennina....e lo script con il mount point no funziona.
Come procediamo?!
Ah dimenticato, la directory /etc/dev.d non c'è sulla mia slack...come mai?!?!
Ciaooo
Inviato: ven 9 set 2005, 20:15
da salbutamolo
Ciao a tutti,
Ah dimenticato, la directory /etc/dev.d non c'è sulla mia slack...come mai
Credo non ci sia su nessuna Slack! Bha....la cosa si fa misteriosa!

Have a nice day...vado a bere un secchio di birra e poi ci riprovo!

Inviato: ven 9 set 2005, 20:26
da MAT
salbutamolo ha scritto:Ciao a tutti,
Ah dimenticato, la directory /etc/dev.d non c'è sulla mia slack...come mai
Credo non ci sia su nessuna Slack! Bha....la cosa si fa misteriosa!

Oh bè, nella mia con udev c'è eccome.
Inviato: sab 10 set 2005, 7:56
da salbutamolo
Ciao a tutti,
Oh bè, nella mia con udev c'è eccome
Che versione di udev usi? E che versione di salck? 10.1, current?
Have a nice day
Inviato: sab 10 set 2005, 13:22
da MAT
udev 0.54, Slackware 10.1, ma alcuni pacchetti vengono dalla current. Personalmente comunque non uso più il mount automatico, nè alcuno script all'aggiunta/rimozione di dispositivi. Ho comunque provato ora ad abilitare tale script e il suono viene riprodotto (due volte, non so perché) con
Inviato: sab 10 set 2005, 13:57
da salbutamolo
Ciao a tutti,
io ho la current con udev-0.64...puoi postare tutto lo script per favore? Have a nice day