Udev Webcam

vendredi 1 avril 2022 · 2 minutes · 264 mots

Vous pouvez forcer l’emplacement de la webcam d’un point de vue “device linux” : même si on change le port USB, on pourrait toujours avoir notre webcam sur /dev/video99 (par exemple).

Vous pouvez aussi configurer la webcam lorsque son paramétrage n’est pas sauvegardé (cas d’utilisation avec OBS).

Pour cela, on va utiliser des règles udev pour détecter notre caméra et faire les ajustements nécessaires.

Ne pas oublier d’installer le paquet “v4l-utils” qui contient l’utilitaire “v4l2-ctl” permettant de configurer la webcam.

Suivez le guide !

Tout d’abord, vous devez récupérer les identifiants de votre caméra en inspectant la sortie de la commande lsusb :

lsusb | grep -i Webcam

# Bus 001 Device 014: ID 046d:082d Logitech, Inc. HD Pro Webcam C920

Les informations qui nous intéressent se trouvent après le mot clé “ID” sous la forme “vendeur:produit”. Dans l’exemple, l’id vendeur vaut 046d et l’id produit 082d.

On va insérer ces informations dans un nouveau fichier udev à créer en mode root (sudo) : /etc/udev/rules.d/99-webcam.rules

# -- always links to /dev/video99 

SUBSYSTEM=="video4linux", KERNELS=="1-8", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="082d", SYMLINK+="video99"

# -- set power line to 50HZ

SUBSYSTEM=="video4linux", KERNELS=="1-8", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="082d", RUN+="/usr/bin/v4l2-ctl -d $devnode -c power_line_frequency=1"

Ici, on doit viser au plus près le sous-système, via “video4linux”, et non pas se contenter du système “usb” qui est trop haut dans la hiérarchie.

Remarque: on ne change pas le nom du device comme on pourrait le faire pour une carte réseau, on ne peut que créer un lien.

Pour une prise en compte immédiate de ces modifications, on peut relancer udev :

sudo udevadm control --reload-rules && sudo udevadm trigger