Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2009, à 13: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, à 18:28

jy_moustache

Re : UDEV point montage clef USB

salut

j'ai un peu le meme soucis en ce moment.. smile
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, à 18:30)

Hors ligne

#3 Le 26/11/2009, à 19: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, à 10: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 smile

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, à 10:38)

Hors ligne

#5 Le 27/11/2009, à 19: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, à 22: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, à 10: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, à 10: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, à 10:29)

Hors ligne

#9 Le 30/11/2009, à 10: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, à 11: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, à 11:09)

Hors ligne

#11 Le 30/11/2009, à 11: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, à 11: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, à 12: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, à 12:40

jy_moustache

Re : UDEV point montage clef USB

super !

désolé de pas avoir pu plus t'aider... :-(

Hors ligne