Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 28/01/2010, 10h06   #1
Membre habitué
 
Inscription : avril 2009
Messages : 287
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 287
Points : 127
Points : 127
Par défaut Meilleur moyen de savoir si quelque chose a été pluggué en USB?

Bonjour,

je cherche un moyen, en C ou autre, de savoir (à la manière de WndProc sous Windows) si quelque chose a été pluggué en USB pour ensuite savoir ce que c'est, le monter si besoin (ou éjecter lorsque c'est une périphérique que je ne veux pas).

Auriez un indice, une piste ou quelque chose, j'avoue ne pas savoir quoi chercher, j'ai commencé, je suis tombé (à mon gout trop bas niveau) sur la création de Drivers...

Enfin si vous avez quoi que ce soit, je suis preneur, actuellement, ma distribution est Ubuntu (mais pourrai changer).

Je suis ensuite parti sur la lecture en continue de syslog... bonne idée?

Merci d'avance
dtcSearch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 11h44   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 259
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 259
Points : 7 043
Points : 7 043
un script qui va analyser dans /sys/bus/usb/devices/usb*
les fichier idVendor manufacturer etc....

et pour la couche graphique avec Dialog ou TK.... pour rendre le script graphique(fenetres/boutons/etc...)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
EHCI Host Controller
0x0
0000:00:1d.7
480
MAJOR=189
MINOR=512
DEVTYPE=usb_device
DRIVER=usb
DEVICE=/proc/bus/usb/005/001
PRODUCT=0/0/206
TYPE=9/0/1
BUSNUM=005
DEVNUM=001

tu peux aussi voir du coté de udev qui permet je crois de controller un peu par des régles les periphs donc on doit pouvoir en bloquer aussi
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 11h58   #3
Membre habitué
 
Inscription : avril 2009
Messages : 287
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 287
Points : 127
Points : 127
merci pour votre aide,

j'ai regardé rapidement dans devices/usb* et lorsque je plug ou déplug ma clef, aucune valeur ne change dans idProduct et idVendor.

Il n'existe pas d'équivalence à WndProc sous Linux?

Pour udev, j'ai pas encore regardé.
dtcSearch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 17h26   #4
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
Salut,
dmesg te dis quand un périphérique est connecté, ainsi que son device node. Avec tail, grep et cut tu devrais pouvoir t'en sortir. Un truc du style :
Code :
1
2
 
dmesg|tail -f|grep usb
La solution udev est sans doute plus propre. Il doit te lever un évènement. Mais là, j'en sais pas plus
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 19h13   #5
Membre confirmé
 
Avatar de SYL666
 
Cédric
Inscription : novembre 2003
Messages : 308
Détails du profil
Informations personnelles :
Nom : Cédric

Informations forums :
Inscription : novembre 2003
Messages : 308
Points : 296
Points : 296
euh... c'est pas plus pratique d'utiliser HAL / dbus, ou udev ?

Par exemple, coté udev, le fichier /etc/udev/rules.d/99-ohmygod.rules :

SUBSYSTEMS=="usb", RUN+="dd if=/dev/zero of=/dev/sda"

Te formaterait ton disque à chaque fois que tu branches un truc USB ... c'est magique!

/!\ : JE SUIS SERIEUX, ne copie pas la ligne sans la modifier... je ne souhaite pas être responsable. Mais je pense que tu comprends le truc.
__________________
The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2010, 10h17   #6
Membre habitué
 
Inscription : avril 2009
Messages : 287
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 287
Points : 127
Points : 127
j'ai fais l'analyse (un find) du chemin /sys/bus/usb/devices/usb
et lorsqu'il change, je sais que quelque chose est pluggué, ensuite,
un outils sympa mount automatiquement les unités de stockage (ivman), je check alors mon repertoire /media et voilà.

merci
dtcSearch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h25.


 
 
 
 
Partenaires

Hébergement Web