# [DEVICES] Centralisation des règles UDEV

## yoyo

UDEV est le remplaçant annoncé du système de gestion de périphériques DEVFS.

Il est (entre autre) beaucoup plus souple que son prédécesseur par l'ajout de règles pour nommer les périphériques dans /dev.

Ce thread a pour but de référencer les différentes règles que vous avez mises en place pour vos matériels afin que les futurs utilisateurs puissent s'appuyer dessus pour construire les leurs.

Vous pouvez donc ajouter vos règles ainsi que vos "trucs et astuces", si possibles commentés en les postant ici.

PS : Pour tout les curieux qui ne connaîtraient pas UDEV vous pouvez (devez   :Wink:  ) lire :

Le Guide udev pour Gentoo

L'article de Decibel qui traite en profondeur de UDEV sur systèmes Gentoo

L'article de Daniel Drake qui traite de l'écriture des règles

Une version francisée de cet article (le répertoire http://www-aius.u-strasbg.fr/~feth/udevrules/ reprend toutes les versions de UDEV, à vous de trouver la bonne)

EDIT : Ce thread n'est pas une "hot-line" dans lequel vous postez vos problèmes (ouvrez un autre thread pour cela)   :Arrow:   Postez plutôt vos solutions.   :Wink: 

EDIT 1 : Ajout du lien vers l'article de Decibel (suivant le conseil de Thom N2h) et de celui donné par ghoti pointant sur le répertoire des versions de UDEV pour l'écriture des règles. Je laisse celui pointant vers "writing_udev_rules-latest.txt" car comme son nom l'indique, il devrait concerner la dernière version de UDEV (et donc être mis à jour régulièrement).

----------

## ghoti

 *yoyo wrote:*   

> Une version francisée de cet article

 

Il s'agit de la version 0.53.

La version 0.54 est disponible ici

D'ailleurs, le répertoire http://www-aius.u-strasbg.fr/~feth/udevrules/ reprend toutes les versions.

Le Changelog n'est pas à jour, mais en se basant sur les dates ...  :Wink: 

----------

## guilc

Ouaip, bonne idée. D'ailleur, je propose de le mettre en sticky  :Smile: . Je poste mes regles :

Tout d'abord, les règles classiques pour avoir les bons lien sur le lecteur DVD et CDRom. Jusque la, rien de bien compliqué, il y a les memes dans la documentation qu'a donné yoyo en lien  :Wink:  :

```
# cat 01-ide.rules 

# lecteurs DVD/CDROM

BUS="ide", KERNEL="hdc", NAME="%k", SYMLINK="dvd cdroms/cdrom0"

BUS="ide", KERNEL="hdd", NAME="%k", SYMLINK="cdrom cdroms/cdrom1"
```

Pour mon bon vieux winmodem qui sert de temps en temps. Le but est ici de fair le lien /dev/modem vers /dev/ttyLT0 :

```
# cat 01-ltmodem.rules 

# LTModem, liens qui vont bien

KERNEL="ttyLT0", NAME="%k", SYMLINK="modem"
```

Pour ma carte TV, il manquait les liens de /dev/v4l/ vers /dev/ pour certains logiciels. Avec ces regles, on les rajoute. En fait, il suffit ici de rajouter les directives SYMLINK aux regles existantes :

```
# cat 01-tv.rules 

# v4l devices

KERNEL="video[0-9]*", NAME="v4l/video%n", SYMLINK="%k"

KERNEL="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK="%k"
```

Viennent ensuite mes règles pour nommer mes périphériques USB, afin de faciliter les points de montage. Cela suit exactement la doc udev : avec les directives SYSFS, on identifie le périphérique (on récupère ces informations dans un "udevinfo -a -p /sys/..."). Ensuite, on choisit le périphérique KERNEL dont on veut faire le lien, ici, sd?1, soit la première partition du périphérique sd?, où ? peut etre remplacé par a, b, c, etc..., donc c'est indépendant de l'ordre de branchement :

```
# cat 01-amovible.rules 

# Dur USB

BUS="scsi", SYSFS{model}="MK4021GAS       ", KERNEL="sd?1", NAME="%k", SYMLINK="dur"

# Clé USB

BUS="scsi", SYSFS{vendor}="Sony    ", SYSFS{model}="Storage Media   ", KERNEL="sd?1", NAME="%k", SYMLINK="microvault"

# Lecteur carte Flash

BUS="scsi", SYSFS{vendor}="Generic ", SYSFS{model}="STORAGE DEVICE  ", KERNEL="sd?1", NAME="%k", SYMLINK="flash"

# iRiver iHP-120

BUS="scsi", SYSFS{model}="MK2004GAL       ", KERNEL="sd?1", NAME="%k", SYMLINK="iHP-120"
```

Vous avez pu voir les noms de fichier : 01-***.rules. Ces fichiers sont placés dans /etc/udev/rules.d (attention, il faut les dernières version de udev pour avoir ce fonctionnement).

- 01-, c'est le numéro d'ordre. J'ai mis 01, pour les charger avant le fichier par défaut : 50-udev.rules (n'importe quel nombre inférieur a 50 convient en fait). Udev utilise la première règle qui convient pour un périphérique donné. C'est pour cela que je charge mes règles perso avant les regles par défaut.

