Suono all'umount delle periferiche

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
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.
Experience
Linux 1.x
Linux 1.x
Messaggi: 123
Iscritto il: lun 24 nov 2003, 0:00

Suono all'umount delle periferiche

Messaggio 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

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio 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

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

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

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio da rob »

azz, hai 10000 volte ragione, nella mia (de)mente confusa stavo pensando che -x stesse per esiste (eXists).
appreciated ;)
rob

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio 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 :D

rob

Avatar utente
salbutamolo
Linux 3.x
Linux 3.x
Messaggi: 905
Iscritto il: lun 12 gen 2004, 0:00
Contatta:

Messaggio da salbutamolo »

Ciao a tutti,
interessante questo script! Mi dite che sintassi avete usato per la variabile PROGRAM di udev, please? Una cosa tipo:

Codice: Seleziona tutto

...PROGRAM="/home/script_mount.sh"
Have a nice day

Avatar utente
salbutamolo
Linux 3.x
Linux 3.x
Messaggi: 905
Iscritto il: lun 12 gen 2004, 0:00
Contatta:

Messaggio 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

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

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

Experience
Linux 1.x
Linux 1.x
Messaggi: 123
Iscritto il: lun 24 nov 2003, 0:00

Messaggio da Experience »

Uauuuuuuu....veloci, numerosi, quanto volenterosi!! :D
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

Avatar utente
salbutamolo
Linux 3.x
Linux 3.x
Messaggi: 905
Iscritto il: lun 12 gen 2004, 0:00
Contatta:

Messaggio 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! :-)

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

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

Avatar utente
salbutamolo
Linux 3.x
Linux 3.x
Messaggi: 905
Iscritto il: lun 12 gen 2004, 0:00
Contatta:

Messaggio 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

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio 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

Codice: Seleziona tutto

aplay /usr/share/sounds/generic.wav

Avatar utente
salbutamolo
Linux 3.x
Linux 3.x
Messaggi: 905
Iscritto il: lun 12 gen 2004, 0:00
Contatta:

Messaggio da salbutamolo »

Ciao a tutti,
io ho la current con udev-0.64...puoi postare tutto lo script per favore? Have a nice day

Rispondi