Pages : 1
#1 Le 21/11/2009, à 12:05
- Lenslarque
UDEV point montage clef USB
Bonjour à tous,
Je réalise des Live-CD qui me servent à différents usages (par ex dépanner des PC), tout fonctionne bien mais je rencontre un fonctionnement pénible avec les le montage USB.
Pour plusieurs scripts j'aurai besoin de connaitre le point de montage USB, mais malheureusement il n'est pas prévisible à cause de l'UID. Ma question est donc est-il possible de mettre systématique la même point de montage ? du genre /media/disk ? et cerise sur le cadeau (mais ce n'est pas obligatoire) incrémenter disk2 en cas de deuxième disque ?
Merci d'avance
Hors ligne
#2 Le 21/11/2009, à 17:28
- jy_moustache
Re : UDEV point montage clef USB
salut
j'ai un peu le meme soucis en ce moment..
pour l'instant ce que j'ai trouvé c'est qu'il faut créer des règles udev qui vont gérer ces problèmes. udev lance des script lorsqu'on connecte du matériel au pc. les scripts sont des "règles" qui peuvent faire différentes choses : un montage automatique ou lancer un script etc...
il y a un post sur le forum http://forum.ubuntu-fr.org/viewtopic.ph … 60#p332860 et j'ai trouvé ce site en anglais http://www.reactivated.net/writing_udev_rules.html qui explique udev et donne quelques exemples pour monter automatiquement des disques sur des points de montage spécifiés à l'avance....
et bien sur man udev pour des détails concernant les options, etc etc
a plus
jy
Dernière modification par jy_moustache (Le 21/11/2009, à 17:30)
Hors ligne
#3 Le 26/11/2009, à 18:39
- Lenslarque
Re : UDEV point montage clef USB
Je regarde dans udev mais ce n'est pas évident
Peut-être avec une ligne du genre
KERNEL=="sd*[0-9]", SYSFS{idVendor}=="*", SYSFS{idProduct}=="*", SYMLINK+="toto", MODE="0666", ENV{ID_TYPE}="disk", ACTION=="add"
SYSFS{idVendor}=="*" et SYSFS{idProduct}=="*" -> Tous les ID usb
SYMLINK+="toto" -> rep du montage
Je ne peux pas essayer cette semaine, je testerai ce WE
Hors ligne
#4 Le 27/11/2009, à 09:37
- jy_moustache
Re : UDEV point montage clef USB
salut
en fait je te conseille vivement d'utiliser la page de doc sur udev : http://doc.ubuntu-fr.org/udev
J'ajouterai que je te conseille de la lire une première fois intégralement avec attention, puis par la suite de relire les parties qui t'interesse.
le doc est très bien fait, mais le sujet demande beaucoup d'attention
utilise "udev info" comme indiqué dans la doc, ca te permettra de bien connaitre les variables que tu peux utiliser. tu devras probablement chercher ton point de montage. pour cela, branche ton périphérique usb puis
lsusb
. dans la liste, cherche ton périphérique et prend son numéro de bus, xxx, et son numéro de device sans le :,yyy.
Ensuite lance la commande
udev info -a -p $(udevadm info -q path -n /dev/bus/usb/xxx/yyy)
Toutes tes infos udev seront affichés. sert-en pour créer tes règles...
si tu as des pb après avoir lu la doc, envoie tes questions j'y répondrai si je peux...
a plus jy
Dernière modification par jy_moustache (Le 27/11/2009, à 09:38)
Hors ligne
#5 Le 27/11/2009, à 18:08
- Lenslarque
Re : UDEV point montage clef USB
Merci de ton aide
J'ai bien parcouru la doc mais ça reste obscure, car je suis dans un cas particulier, j'aimerai que toutes mes clefs USB
montent dans le même point de montage, peut-importe leur ID
par exemple /media/disk
J'ai essayé ça KERNEL=="sdb", DRIVER=="usb", SYMLINK+="disk"
Mais ça ne donne rien ...
Hors ligne
#6 Le 29/11/2009, à 21:51
- jy_moustache
Re : UDEV point montage clef USB
salut
en fait la difficulté devra etre de reconnaitre que le périphérique branché est une clé usb qui est branchée.
si tu utilises toujours le meme modele de clé on devrait s'en sortir, mais je suppose que ce n'est pas le cas...
dans ce cas, je ne vois pas trop.
désolé
jy
Hors ligne
#7 Le 30/11/2009, à 09:15
- Lenslarque
Re : UDEV point montage clef USB
Oui justement c'est ça le problème, dommage que UDEV soit aussi obscur ... Même pour renommer une simple clef c'est pas forcément évident.
Sinon je réfléchissais à un truc, il y a peut-être un moyen de détecter le nouveau montage en script shell, et le récupérer en variable ?
Dans ce cas je pourrais peut-être modifier mes scripts en mettant au début une détection du montage.
Hors ligne
#8 Le 30/11/2009, à 09:29
- jy_moustache
Re : UDEV point montage clef USB
salut
c'est une bonne question mais je ne sais pas si ca marche. essaie un truc du genre
MA_CONDITION=="/bin/sh mon_script_de_detection"
en fait je me demande s'il y a un moyen simple de détecter que le périphérique branché est une clé usb. j'ai regardé chez moi hier soir et en terme de règles udev, j'ai pas réussi. faudrait peut-etre voir les critères udev secondaires
jy
Dernière modification par jy_moustache (Le 30/11/2009, à 09:29)
Hors ligne
#9 Le 30/11/2009, à 09:59
- Lenslarque
Re : UDEV point montage clef USB
Oui je vais voir ça , mais peut-être faut-il penser autrement sans utiliser UDEV, en regardant ce qui se passe dans /media par exemple ou dans /dev
Hors ligne
#10 Le 30/11/2009, à 10:08
- jy_moustache
Re : UDEV point montage clef USB
ouais peut-etre, mais ca veut dire qu'il faut que ton script doit etre lancé sur détection de branchement de la clé, ce qui sera fait par udev ... :-)
jy
Dernière modification par jy_moustache (Le 30/11/2009, à 10:09)
Hors ligne
#11 Le 30/11/2009, à 10:39
- Lenslarque
Re : UDEV point montage clef USB
Pas forcement, pour mon besoin, j'ai juste besoin que mes scripts lorsqu'ils se lancent connaisse le chemin de la clef sans avoir besoin de le renseigner.
Donc lorsque je lance le script il pourrait commencer par vérifier si la clef est montée quelque part puis conserver le chemin en variable.
Hors ligne
#12 Le 30/11/2009, à 10:44
- jy_moustache
Re : UDEV point montage clef USB
aaaaaah ok
je pensais que tu voulais absolument que tout soit fait automatiquement lorsque tu branches la clé.
si tu t'autorise a lancer un script, fais le peut-etre comme ca. ca sera probablement plus simple...
au fait, as-tu essayé de formater tes clés et de leur donner à toutes le même nom ? auquel cas, la règle udev sera plus facile a faire ...
jy
Hors ligne
#13 Le 30/11/2009, à 11:25
- Lenslarque
Re : UDEV point montage clef USB
Ok ça marche pour ceux que ça intéresse voir -> http://www.unix.com/fr/shell-programming-scripting/104737-bash-script-detect-list-usb-flash-drives.html
Avec ceci (sur une Mandriva)
#!/bin/sh
for udi in $(/usr/bin/hal-find-by-capability --capability storage)
do
device=$(hal-get-property --udi $udi --key block.device)
vendor=$(hal-get-property --udi $udi --key storage.vendor)
model=$(hal-get-property --udi $udi --key storage.model)
if [[ $(hal-get-property --udi $udi --key storage.bus) = "usb" ]]
then
parent_udi=$(hal-find-by-property --key block.storage_device --string $udi)
mount=$(hal-get-property --udi $parent_udi --key volume.mount_point)
label=$(hal-get-property --udi $parent_udi --key volume.label)
media_size=$(hal-get-property --udi $udi --key storage.removable.media_size)
printf "$vendor $model $device $mount $label \n"
fi
done
J'ai le résultat
USB DISK 2.0 /dev/sdb /media/NOUVEAU NOM NOUVEAU NOM
Hors ligne
#14 Le 30/11/2009, à 11:40
- jy_moustache
Re : UDEV point montage clef USB
super !
désolé de pas avoir pu plus t'aider... :-(
Hors ligne
Pages : 1