Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

détection insertion clé usb

12 réponses
Avatar
Olivier Girant
Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.

Pour l'instant les solutions que j'ai trouvées sont un peu bancales et
trop spécifiques à une version donnée du noyau :
- scanner le fichier /proc/bus/usb/devices pour l'insertion,
- scanner le fichier /var/log/messages pour le nom du device

Merci,
oliv

10 réponses

1 2
Avatar
Xes
Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.

Pour l'instant les solutions que j'ai trouvées sont un peu bancales et
trop spécifiques à une version donnée du noyau :
- scanner le fichier /proc/bus/usb/devices pour l'insertion,
- scanner le fichier /var/log/messages pour le nom du device

Merci,
oliv



dmesg

Avatar
Eric Belhomme
Olivier Girant wrote in news:43cf6235$0$28115
$:

Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb,
et

trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.

le kernel renvoie toutes ces infos :


#dmesg
usb 2-2: new full speed USB device using uhci_hcd and address 2
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
Vendor: USB 2.0 Model: Storage Device Rev: 0100
Type: Direct-Access ANSI SCSI revision: 00
usb-storage: device scan complete
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1


en vrac :
- le genstionnaire usb a détecté l'insertion d'un périphérique usb
- le périph' usb est reconnu comme etant du de classe usb-storage
- l'émulation scsi est activée pour ce périquérique
- le module de gestion de disque scsi attache la clé à /dev/sda et
m'informe que la clé contient une partition sda1

y'a plus qu'à monter le volume ou on veut...

--
Rico

Avatar
Eric Belhomme
Olivier Girant wrote in
news:43cf6235$0$28115$:

Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb,
et trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.

le kernel renvoie toutes ces infos :


#dmesg
usb 2-2: new full speed USB device using uhci_hcd and address 2
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
Vendor: USB 2.0 Model: Storage Device Rev: 0100
Type: Direct-Access ANSI SCSI revision: 00
usb-storage: device scan complete
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1


en vrac :
- le genstionnaire usb a détecté l'insertion d'un périphérique usb
- le périph' usb est reconnu comme etant du de classe usb-storage
- l'émulation scsi est activée pour ce périquérique
- le module de gestion de disque scsi attache la clé à /dev/sda et
m'informe que la clé contient une partition sda1

y'a plus qu'à monter le volume ou on veut...

--
Rico

Avatar
Charly
"Olivier Girant" wrote in message
news:43cf6235$0$28115$
Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.


dmesg | grep usb_module_peripherique ????

Avatar
Nicolas George
Olivier Girant wrote in message
<43cf6235$0$28115$:
J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.


Vu le fu2, tu aurais dû préciser que c'était Linux.

Lors qu'un nouveau périphérique est détecté, le noyau exécute l'exécutable
désigné par /proc/sys/kernel/hotplug en lui passant dans l'environnement les
informations décrivant ce périphérique : il n'y a plus qu'à les récupérer
dans un script ou un binaire ad-hoc.

Mais ce n'est pas la peine : le travail est déjà fait, par un outil qui
s'appelle udev, et dont un des rôles est précisément d'identifier les
périphériques amovibles pour permettre de leur donner un nom et des
permissions plus pratiques automatiquement.

Avatar
Olivier Girant
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 40132503 512-byte hdwr sectors (20548 MB)
sda: assuming drive cache: write through
sda: sda1


Ok merci, j'ai finalement fait :

dmesg | grep "SCSI device" | tail -n 1 | cut -d' ' -f3 | cut -d':' -f1

Ca me retourne sda, je rajoute le 1 car je suppose qu'il n'y a toujours
qu'une seule partition, et ça automatise tout le process...

oliv

Avatar
Olivier Girant
Olivier Girant wrote:
Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.


Finalement, je me rends compte que je dois aussi supporter un noyau
2.4.20 (sous linux pour Nicolas...). Je ne peux pas utiliser ni udev ni
hotplug ni dmesg qui m'affiche ceci :

hub.c: new USB device 00:04.2-1, assigned address 10
usb-storage: act_altsettting is 0
usb-storage: id_index calculated to be: 88
usb-storage: Array length appears to be: 90
usb-storage: USB Mass Storage device detected
usb-storage: Endpoints: In: 0xcc6ac3a0 Out: 0xcc6ac3b4 Int: 0x00000000
(Period 0)
usb-storage: Found existing GUID 0c4510600000000000000000
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 10

help ! :-)
thanks,
oliv

Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:43cf9b2b$0$15697$,
*Olivier Girant* tapota sur f.c.o.unix :

Ca me retourne sda, je rajoute le 1 car je suppose qu'il n'y a toujours
qu'une seule partition,


Pas forcément. La clé peut avoir son système de fichier directement sur le
périphérique /dev/sda, sans passer par une partition. D'ailleurs, quel
intérêt d'avoir une unique partition sur une clé USB si ce n'est perdre de
la place pour rien ?

--
Sébastien Monbrun aka TiChou

Avatar
nathieb
Olivier Girant wrote:
Bonjour

J'aimerais savoir comment on peut détecter l'insertion d'une clé usb, et
trouver le bon device à monter (/dev/sda1 par exemple) sans avoir à
scanner toutes les possibilités. Je suis sous un noyau 2.6.14 si cette
info peut être pertinente.
usbview ou tail -f /var/log/message ou plug de ton device.

vérifier que tu as :
les modules standard usb :
chezbibi>/sbin/lsmod | grep usb
hci_usb 12928 0 -> yes!!
bluetooth 44036 1 hci_usb
usb_storage 59456 0 -> yes pour ma clef
usbcore 104164 6 ehci_hcd,hci_usb,uhci_hcd,usb_storage -> ouf
scsi_mod 115148 3 usb_storage,sr_mod,sbp2
ide_core 125028 5 usb_storage,ide_cd,ide_generic,piix,ide_disk

en règle général ton device se monte en /dev/sda[i]
Tronbine de mon /etc/fstab
/dev/sda /mnt/usbkey vfat rw,users,owner,noauto,umask2
0 0

pour un scanner tu peux avoir sg[i]

Pour l'instant les solutions que j'ai trouvées sont un peu bancales et
trop spécifiques à une version donnée du noyau :
- scanner le fichier /proc/bus/usb/devices pour l'insertion,
- scanner le fichier /var/log/messages pour le nom du device

Merci,
oliv



olivier Débian Sarge

Avatar
Olivier Girant
Sébastien Monbrun aka TiChou wrote:
Dans le message <news:43cf9b2b$0$15697$,
*Olivier Girant* tapota sur f.c.o.unix :

Ca me retourne sda, je rajoute le 1 car je suppose qu'il n'y a
toujours qu'une seule partition,



Pas forcément. La clé peut avoir son système de fichier directement sur
le périphérique /dev/sda, sans passer par une partition. D'ailleurs,
quel intérêt d'avoir une unique partition sur une clé USB si ce n'est
perdre de la place pour rien ?


Oui c'est cela. Et dans ce cas, comment je vais pouvoir déterminer en
plus le système de fichiers dessus ?

Pour ma petite application, je sais que certaines choses peuvent bouger,
et j'ai fait certaines hypothèses aussi sinon on s'en sort plus...

oliv


1 2