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

udev, hotplug,sysfs,dbus et hal !!!

12 réponses
Avatar
Bayrouni
Je me suis lancé il y a quelques semaines dans udev, hotplug et sysfs.
J'ai lu la doc et j'ai compris la relation qui existe entre ces trois programmes.

Si je branche une camera, le device correspondant est crée par udev et un symlink que
j'ai configuré dans l'un des fichiers de config de udev, est crée dans /dev
(/dev/camera).

Jusque là tout va bien, mais le but est de pouvoir monter automatiquement ce
/dev/camera sur /mnt/camera par exemple.

Avant de me lancer à nouveau dans la lecture de docs, je voudrais savoir si ce trio
(udev, hotplug et sysfs) est suffisant pour faire cette tâche.

Sinon en plus de ce trio, c'est quoi encore HAL ET DBus?

et quelle est la relation entre le trio et ce duo?

Merci
--
Bayrouni
Email: bayrouni@brutele.be


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2
Avatar
Tyler
Bayrouni wrote:
Je me suis lancé il y a quelques semaines dans udev, hotplug et sysfs.
J'ai lu la doc et j'ai compris la relation qui existe entre ces trois
programmes.

Si je branche une camera, le device correspondant est crée par udev et
un symlink que j'ai configuré dans l'un des fichiers de config de udev,
est crée dans /dev (/dev/camera).

Jusque là tout va bien, mais le but est de pouvoir monter
automatiquement ce /dev/camera sur /mnt/camera par exemple.

Avant de me lancer à nouveau dans la lecture de docs, je voudrais savoir
si ce trio (udev, hotplug et sysfs) est suffisant pour faire cette tâche.

Sinon en plus de ce trio, c'est quoi encore HAL ET DBus?

et quelle est la relation entre le trio et ce duo?

Merci


Salut,

moi aussi je me suis mis y a pas longtemps a hal, dbus et udev.
HAL (Hardware Abstraction Layer) et dbus permettent de detecter
automatiquement des evenements materiels (branchement d'une clé usb,
ejection d'un cd...) et d'effectuer des actions en consequences.

plusieurs démons existents (gnome-volume-manager et ivman a ma
connaissance) permettant de configurer les actions voulues.
gnome-volume-manager est proche de gnome et un peu chiant pr les
utilisateurs d'autre wm. ivman est pas mal configurable, moi jlaime bien.

En tout cas c'est pas mal du tout, ca permet par exemple d'afficher une
icone lorsquune clé usb est branchée.

A noter qu'il y a quelques problemes avec les paquets debian.
Il faut utiliser dbus et non dbus-1.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
giggz
pour avoir le montage automatique de tes périphériques :
hal,
hal-device-manager,
gnome-volume-manager,
pmount,
dbus

je crois que j'ai rien oublié. y a pas mal de fil qui traine sur ce
sujet. bon malheureusement pour toi c'est po trop le moment de les
installer, car y a des bug! chez moi le montage des périphériques usb
ne se faient plus depuis aujourd'hui (c'est un bug déjà reporté...);
ms sinon ça marche nickel et c'est plus que plaisant!!!

tcho
Avatar
Frédéric BOITEUX
Le jeu 02 fév 2006 13:17:10 CET, Nicolas Folin .fr> a
écrit :
J'en profite pour me greffer.


Ne nous gênons pas ;-)

Moi, je n'ai pas vraiment bien saisi:
udev est correctement installé, je pense que le reste aussi (j'ai un
/etc/udev, un /etc/hotplug et j'ai bien
compilé mon noyau avec sysfs)

Mes clefs usb et mon appareil photo se connectent automatiquement une
fois branchés.

Moi, ce que je voudrais, c'est justement arriver à faire créer le
/dev/nikon_coolpix et le /dev/clef_usb
Il me détecte l'appareil comme un "faux scsi" et crée /dev/sb1.

Mais si jamais je le démonte mal ou que je le branche dans un autre por t
usb, il va prendre le suivant
et créer /dev/sc1.



Problème classique d'udev : voir une doc comme :
http://www.reactivated.net/writing_udev_rules.html#example-camera

Fred.
Avatar
Nicolas Folin
J'en profite pour me greffer.
Moi, je n'ai pas vraiment bien saisi:
udev est correctement installé, je pense que le reste aussi (j'ai un
/etc/udev, un /etc/hotplug et j'ai bien
compilé mon noyau avec sysfs)

Mes clefs usb et mon appareil photo se connectent automatiquement une
fois branchés.

Moi, ce que je voudrais, c'est justement arriver à faire créer le
/dev/nikon_coolpix et le /dev/clef_usb
Il me détecte l'appareil comme un "faux scsi" et crée /dev/sb1.

Mais si jamais je le démonte mal ou que je le branche dans un autre port
usb, il va prendre le suivant
et créer /dev/sc1.

