<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;feed=atom&amp;action=history</id>
		<title>USB Mass Storage device con udev e Kernel 2.6.x - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;action=history"/>
		<updated>2013-05-24T22:25:20Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;diff=6468&amp;oldid=prev</id>
		<title>Zoros: in Archivio, la data di riferimento è 2004</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;diff=6468&amp;oldid=prev"/>
				<updated>2011-05-12T21:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;in Archivio, la data di riferimento è 2004&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Versione meno recente&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Versione delle 21:31, 12 mag 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Periferiche]]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Introduzione =&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Introduzione =&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Con questo Howto ho la presunzione di voler essere d'aiuto a chi desidera automatizzare il sistema di riconoscimento e di mounting di device USB quali pen drive, Hard Disk, Card Reader etc.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Con questo Howto ho la presunzione di voler essere d'aiuto a chi desidera automatizzare il sistema di riconoscimento e di mounting di device USB quali pen drive, Hard Disk, Card Reader etc.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 159:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 158:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sal Paradiso Giugno 2004&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sal Paradiso Giugno 2004&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Archivio]] &amp;lt;!-- era in [[Category:Periferiche]] --&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zoros</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;diff=1719&amp;oldid=prev</id>
		<title>L1q1d il 12:16, 6 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=USB_Mass_Storage_device_con_udev_e_Kernel_2.6.x&amp;diff=1719&amp;oldid=prev"/>
				<updated>2006-09-06T12:16:28Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Periferiche]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Con questo Howto ho la presunzione di voler essere d'aiuto a chi desidera automatizzare il sistema di riconoscimento e di mounting di device USB quali pen drive, Hard Disk, Card Reader etc.&lt;br /&gt;
= Premessa =&lt;br /&gt;
&lt;br /&gt;
Ultimamente mi sono ritrovato a possedere sempre piu' dispositivi USB e ad avere la necessita' di automatizzare la gestione degli stessi.&lt;br /&gt;
Piu' esattamente possego un Pen Drive, un HD esterno, una fotocamera digitale, un card reader e un lettore MP3. Tutti questi dispositivi funzionano benissimo sotto Linux essendo gestiti perfettamente come USB Mass Storage devices.&lt;br /&gt;
La cosa piu' snervante e' che bisogna sempre andare a vedere dove il sistema crea i block device per poter montare correttamente il dispositivo.&lt;br /&gt;
Ad esempio la prima partizione del mio HD viene riconosciuta come /dev/sda1, se pero' lo monto insieme al Pen Drive allora sara' riconosciuto come /dev/sdb1 e cosi' via.&lt;br /&gt;
Questo mi impedisce di poter creare delle entry fisse nel mio fstab.&lt;br /&gt;
Dopo un po' di ricerche ecco che finalmente trovo la soluzione con udev. &lt;br /&gt;
= Requisiti =&lt;br /&gt;
# Un PC (eh eh) con Linux (preferibilmente Slckware).&lt;br /&gt;
# Kernel della serie 2.6.x (io uso la 2.6.6) scaricabile da www.kernel.org con supporto sysfs&lt;br /&gt;
# Hotplug scaricabile dalla current di Slackware&lt;br /&gt;
# udev scaricabile da www.kernel.org/pub/linux/utils/kernel/hotplug/&lt;br /&gt;
= Preparazione =&lt;br /&gt;
Compiliamo la ns. Kernel come al solito ricordandoci di settare in General setup :&lt;br /&gt;
&lt;br /&gt;
 Support for hot-pluggable devices&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che sysfs sia montato. Per fare cio' aggiungiamo una linea al nostro fstab del tipo :&lt;br /&gt;
none /sys sysfs defaults&lt;br /&gt;
diamo un bel:&lt;br /&gt;
 mount -a&lt;br /&gt;