- Le nom de fichier doit impérativement se terminer par ".rules", sinon, il ne semble pas etre chargé par udev

Voila  :Wink: 

Et longue vie a UDEV !!!!!!!

----------

## TGL

J'aime bien l'idée, allez hop, un petit coup de colle !

----------

## guilc

Je reste assez perplexe sur ce coup :

Personne n'a fait des petites regles perso pour udev ???

----------

## DuF

Moi j'ai pas de rêgle à proposer mais je dis merci car m'en suis servi de certaines, notamment pour l'iHP 120 car j'en ai un aussi  :Wink: 

----------

## Garko

Le lien vers "l'article de Decibels" ne fonctionne plus (erreur 404)

----------

## ghoti

 *Garko wrote:*   

> Le lien vers "l'article de Decibels" ne fonctionne plus (erreur 404)

   :Question:   :Question: 

Pas de problème pour moi : ça marche toujours ...

----------

## yuk159

 *ghoti wrote:*   

>  *Garko wrote:*   Le lien vers "l'article de Decibels" ne fonctionne plus (erreur 404)   
> 
> Pas de problème pour moi : ça marche toujours ...

 

Idem

----------

## robinhood

```
# USB Canon S200 (oui je sais)

BUS="usb", SYSFS_serial="20EL3S", NAME="%k" SYMLINK="usblp0"

# USB HP 840c

BUS="usb", SYSFS_serial="HU08A1S356KV", NAME="%k" SYMLINK="usblp1"

#symlink dvd et cdrw

BUS="ide", KERNEL="hdc", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2} cdrw"

BUS="ide", KERNEL="hdd", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2} dvd"
```

Rien de très original. par contre c'est bizarre, j'ai une clef usb qui fonctioone très bien, mais je m'apperçoit que j'ai pas de règle pour elle. Est-ce que ça aurait un rapport avec hotplug ?

----------

## ghoti

Finalement je me suis tout de même décidé à installer UDEV !  :Smile: 

Ce qui m'intéressait surtout c'était de régler une fois pour toutes mes démêlés avec ma tablette Wacom.

En effet, sa particularité est d'utiliser directement un périphérique /dev/input/eventxx pour pouvoir accéder aux fonctionnalités étendues (autres que simple souris ps/2 en mode absolu ...). Comme les numéros de ces périphériques changent facilement selon l'humeur de la machine, c'était vraiment pas la gloire.

Grâce à UDEV, c'est enfin résolu :

```
bigben $ cat /etc/udev/rules.d/01-wacom_graphire.rules

# 11/07/2004 Régle UDEV

# Tablette Wacom Graphire-II USB

BUS="usb", KERNEL="event*", SYSFS{product}="ET-0405A-UV2.0-3", NAME="/input/%k", SYMLINK="/input/graphire"
```

Tiens, la traduction française de la doc Daniel Drake n'a plus l'air d'être accessible : 403 Forbidden  :Sad: 

La version 0.54 est encore disponible dans le cache de Google mais faut sans doute se dépêcher !

[EDIT 28/07] OK : l'accès est rétabli !  :Smile:  [/EDIT]

----------

## sireyessire

modeste contribution dans un monde si large:

Pour l'ipod en firewire

```
$cat /etc/udev/rules.d/02-ieee1394.rules 

#ipod

BUS="scsi", SYSFS{model}="iPod            ", KERNEL="sd?2", NAME="ipod/storage", SYMLINK="%k ipod"

```

----------

## fribadeau

Bon. Contribuons un coup :

Ma clé USB est vue mais la partition n'est pas créée avant le premier accès (sdc là mais pas sdc1). Pour ça :

```
BUS="scsi", SYSFS{model}="DiskOnKey       ", SYSFS{vendor}="M-Sys   ", KERNEL="sd*", NAME{all_partitions}="DoK"
```

Et voilou, ça marche. Mon DoK1 est créé automatiquement dès que j'insère ma clé.

----------

## marvin rouge

+1

disque dur externe firewire (ieee1394), Maxtor. je fais un symlink sur /dev/firewire%n , comme ca le fstab ne s'emmele pas les /dev/sd?? si en plus il y a une cle USB ...

```

#ieee1394 mass storage rules

BUS="ieee1394", KERNEL="sd*", SYSFS{vendor_name_kv}="Maxtor", NAME="%k", SYMLINK="firewire%n"

```

Clé USB

```

#clé usb 

BUS="usb", KERNEL="sd*", SYSFS{serial}="07471B0C0021", NAME="%k", SYMLINK="usbkey%n"

```

edit: ajout règle pour la clé USB

----------

## kernelsensei

petite variante pour le disque Maxtor :

```
#MAXTOR_HD:

BUS="scsi", SYSFS{model}="OneTouch        ", SYSFS{vendor}="Maxtor  ", KERNEL="sd*", NAME="%k", SYMLINK="maxtor%n"

```