Pour automount et fstab, c'est pas génial.


-----

Pour répondre à ton problème de "connection automatique", il y a autofs
qui marche bien.
Soit tu l'as en module, soit en démon. Dans tous les cas, ça fonctionne
simplement.
Je l'utilise pour les connexions réseau et les 'médias' comme les cdrom:
ça marche en deux fichiers:
le premier est /etc/auto.master et tu mets dedans ce genre de chose:
/divers /etc/auto.divers
/nfs /etc/auto.nfs --timeout`

Ca veux dire que dès qu'un accés à /samba ou /nfs est fait, il va
regarder les paramètres dans /etc/auto.samba (ou autre)
pour monter les répertoires correctement. Le timeout sert à
'déconnecter' après inutilisation pendant XX secondes.

Dans les fichiers de configurations, tu mets des trucs du genre:
/etc/auto.nfs
akela-home -fstype=nfs,rsize922,wsize92,timeo,intr
akela://home

Ca va créer le sous-répertoire akela-home du répertoire /nfs, avec les
options indiquées, et ça montera dedans 'akela://home'
autre exemple:
/etc/auto.divers
appareil_photo auto ://dev/camera

créera le sous répertoire appraeil_photo et montera dedans
localhost://dev/camera


Pour y accéder simplement ensuite, il faut faire un lien symbolique vers
cet emplacement
ln -s /mnt/appareil /divers/appareil_photo

comme ça, en faisant un ls /mnt/appareil, autofs montera automatiquement
/dev/camera s'il en a la possibilité
dans /divers/appareil_photo.

Sinon, il faut faire un ls /divers/appareil_photo sans la complétion
(puisque le répertoire n'existe pas encore).

J'espère avoir été assez clair.
Amicalement
Nicolas Folin.



Tyler a écrit :
Bayrouni wrote:
Je me suis lancé il y a quelques semaines dans udev, hotplug et sysfs.
J'ai lu la doc et j'ai compris la relation qui existe entre ces trois
programmes.

Si je branche une camera, le device correspondant est crée par udev
et un symlink que j'ai configuré dans l'un des fichiers de config de
udev, est crée dans /dev (/dev/camera).

Jusque là tout va bien, mais le but est de pouvoir monter
automatiquement ce /dev/camera sur /mnt/camera par exemple.

Avant de me lancer à nouveau dans la lecture de docs, je voudrais
savoir si ce trio (udev, hotplug et sysfs) est suffisant pour faire
cette tâche.

Sinon en plus de ce trio, c'est quoi encore HAL ET DBus?

et quelle est la relation entre le trio et ce duo?

Merci


Salut,

moi aussi je me suis mis y a pas longtemps a hal, dbus et udev.
HAL (Hardware Abstraction Layer) et dbus permettent de detecter
automatiquement des evenements materiels (branchement d'une clé usb,
ejection d'un cd...) et d'effectuer des actions en consequences.

plusieurs démons existents (gnome-volume-manager et ivman a ma
connaissance) permettant de configurer les actions voulues.
gnome-volume-manager est proche de gnome et un peu chiant pr les
utilisateurs d'autre wm. ivman est pas mal configurable, moi jlaime bien.

En tout cas c'est pas mal du tout, ca permet par exemple d'afficher
une icone lorsquune clé usb est branchée.

A noter qu'il y a quelques problemes avec les paquets debian.
Il faut utiliser dbus et non dbus-1.






--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Frédéric BOITEUX
Le jeu 02 fév 2006 13:43:21 CET, Nicolas Folin .fr> a
écrit :
Bon. J'ai bien compris l'idée, j'ai ma ligne de règle...enfin, je cro is.

Mon problème à moi, c'est que je dois la mettre OU, cette règle ?
L'anglais utilisé étant un poil plus technique que ce que j'ai l'habi tude
de lire, je ne l'ai peut être pas vu.....


dans /etc/udev/rules.d/010_mes_regles_a_moi.rules par exemple (010 = fich ier lu
avant les autres du même répertoire, suivant l'ordre lexicographique)

je devrais avoir un truc du genre:

BUS="scsi", SYSFS{vendor}="NIKON ", KERNEL="sd?1", NAME="%k",
SYMLINK="MonNikonAMoi"

sauf que je sèche pour KERNEL et NAME...



Les définitions que tu donnes me semblent bien :
KERNEL="sd?1" -> les périphériques dont le nom du noyau est /dev/sd? 1,
comme /dev/sda1, /dev/sdb1, etc.
NAME="%k" -> signifie qu'udev créera bien ce périphérique /dev /sdb1,
mais en plus le lien que tu indiques...

Fred.
Avatar
Nicolas Folin
a écrit :
Selon Nicolas Folin :


J'insiste un peu plus:

J'ai un disque dur usb qui possède deux partitions, mais les données
récupérées par udevinfo sont
les mêmes. Je n'ai que les "major/minor" dans la première partie qui
diffère.

Ces nombres "major/minor" sont-ils uniques ?




Oui.



ie me permettent-il de détecter "à coup sûr" les partitions 1 et 2,
ou vont-il être changé au prochain redémarrage ?




Comme on parle de périférique USB, la réponse est *non* : pour
eux, tout dépend de l'ordre dans lequel tu branches tes périfs
de type mass-storage (usb-storage).

Chaque périférique sur ton système a un numéro majeur, mineur et
un type : périférique bloc (eg disque dur) ou caractère (eg
souris). Ces numéros et types sont déterminés par les drivers qui
les gèrent et, grosso-modo, sont affecté dans l'ordre de
détection.

Bien qu'il n'est pas possible qu'en ce qui concerne les
périfériques USB les numéros majeurs et mineurs soient toujours
idendiques (sauf si tu n'as qu'un seul périf de ce type -- et
encore), il et toutefois possible de déterminer, grâce aux numéros
mineurs, quelle sont les partitions : c'est toujours dans l'ordre.

En ce qui concerne le SCSI, voici un extrait du fichier
devices.txt inclu dans la documentation du noyau :

8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk

Ce qui signifie que chaque disque scsi (pouvant aller de a à p)
ne contient au maximum que 15 partitions. Le majeur sera toujours
8, mais le mineur peut valoir de 1 à 255, en sautant tous les
multiples de 16 (qui correspondent au disque entier).

Dans ce cas, la 1ère partition du disque sda aura toujours le
mineur 1, la 1ère partition du disque sdb aura toujours le mineur
17, et ainsi de suite.

Suivant ce que tu comptes faire, il est toujours possible
d'utiliser ces informations pour en faire quelquechose.


Thomas.



Comme mes périphériques usb sont "assimilés" à du scsi, et que l'ordre à
une importance, je crois que je ne
vais pas pouvoir faire ce que je voulais.

D'après ce que j'ai compris de udev, on peut faire des règles pour des
partitions de disque dur, mais pas pour des disques dur entier.
Il n'y a aucun moyen de dire à udev que /dev/disqueUSB est un disque
dur et qu'il détecte tout seul les (sous)-partitions ?
Il créerait tout seul /dev/disqueUSB1 et /dev/disqueUSB2...

J'ai voulu essayer en faisant une règle sur /dev/sdb au lieu de
/dev/sdb1, mais ça ne donne
rien .... dommage...
Si quelqu'un sait (possible, pas possible, si possible : comment ?...)...

Merci encore.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Bayrouni
Nicolas Folin wrote:
J'en profite pour me greffer.
Moi, je n'ai pas vraiment bien saisi:
udev est correctement installé, je pense que le reste aussi (j'ai un
/etc/udev, un /etc/hotplug et j'ai bien
compilé mon noyau avec sysfs)

Mes clefs usb et mon appareil photo se connectent automatiquement une
fois branchés.

Moi, ce que je voudrais, c'est justement arriver à faire créer le
/dev/nikon_coolpix et le /dev/clef_usb
Il me détecte l'appareil comme un "faux scsi" et crée /dev/sb1.

Mais si jamais je le démonte mal ou que je le branche dans un autre port
usb, il va prendre le suivant
et créer /dev/sc1.



C'est justement là la raison pour laquelle udev est né.
Donner toujours un meme nom au periphérique branché.Ma camera/APN JVC, est détéctée
automatiquement en tant que masse storage de type scssi et le kernel lui donne à
chaque detection un nom different dans /dev (/dev/sdb, sdc; sdd) mais pour moi ça
reste toujours sous /dev/camera que depuis j'ai renommé /dev/jvc_storage.

Pour celà, il faudra juste ajouter une precision dans ton fichier de conf se trouvant
chez moi dans /etc/udev/rules.d

en voici un extrait:
BUS="scsi",SYSFS{vendor}=="JVC", NAME="%k" SYMLINK="jvc_storage%n"

SYMLINK="jvc_storage%n" permet de creer un lien symbolique vers le nom que le noyau a
donné au peripherique.
jvc_storage%n (ton symlink) ---> NAME="%k"(nom donné par le kernel)

J'ai fait la meme chose avec ma webcam:

SYSFS{name}=="SPCA5XX USB Camera", SYSFS{model}=="Labtec Webcam" NAME="%k"
SYMLINK="webcam_labtec"

En esperant avoir repondu à ta question...
Amicalement



Pour automount et fstab, c'est pas génial.







-----

Pour répondre à ton problème de "connection automatique", il y a autofs
qui marche bien.
Soit tu l'as en module, soit en démon. Dans tous les cas, ça fonctionne
simplement.
Je l'utilise pour les connexions réseau et les 'médias' comme les cdrom:
ça marche en deux fichiers:
le premier est /etc/auto.master et tu mets dedans ce genre de chose:
/divers /etc/auto.divers
/nfs /etc/auto.nfs --timeout`

