Home
Repository 32bit  Forum
Repository 64bit  Wiki

Modifiche

CD-ROM auto mounting ed unmounting

811 byte aggiunti, 15:29, 4 mar 2008
nessun oggetto della modifica
[[Category:Periferiche]]
=Disclaimer=
L'autore di questa guida, i suoi collaboratori e slacky.eu non si riterranno responsabili di eventuali danni provocati al vostro computer.
=InformazioniPrerequisiti=
Questa guida è riferita ad un sistema con Slackware GNU/Linux 12.0. I principi in essa esposti comunque sono applicabili a qualsiasi distribuzione GNU/Linux.
=Ivman e pmount=
Il magico tool oggetto di questa guida si chiama [http://ivman.sourceforge.net/ Ivmanivman]. Lo scopo di Ivman ivman è gestire gli eventi di HAL, eseguendo comandi specifici ogni volta che viene rilevato l'inserimento d'un dispositivo, il cambiamento di una proprità o di uno stato. Alcuni esempi possono essere la chiusura dello schermo di un portatile, l'inserimento di un CD-ROM o la pressione del tasto di espulsione del medesimo.
La bellezza di Ivman ivman risede nella sua non-invasività, essendo un tool userspace, nonchè nella sua integrazione con HAL. Differentemente da tool oramai obsoleti come Supermount, Ivman è quindi in grado di funzionare in modo del tutto trasparente, senza richiedere modifiche aggiuntive ad altri software, come il protocollo ''media:/'' di KDE, con cui non va minimamente in conflitto. Addirittura, ivman lascia un tempo di 3 secondi fra il rilevamento ed il montaggio di un volume, in modo da permettere ad altri eventuali tool di automounting di effettuare l'operazione al posto suo.
Come è ben noto agli utenti di distribuzioni come Slackware, il mounting o l'unmounting dei volumi rimuovibili è un operazione che, tra le altre cose, richiede un certa accortezza nella configurazione dei privilegi. Di default, in ambiente GNU/Linux l'operazione di mount/unmount è consentita solo all'utente root e salvo differenti impostazioni una volta montato un volume esso spesso è accessibile solo ed unicamente a quell'utenza.
=Installazione=
Prima di tutto è bene procedere all'installazione di pmount. Scarichiamo i sorgenti di pmount dal homepage del progetto [http://www.piware.de/projects/], quindi procediamo come al solito (ricordandosi ricordandoci di usare l'utenza root):
tar -zxvf pmount-0.9.13.tar.gz
I file interessati per la configurazione di ivman risiedono nella directory /etc/ivman.
* ''IvmConfigActions.xml'' specifica quali azioni deve eseguire ivman quando viene inserito/disinserito un dispositivo rimuovibile
* ''IvmConfigBase.xml'' contiene le opzioni che influenzano il comportamento di ivman
* ''IvmConfigActions.xml'' specifica quali azioni deve eseguire ivman quando viene inserito/disinserito un dispositivo rimuovibile
* ''IvmConfigConditions.xml'' specifica quali azioni deve eseguire ivman in risposta a determinati eventi HAL sulla condizione dell'hardware, come la pressione del pulsante di poweroff
* ''IvmConfigProperties.xml'' specifica quali azioni deve compiere ivman quando determinate proprietà dell'hardware cambiano, come la chiusra dello schermo di un portatile
Come appare evidente, le potenzialità di ivman sono infinite. Con ivman possiamo far si che quando chiudiamo il display del portatile il sistema vada in ibernazione automatica, possiamo far si che venga eseguito automaticamente il nostro lettore multimediale preferito all'inserimento di un CD-Audio o di un DVD, e via discorrendo. E' vero che alcune di queste operazioni è possibile ottenerle anche configurando correttamente il desktop manager, ma per altre questo non è possibile. Inoltre, considerando considerato che linux non è solo Desktop, ivman funziona indipendentemente da questo e ci permette di avere le stesse feature anche in command line.
Un analisi completa di tutto quello che è possibile fare con ivman esula dallo scopo di questo articolo, per cui concentriamoci sull'alterazione del comportamento standard del CD-ROM.
chmod u+s /usr/bin/pmount /usr/bin/pumount
 
Infine, creiamo manualmente il file pid necessario al corretto funzionamento dell'applicativo.
 
touch /var/run/ivman.pid
Se si vuole cambiare l'utente di default, è possibile farlo sempre dal file IvmConfigBase.xml
<pre>
<ivm:Match name="ivm.mountable" value="true"> <!-- Permette il montaggio automatico dei CD-ROM -->
<ivm:Match name="hal.info.category" value="volume">
<ivm:Match name="hal.volume.is_disc" value="true"> <ivm:Match name="hal.volume.disc.typeis_blank" value="cd_romfalse"> <ivm:Option name="mount" value="true" /> </ivm:Match>
</ivm:Match>
</ivm:Match>
<!-- Inibisce il montaggio automatico degli storage USB -->
<ivm:Match name="hal.info.category" value="storage">
<ivm:Match name="hal.storage.bus" value="usb">
</ivm:Match>
</ivm:Match>
</ivm:Match>
</pre>
 
Il primo blocco permette il montaggio automatico di ogni volume di tipo ottico (cd_rom, cd_rw, etc), a patto che sia stato masterizzato (non sia blank).
 
Il secondo blocco invece impedisce ad ivman di montare in modo automatico gli storage usb. Considerato che i dispositivi usb vengono solitamente montati in read/write, e che quindi l'utente deve smontarli correttamente per evitare di perdere dati, può essere utile far si che questi non vengano montati automaticamente ma solo su precisa volontà dell'utente.
In teoria, non è necessario specificare che ivman non deve montare automaticamente i dispositivi usb, se s'inibisce il suo comportamento di default (il montaggio automatico di tutto). Ho deciso d'inserire comunque un esempio completo per dare una base di partenza su cui lavorare per fare personalizzazioni successive. In fondo, ognuno di noi può avere esigenze specifiche.
Nel caso si desideri andare oltre, è possibile ottenere una lista delle proprietà HAL con il comando lshal, oppure è possibile consultare (in formato HTML) la documentazione di HAL, normalmente memorizzata sotto /usr/doc/hal-VERSIONE/spec/hal-spec.html
=Esecuzione e Test=
Per avviare ivman in modo automatico all'avvio del sistema, è sufficiente aggiungere la riga
/usr/bin/ivman > /var/log/ivman 2>&1 < /dev/null &
al file /etc/rc.d/rc.local, avendo l'accortezza di verificare che rc.local abbia impostato il flag di eseguibilità
414
contributi