----------

## sireyessire

un petit nouveau: le hp R707, appareil photo numérique (digital camera)

```

BUS="usb", SYSFS{product}="HP  PhotoSmart R707                       ",KERNEL="sd?1", NAME="hpr707", SYMLINK="%k hp707"
```

n'a été testé que avec une SDcard dedans.

----------

## blackshack

Voilà donc je teste udev en créant une partoche contenant une gentoo base sur udev "stricte". J'ai donc bien suivi tout la doc (aussi bien ce topic que tous les liens qui y sont donné) mais j'ai tjrs un problème.

Voilà au démarrage le système a besoin de dev/null et dev/console forcément device qui ne peuvent être crée par udev, car celui-ci est lancé plus tard. Dans la doc, il est indiqué que dans ce cas là, il faut crée en statique ces devices avec mknod, ok je l'ai fait. Mais là survient le pb: au boot il m'indique tjrs que dev/console n'existe pas, le device null reste bien en place mais le console "s'efface" a chaque fois, ce que je ne comprends pas car la création statique de ce device ne devrait pas faire cela.

Si quelqu'un a une solution  :Question:   :Question: 

Blackshack

----------

## DuF

Comme indiqué dans le message original......

EDIT : Ce thread n'est pas une "hot-line" dans lequel vous postez vos problèmes (ouvrez un autre thread pour cela)  :Arrow:  Postez plutôt vos solutions.   :Wink:  

----------

## blackshack

scuse désolé je recommencerais plus, si on peut effacer mes postes bin allez y

----------

## totoro

Bon si ca peut aider gens voila mes règles:

Mes périphériques "usb-storages" (pas de symlink pour éviter de surcharger les /dev/sd ....

```

#MMC READER

#Secure Digital

BUS="scsi", KERNEL="sd?", SYSFS{model}="USB Reader-SD",SYSFS{vendor}="Generic ", NAME="cardreader/sd"

BUS="scsi", KERNEL="sd?[1-9]", SYSFS{model}="USB Reader-SD",SYSFS{vendor}="Generic ", NAME="cardreader/sd%n"

#Compact Flash

BUS="scsi", KERNEL="sd?", SYSFS{model}="USB Reader-CF",SYSFS{vendor}="Generic ", NAME="cardreader/cf"

BUS="scsi", KERNEL="sd?[1-9]", SYSFS{model}="USB Reader-CF",SYSFS{vendor}="Generic ", NAME="cardreader/cf%n"

#Smart Media

BUS="scsi", KERNEL="sd?", SYSFS{model}="USB Reader-SMC",SYSFS{vendor}="Generic ", NAME="cardreader/smc"

BUS="scsi", KERNEL="sd?[1-9]", SYSFS{model}="USB Reader-SMC",SYSFS{vendor}="Generic ", NAME="cardreader/smc%n"

#Memory Stick

BUS="scsi", KERNEL="sd?", SYSFS{model}="USB Reader-MS",SYSFS{vendor}="Generic ", NAME="cardreader/ms"

BUS="scsi", KERNEL="sd?[1-9]", SYSFS{model}="USB Reader-MS",SYSFS{vendor}="Generic ", NAME="cardreader/ms%n"

#I-RIVER IHP-120

BUS="scsi", SYSFS{model}="MK2004GAL       ", KERNEL="sd?", NAME="usbdrives/iriver"

BUS="scsi", SYSFS{model}="MK2004GAL       ", KERNEL="sd?[1-9]", NAME="usbdrives/iriver%n"

#ARCHOS Jukebox 6000

BUS="scsi", SYSFS{model}="MK6015MAP       ", KERNEL="sd?", NAME="usbdrives/archos"

BUS="scsi", SYSFS{model}="MK6015MAP       ", KERNEL="sd?[1-9]", NAME="usbdrives/archos%n"

#Sony DSC-P1

BUS="scsi", SYSFS{model}="Sony DSC        ", KERNEL="sd?", NAME="usbdrives/sonydsc"

BUS="scsi", SYSFS{model}="Sony DSC        ", KERNEL="sd?[1-9]", NAME="usbdrives/sonydsc%n"

```

Mon téléphone bluetooth

```

#Sony Ericsson T630

SYSFS{dev}="216:0" SYMLINK="phone"

```

----------

## guilc

Tat que j'y pense : un peu plus haut, j'avais proposé ça :

```
# cat 01-ide.rules

# lecteurs DVD/CDROM

BUS="ide", KERNEL="hdc", NAME="%k", SYMLINK="dvd cdroms/cdrom0"

BUS="ide", KERNEL="hdd", NAME="%k", SYMLINK="cdrom cdroms/cdrom1"
```

 Pour avoir les bons liens /dev/dvd et /dev/cdrom...

Avec les version udev plus récentes, y a plus besoin ! le script ide-devfs.sh détermine tout seul les capacités des lecteurs, et fait les bons liens /dev/cdrom, /dev/dvd, /dev/cdrw, etc... Donc que du bonheur  :Wink: 

----------