Ca veux dire que dès qu'un accés à /samba ou /nfs est fait, il va
regarder les paramètres dans /etc/auto.samba (ou autre)
pour monter les répertoires correctement. Le timeout sert à
'déconnecter' après inutilisation pendant XX secondes.

Dans les fichiers de configurations, tu mets des trucs du genre:
/etc/auto.nfs
akela-home -fstype=nfs,rsize922,wsize92,timeo,intr
akela://home

Ca va créer le sous-répertoire akela-home du répertoire /nfs, avec les
options indiquées, et ça montera dedans 'akela://home'
autre exemple:
/etc/auto.divers
appareil_photo auto ://dev/camera

créera le sous répertoire appraeil_photo et montera dedans
localhost://dev/camera


Pour y accéder simplement ensuite, il faut faire un lien symbolique vers
cet emplacement
ln -s /mnt/appareil /divers/appareil_photo

comme ça, en faisant un ls /mnt/appareil, autofs montera automatiquement
/dev/camera s'il en a la possibilité
dans /divers/appareil_photo.

Sinon, il faut faire un ls /divers/appareil_photo sans la complétion
(puisque le répertoire n'existe pas encore).

J'espère avoir été assez clair.
Amicalement
Nicolas Folin.



Tyler a écrit :

Bayrouni wrote:






--
Bayrouni
Email:


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
tnemeth
Selon Nicolas Folin :

J'insiste un peu plus:

J'ai un disque dur usb qui possède deux partitions, mais les données
récupérées par udevinfo sont
les mêmes. Je n'ai que les "major/minor" dans la première partie qui
diffère.

Ces nombres "major/minor" sont-ils uniques ?



Oui.


ie me permettent-il de détecter "à coup sûr" les partitions 1 et 2,
ou vont-il être changé au prochain redémarrage ?



Comme on parle de périférique USB, la réponse est *non* : pour
eux, tout dépend de l'ordre dans lequel tu branches tes périfs
de type mass-storage (usb-storage).

Chaque périférique sur ton système a un numéro majeur, mineur et
un type : périférique bloc (eg disque dur) ou caractère (eg
souris). Ces numéros et types sont déterminés par les drivers qui
les gèrent et, grosso-modo, sont affecté dans l'ordre de
détection.

Bien qu'il n'est pas possible qu'en ce qui concerne les
périfériques USB les numéros majeurs et mineurs soient toujours
idendiques (sauf si tu n'as qu'un seul périf de ce type -- et
encore), il et toutefois possible de déterminer, grâce aux numéros
mineurs, quelle sont les partitions : c'est toujours dans l'ordre.

En ce qui concerne le SCSI, voici un extrait du fichier
devices.txt inclu dans la documentation du noyau :

8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk

Ce qui signifie que chaque disque scsi (pouvant aller de a à p)
ne contient au maximum que 15 partitions. Le majeur sera toujours
8, mais le mineur peut valoir de 1 à 255, en sautant tous les
multiples de 16 (qui correspondent au disque entier).

Dans ce cas, la 1ère partition du disque sda aura toujours le
mineur 1, la 1ère partition du disque sdb aura toujours le mineur
17, et ainsi de suite.

Suivant ce que tu comptes faire, il est toujours possible
d'utiliser ces informations pour en faire quelquechose.


Thomas.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Nicolas Folin
J'insiste un peu plus:

J'ai un disque dur usb qui possède deux partitions, mais les données
récupérées par udevinfo sont
les mêmes. Je n'ai que les "major/minor" dans la première partie qui
diffère.

Ces nombres "major/minor" sont-ils uniques ? ie me permettent-il de
détecter "à coup sûr"
les partitions 1 et 2, ou vont-il être changé au prochain redémarrage ?
(dans cette session,
ils sont "constants")

Sinon, je vais me fendre d'un formatage, c'est pas grave - c'était
histoire d'apprendre des
choses.

Merci encore pour m'avoir aidé.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Nicolas Folin
Maintenant que j'ai compris udev, je relance le débat:

Mon joystick; une fois branché, se retrouve dans /dev/input/js0
Il le fait correctement, je peux l'utiliser, etc.
Par contre, je n'arrive pas à créer le 'SYMLINK' correctement...
J'ai rajouté ça dans mon fichier udev, mais je crois que c'est 'KERNEL'
qui n'est pas bon.

SUBSYSTEM="input", SYSFS{name}="Thrustmaster Thrustmaster vibrating
gamepad",KERNEL="js?", NAME="%k", SYMLINK="thrustmaster_fil"

Je cherche en parallèle sur le net, mais je ne trouve pas si facilement
que ça....


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2