Réglages webcam sur tablette PC Thinkpad Helix 3xxx

Ce superbe petit appareil est disponible chez mes revendeurs grossistes spécialisés dans le réemploi d’ordinateurs. Ils révisent et fournissent une petite garantie qui permet d’acheter en confiance des ordinateurs d’occasion de qualité issus du monde professionnel.

Thinkpad Helix 3xxx

 Thinkpad Helix 3xxx sous Xubuntu

Celui dont il est question ici est un Hélix 3470 avec un processeur Intel i5 et 4 Go de mémoire vive, plus un SSD M2 de 128 Go, le tout dans l’écran et amovible : en effet, c’est une tablette-pc avec un bon petit clavier, le même que d’autres Thinkpad récents.

Côté webcam, il est équipé, comme toute tablette, d’une caméra avant, mode selfie, et d’une caméra arrière.

Lorsque vous voulez discuter avec vos amis en visioconférence, le mode avant est préféré, alors que le mode arrière vous permettra de réaliser des photos et des vidéos.

C’est toujours le mode arrière qui est sélectionné par défaut, ce qui peut être un problème si l’on souhaite surtout communiquer avec amis et famille, en particulier depuis le navigateur web Firefox.

Cet Hélix 3 a été installé sous Xubuntu 18.04. Voici la configuration réalisée pour obtenir le résultat le plus proche possible de ce que l’utilisateur final souhaite, à savoir pouvoir discuter en direct par visio depuis un navigateur web sans avoir à s’occuper de faire la sélection à chaque nouvelle session.

Premièrement, les outils : j’ai installé uvcdynctrl, un outil en ligne de commande qui m’a permis d’obtenir une information sur les 2 webcams.

En mode administrateur:

$ sudo uvcdynctrl --list
[sudo] Mot de passe de xxxxxx :
Listing available devices:
video0 Integrated Rear Camera
Media controller device: /dev/media0
Entity 1: Integrated Rear Camera. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
Device node
Entity: 1, Pad 0, Flags: 1
video2 Integrated Camera: Integrated C
Media controller device /dev/media2 doesn't exist
ERROR: Unable to list device entities: Invalid device or device cannot be opened. (Code: 5)
video1 Integrated Rear Camera
Media controller device: /dev/media1
Entity 1: Integrated Camera: Integrated C. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
Device node
Entity: 1, Pad 0, Flags: 1
video3 Integrated Camera: Integrated C
Media controller device /dev/media3 doesn't exist
ERROR: Unable to list device entities: Invalid device or device cannot be opened. (Code: 5)
$

 

Où je constatais que la webcam avant et celle arrière sont représentées chacune par deux périphériques virtuels (de type “character device”, traduction approximative, fichier de type caractère).

Par ailleurs, video0 et video1 sont en relation avec media0 et media1, toujours sous /dev/, tandis que media2 et media3 n’existent pas.

J’aurais bien voulu les créer, suivant la méthode indiquée par exemple, dans un des commentaires de cette page du site Stackoverflow, mais même en respectant la syntaxe, et en suivant le même modèle, les 2 nouveaux fichiers de caractères créés avaient disparu au reboot. Je n’ai pas pris le temps de rechercher comment ces fichiers sont créés.

Aussi me suis-je ensuite penchée sur les liens symboliques udev en m’inspirant de ce paragraphe de la documentation Ubuntu.

À un détail près, ce seront plutôt les valeurs “Vendor:Device” fournies par la sortie standard de la commande “lsusb” qui seront préférées à la place des valeurs trouvées par la longue et complexe ligne de commande de la page du wiki Ubuntu.

Cela donne pour cet appareil :

Bus 002 Device 003: ID 04f2:b37e Chicony Electronics Co., Ltd
Bus 001 Device 005: ID 04f2:b394 Chicony Electronics Co., Ltd Integrated Camera

où l’on peut remarquer le premier groupe de caractères identiques dans ces deux lignes : “04f2” correspond au “Vendor”, tandis que le second groupe de caractères, différents l’un de l’autre, correspond au périphérique (“Device” en anglais).

Cette information sera ensuite vérifiée dans le coin configuration du navigateur web Chromium Browser (version libre du navigateur Chrome de Google).

Voici maintenant le fichier /etc/udev/rules.d/83-webcam-persistant-devs.rules créé sur le principe et avec la syntaxe présentés sur le wiki Ubuntu-fr:

# Persistent rules for the front webcam
KERNEL=="video2", ATTRS{idProduct}=="b394", ATTRS{idVendor}=="04f2", SYMLINK+="IntegratedCameraC"
KERNEL=="video3", ATTRS{idProduct}=="b394", ATTRS{idVendor}=="04f2", SYMLINK+="FrontWebcam"

Entre autres, j’avais testé aussi avec l’argument «video*», cela ne permettait pas la détection de la camera avant par les logiciels de communication visés.

Voici les logiciels pour lesquels nous obtenons la webcam avant par défaut, moyennant un réglage:

Chromium Browser

Toujours en suivant la page du wiki Ubuntu-fr.org citée plus haut,

Gérer plusieurs entrées vidéos

Dans les navigateurs basés sur Chromium, vous devez selectionner l’entrée vidéo via l’URI chrome://settings/content/camera

Sélection webcam Chromium Browser

Sélection webcam Chromium Browser

Vous pouvez remarquer dans cette capture d’écran les valeurs “Vendor” et “Device” trouvés précédemment dans le retour de la commande “lsusb” et faire le rapprochement pour la webcam arrière et la webcam avant.

J’ai pu constater lors des tests que ce réglage une fois fait dans Chromium Browser est fixé, qu’il reste bien le même d’une session à l’autre.

J’ai tenté le même réglage dans Firefox, mais Firefox ne dispose pour l’instant pas d’un moyen de différencier les deux webcams. Il propose au choix d’autoriser ou non, l’usage de la webcam au cas par cas pour des sites web donnés et rien d’autre. Aussi, la seule solution pour utiliser la webcam dans Firefox est de ne pas cocher la case “se souvenir de l’autorisation pour ce site” (ou quelques termes signifiant la même chose), puis de refaire le choix de la webcam à chaque nouvelle session, ce qui est un peu moins pratique.

J’ai testé avec Skype, logiciel utilisé par un grand nombre de personnes, bien que non libre. Skype dispose aussi d’une option permettant de choisir laquelle des deux webcams sera utilisée par défaut, donc ici “Integrated Camera: Integrated C” plutôt que “Integrated Rear Camera”. Nos interlocuteurs préfèrent nous voir plutôt que le paysage qui nous fait face. 😀

J’avais aussi installé en chemin le paquet “v4l-utils”, lequel contient la commande ” v4l2-ctl”.

$ v4l2-ctl --list-devices
Integrated Camera: Integrated C (usb-0000:00:1a.0-1.6):
/dev/video2
/dev/video3

Integrated Rear Camera (usb-0000:00:1d.0-1.3):
/dev/video0
/dev/video1
$

Cette ligne de commande confirmait également que la webcam avant était en lien avec les périphériques /dev/video2 et /dev/video3, alors que la webcam arrière était systématiquement liée à /dev/video0 et /dev/video1.

Ainsi, on peut considérer le réglage réalisé pour sélectionner par défaut la webcam avant, dans les programmes applicatifs devraient être stables dans le temps, pour la satisfaction de l’utilisateur final.

Pour s’informer sur udev et de la création de règles udev : https://doc.ubuntu-fr.org/udev  et encore plus de sources d’informations en bas de la page “Udev” sur Wikipedia, https://fr.wikipedia.org/wiki/Udev.

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.