et voila'.&lt;br /&gt;
= Installazione =&lt;br /&gt;
Una volta scaricati i sorgenti di udev scompattiamo il pacchetto con :&lt;br /&gt;
 tar -xzf udev-XXX.tar.gz (dove XXX e' la versione di udev che avete scaricato).&lt;br /&gt;
Andiamo nella directory appena creata con:&lt;br /&gt;
 cd udev-XXX&lt;br /&gt;
e diamo un bel:&lt;br /&gt;
 make&lt;br /&gt;
se non avvengono catastrofi nella compilazione possiamo tranquillamente installare il tutto con:&lt;br /&gt;
 make install&lt;br /&gt;
A questo punto dobbiamo copiare lo script di avvio di udev nella nostra /etc/rc.d. Lo script opportuno si trova nella directory extra dei sorgenti e si chiama start_udev lo copiamo con :&lt;br /&gt;
 cp extra/start_udev /etc/rc.d&lt;br /&gt;
Bisogna ora fare in modo che lo script sia eseguito all'avvio, modifichiamo il file rc.local aggiungendo la linea /etc/rc.d/start_udev.&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
Passiamo dunque alla configurazione di udev. Nella directory /etc/udev troviamo il file udev.conf apriamolo con il ns. editor favorito e cerchiamo la linea:&lt;br /&gt;
&lt;br /&gt;
 # udev_rules - The name and location of the udev rules file&lt;br /&gt;
 udev_rules=&amp;quot;/etc/udev/rules.d/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Modifichiamola con :&lt;br /&gt;
&lt;br /&gt;
 udev_rules=&amp;quot;/etc/udev/udev.rules&lt;br /&gt;
&lt;br /&gt;
Questo dira' ad udev dove trovare il file di definizione delle regole (ARRGH non sono riuscito a tradurlo meglio !)&lt;br /&gt;
&lt;br /&gt;
Ora dobbiamo scrivere le regole per l'identificazione delle ns. devices USB. Per fare questo dobbiamo conoscere qualcosa dei nostri dispositivi, piu' precisamente il “vendor” e il “model” che altro non sono che il “venditore” e il “modello”. Per avere queste informazioni possiamo avvalerci dell' utility udevinfo procedendo come segue:&lt;br /&gt;
attacchiamo il dispositivo che vogliamo identificare e digitiamo :&lt;br /&gt;
 dmesg&lt;br /&gt;
qu dovremmo vedere alla fine un messaggio del tipo :&lt;br /&gt;
&amp;lt;pre&amp;gt;scsi1 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
Vendor: WDC WD60 Model: 0AB-60CBA0 Rev: 03.0&lt;br /&gt;
Type: Direct-Access ANSI SCSI revision: 02&lt;br /&gt;
SCSI device sda: 117231409 512-byte hdwr sectors (60022 MB)&lt;br /&gt;
sda: assuming drive cache: write through&lt;br /&gt;
sda: sda1 sda2&lt;br /&gt;
Attached scsi disk sda at scsi1, channel 0, id 0, lun 0&lt;br /&gt;
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0, type 0&lt;br /&gt;
USB Mass Storage device found at 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(questo e' l'output di dmesg dopo che ho attaccato il mio HD esterno).&lt;br /&gt;
Sappiamo quindi che il dispositivo e' attacato su “/dev/sda epossiamo con udevinfo interrogare il path adeguato:&lt;br /&gt;
 udevinfo -a -p /sys/block/sda&lt;br /&gt;
l'output sara' pressapoco questo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
udevinfo starts with the device the node belongs to and then walks up the&lt;br /&gt;
device chain, to print for every device found, all possibly useful attributes&lt;br /&gt;
in the udev key format.&lt;br /&gt;
Only attributes within one device section may be used together in one rule,&lt;br /&gt;
to match the device for which the node will be created.&lt;br /&gt;
looking at class device '/sys/block/sda':&lt;br /&gt;
&lt;br /&gt;
SYSFS{dev}=&amp;quot;8:0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{range}=&amp;quot;16&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{size}=&amp;quot;117231409&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{stat}=&amp;quot; 68 7 75 273 0 0 0 0 0 273 273&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
follow the class device's &amp;quot;device&amp;quot;&lt;br /&gt;
&lt;br /&gt;
looking at the device chain at '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-1/2-1:1.0/host1/1:0:0:0':&lt;br /&gt;
&lt;br /&gt;
BUS=&amp;quot;scsi&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID=&amp;quot;1:0:0:0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{detach_state}=&amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{device_blocked}=&amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{max_sectors}=&amp;quot;240&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{model}=&amp;quot;0AB-60CBA0 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{queue_depth}=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{rev}=&amp;quot;03.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{scsi_level}=&amp;quot;3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{state}=&amp;quot;running&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{type}=&amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SYSFS{vendor}=&amp;quot;WDC WD60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Guardiamo nella sezione che contiene il BUS scsi .&lt;br /&gt;
Qui abbiamo le informazioni che ci interessano per scrivere il nostro udev.rules, riapriamo il ns editor e aggiungiamo questa linea a udev.rules:&lt;br /&gt;
 BUS=&amp;quot;scsi&amp;quot;, SYSFS{vendor}=&amp;quot;WDC WD60&amp;quot;,SYSFS{model}=&amp;quot;0AB-60CBA0&amp;quot;, NAME=&amp;quot;exthd%n&amp;quot;&lt;br /&gt;
Facciamo attenzione ad eventuali spazi nei nomi !!&lt;br /&gt;
Abbiamo cosi' detto ad udev che quando questa device viene attaccata deve creare un node che si chiama “exthd%n” dove %n e' il numero di partizione che verra' rilevata.&lt;br /&gt;
La prossima volta che attaccheremo il dispositivo compariranno (per miracolo ?) nella directory /udev due block devices che si chiamano exthd1 e exthd2.&lt;br /&gt;
Possiamo ora usare queste block devices per montare il nostro disco al posto di /dev/sda1 e /dev/sda2&lt;br /&gt;
A tal proposito scriviamo nel nostro fstab le seguenti linee :&lt;br /&gt;
 /udev/exthd1 /mnt/extern/FAT32 vfat noauto,users,gid=100,umask=3 0 0&lt;br /&gt;
 /udev/exthd2 /mnt/extern/Linux auto noauto,users&lt;br /&gt;
(Nel mio caso la prima partizione dell'HD e' Fat32 e la seonda e' ext3)&lt;br /&gt;
Arrivati fin qui non ci resta che montare il nostro dispositivo con:&lt;br /&gt;
 mount /udev/exthd1&lt;br /&gt;
OHHHH funziona ! Ma se siamo veramente pigri e non vogliamo neanche dare il mount ?&lt;br /&gt;
Ecco che udev puo' aiutarci anche nell'automount.&lt;br /&gt;
= AUTOMOUNT =&lt;br /&gt;
Durante l'installazione di udev e' stata creata una directory /etc/dev.d/. E' li' che andremo a “smanettare” per poter far funzionare il nostro automount.&lt;br /&gt;
Udev per ogni device “creata” si va a cercare in /etc/dev.d/ una directory che abbia lo stesso nome della device. Nel nostro esempio dopo aver attaccato l'HD esterno si a a cercare una directory /etc/dev.d/exthd1 e una volta trovata esegue tutto cio' che termina con estensione “.dev”&lt;br /&gt;
Non ci resta quindi che crearci una directory con :&lt;br /&gt;
mkdir /etc/dev.d/exthd1&lt;br /&gt;
e all'interno di questa creare uno script pressappoco cosi' :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if [ &amp;quot;$ACTION&amp;quot; == &amp;quot;add&amp;quot; ] ; then&lt;br /&gt;
logger -t dev.d &amp;quot;Mounting external HD&amp;quot;&lt;br /&gt;
/bin/mount /mnt/extern/FAT32&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$ACTION&amp;quot; == &amp;quot;remove&amp;quot; ] ; then&lt;br /&gt;
logger -t dev.d &amp;quot;Unmounting external HD&amp;quot;&lt;br /&gt;
/bin/umount /mnt/extern/FAT32&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Udev usa le stesse regole di Hotplug per quel che riguarda ACTION ( fate riferimento al man di Hotplug)&lt;br /&gt;
Questo script verra' eseguito, ogni volta che la device verra' attaccata o staccata dal sistema. L'esecuzione avviene come utente root per cui facciamo in modo che nel fstab i permessi di accesso siano settati secondo le nostre esigenze.&lt;br /&gt;
&lt;br /&gt;
Buon divertimento !!!&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
Questo Howto e' stato scritto scopiazzando varie cose che ho trovato sulla rete e che mi sono state utili a capire il funzionamento di udev.&lt;br /&gt;
Udev e' fornito di una piccola documentazione che si trova nella directory dei sorgenti, non molto in verita', ma si puo' benissimo integrare con quel meraviglioso strumento che e' Internet.&lt;br /&gt;
Attenzione udev non e' solo questo, in futuro rimpiazzera' del tutto (forse) il devfs tradizionale.&lt;br /&gt;
Ringrazio tutti gli iscritti a Slacky.it che mi hanno aiutato dopo anni di Distro porfessionali a ributtarmi nell'avventura Slackware.&lt;br /&gt;
&lt;br /&gt;
A mio figlio Jan&lt;br /&gt;
&lt;br /&gt;
Sal Paradiso Giugno 2004&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>