Au moment d’écrire ces lignes, pratiquement tout que nous connectons à nos appareils passe par le soi-disant Universal Serial Bus (USB) : caméras, microphones, stockage externe… C’est le plus rapide et le plus sûr pour synchroniser et sauvegarder les informations entre votre téléphone portable et l’ordinateur ! Mais qu’est-ce que tout cela a à voir avec le sous-système Windows pour Linux (WSL2 Ubuntu) ? Voyons !
Étude en WSL2 avec Ubuntu : logiciel propriétaire et libre
Nous avons beaucoup à analyser, alors je vous recommande une bonne tasse de café noir fumant dans vos mains avant de commencer.
Brève rétrospective
J’affirme toujours que « pour savoir où l’on va, il faut savoir d’où l’on vient ». Depuis 1989, j’ai travaillé avec les produits vendus par Microsoft Corporation : d’abord le système d’exploitation MS-DOS et sa seule forme d’interaction en ligne de commande, puis Microsoft Windows, qui utilise également l’environnement graphique. Oui, je sais, MS-DOS® en tant que tel a été éliminé, mais ses commandes restent. Il a été remplacé par Powershell®, dont nous avons déjà parlé, et c’est important pour le sujet d’aujourd’hui.
SQL Server® pouvait fonctionner sous GNU/Linux. Pour moi, qui ai travaillé pendant de nombreuses années à l’installation et à la maintenance de serveurs de données pour mes clients, c’était une nouvelle choquante. Mais attendez, il y a plus, au cours de mon voyage, j’ai découvert que BASHware peut affecter un système Windows via WSL. Ce qui nous amène à l’article d’aujourd’hui, où nous aborderons la gestion des périphériques USB, avec un accent particulier sur les microphones et les webcams, sous WSL2 avec Ubuntu 20.04.
WSL et WSL2
Je recommande, encore une fois, l’excellent article sur WSL2. Bien que le temps ait passé et qu’il y ait des changements importants. A cette époque, WSL2 était installé au moyen de commandes. Maintenant, et je tiens à le souligner, je remarque que par Panneau de configuration MS Windows, « Programmes et fonctionnalités », vous pouvez ajouter les deux composants clés qui sont Virtual Machine Platform et évidemment Windows Subsystem for Linux dans la section de « Activer ou désactiver des fonctionnalités Windows »:
Après cela, le système d’exploitation doit être redémarré, c’est déjà une idiosyncrasie de la maison Redmond ! (Il y aura beaucoup plus de réinitialisations à venir plus tard que je laisserai de côté. Elles seront implicites.)
Un autre aspect qui a été ajouté en juillet 2021 est la possibilité d’ajouter les distributions Linux que l’on souhaite, directement, via la ligne de commande dans Powershell (selon la version et le type de MS Windows que vous avez installé).
Pour voir les distributions disponibles :
wsl --list --online
Pour installer Ubuntu 20.04 :
wsl --install -d Ubuntu-20.04
Après un certain temps, en fonction de votre vitesse de téléchargement Internet, il vous demandera un nom d’utilisateur et un mot de passe. Il affichera immédiatement l’état des mises à jour pour Ubuntu.
Pour définir WSL2 par défaut :
wsl --set-default-version 2
L’option de téléchargement et d’utilisation à partir du Microsoft Store est toujours valable et disponible, pour Ubuntu 20.04, cela prend près d’un demi-gigaoctet d’espace.
La différence fondamentale entre WSL et WSL2 est que le dernier téléchargement est un noyau Linux complet, mais pas n’importe quel noyau, c’est un noyau spécialement conçu pour être couplé au noyau Windows. Cela signifie que les applications s’exécutant sur WSL2 devront toujours être « transférées » mais pas interprétées, comme c’était le cas dans WSL, avant d’interagir avec n’importe quel matériel, USB inclus.
La seule chose que WSL fait mieux que WSL2 est le partage de fichiers entre les deux systèmes d’exploitation. Le reste n’est que des avantages et des améliorations dans WSL2.
Podman dans WSL2
Pour vous donner une idée de l’utilité d’inclure un noyau Linux complet dans MS Windows, le logiciel Podman (le successeur de Docker) peut être exécuté au-dessus de WSL2. Si vous ne savez toujours pas ce qu’est Podman, faites plus de café et lisez un autre de nos articles.
Mode développeur
Une fonctionnalité offerte par Powershell que vous pouvez utiliser à votre avantage, une fois que vous avez installé et configuré WSL2, est le mode développeur. Il est accessible en appuyant sur la touche de démarrage de Windows, en tapant « Powershell » et en choisissant les paramètres du développeur. La première chose à faire est d’activer le mode développeur et d’attendre la fin de l’installation du logiciel nécessaire.
Celui-ci se compose de deux éléments principaux :
- Device Portal.
- Device Discovery.
Le portail des appareils ouvrira le port 50080 (n’oubliez pas de configurer correctement le pare-feu Windows Defender), et à partir de n’importe quel navigateur Web, vous pouvez entrer les informations d’identification configurées et accéder à une variété d’aspects que vous pouvez voir dans l’image suivante.
Proportion gardée, ceci est similaire à ce qu’offre à eHorus pour la supervision de base et avancée, s’il est utilisé en conjonction avec Pandora FMS. J’ai inclus cette fonctionnalité car les informations d’identification configurées sont requises pour le point suivant.
Cela vous permet d’ouvrir un terminal avec la ligne de commande Windows et, une fois là-bas, vous pouvez directement utiliser WSL2 pour toute tâche que vous devez développer à distance depuis un autre ordinateur. Dans ce cas, à titre d’exemple, j’ai utilisé le logiciel PuTTY pour connecter de la machine réelle à la machine virtuelle Windows 10 avec WSL2 installé et configuré :
Comme vous pouvez le voir, une fois la configuration par défaut établie, rien qu’en tapant la commande wsl vous serez prêts dans un environnement Linux, pas GNU/Linux mais MSW/Linux.
USB dans WSL2
Nous arrivons à l’objet de cet article de blog : la gestion USB dans WSL2. A l’heure où j’écris ces lignes, il y a deux nouvelles, une mauvaise et une bonne.
- La mauvaise nouvelle est que non, WSL2 est actuellement incapable de prendre en charge l’USB, par exemple, vos caméras et microphones connectés par USB ne pourront pas être utilisés à partir de WSL2.
- La bonne nouvelle est que vous pouvez compiler votre propre noyau Linux pour WSL2 et avoir accès occasionnellement au microphone ou à la webcam de la distribution Linux que vous avez choisie. Mais quelles applications pourriez-vous utiliser pour cela ?
Compilation du noyau Linux pour WSL2
Avant de faire quoi que ce soit, il faut d’abord mettre à jour Ubuntu WSL2 avec les commandes habituelles :
$ sudo apt update
$ sudo apt upgrade
Et si vous pensiez que c’était assez de télécharger le logiciel… eh bien non, maintenant ce que j’appelle l’environnement de programmation (dépendances) doit être installé :
$ sudo apt install build-essential flex bison libssl-dev libelf-dev
Et maintenant, vous pouvez télécharger le code source du noyau de base pour Ubuntu sur WSL2 :
$ sudo git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
Il y a trois gigaoctets à télécharger. Le code source. Brutal. Bien que vous puissiez toujours utiliser le paramètre git clone -depth=1<référentiel>, je n’ai pas utilisé cette option. Je recommande au moins 100 gigaoctets de stockage gratuits avant d’aller dans le dossier téléchargé (référentiel cloné) et d’exécuter :
$ make -d KCONFIG_CONFIG=Microsoft/config-wsl
À ce stade, je dois préciser que j’ai trouvé de nombreuses options de configuration à compiler. Par exemple, pour installer le logiciel de gestion de paquets Snap sur Debian. Maintenant, tout cela est exclu du support Microsoft, rien ne peut être réclamé à cette société en cas de problème dans le processus de compilation.
Pour finir, vous devez désactiver WSL2 avec la commande wsl –shutdown et copier le noyau nouvellement compilé de la manière suivante, non sans d’abord sauvegarder le noyau d’origine :
C:\Windows\System32\lxss\tools\kernel
À ce stade, vous devriez pouvoir connecter n’importe quel microphone ou webcam et avoir accès à partir de WSL2… Mais non. Il s’avère qu’il faut d’abord récupérer les pilotes matériels pour MS Windows, évidemment, puis ceux de Linux, les mettre dans le code source, ce dernier, et recompiler à nouveau. En plus de cela, nous ajoutons d’installer dans Ubuntu WSL2 :
sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
Et d’ailleurs, il faut aussi l’installer dans Windows, avec un package d’installation MSI, le projet USBIPD-WIN…
Comme vous pouvez le voir, depuis que vous vous êtes habitués à la simplicité graphique de Windows, si vous désactivez l’USB via le gestionnaire de périphériques, aucun matériel ne pourra se connecter avec ou sans votre consentement, car il sera bloqué au fonctionnement système.
Installation d’applications graphiques dans WSL2
Pour finir, bien que dans le cas du programme d’installation du package snap, il ne soit explicitement pas pris en charge dans Ubuntu sur WSL2, d’autres applications qui interagissent avec le matériel (comme le son, par exemple) pourront être installées, mais lorsqu’elles essaieront d’accéder aux fichiers de matériel (rappelez-vous que sous Linux, tout est un fichier) ils ne trouveront tout simplement pas de telles ressources. C’est le cas du logiciel espeak :
En théorie, le blog Ubuntu indique qu’au moyen de X Window System Architecture, il est possible de « transférer » l’interface graphique des applications installées dans WLS2. Officiellement Microsoft a annoncé juste avant la fin de l’année 2021 que les applications graphiques suivantes pourront être exécutées :
- Gedit (mon éditeur de texte graphique GNU préféré).
- GIMP (puissant pour la conception graphique).
- Nautilus (l’explorateur de fichiers).
- VLC (lecteur audio et vidéo).
- Applications basées sur X11 (calculatrice, horloge, etc.).
- Google Chrome (à vos risques et périls en raison de sa consommation élevée de RAM et de ressources).
- Microsoft Teams (au fait, Pandora FMS a un connecteur spécial).
- Même le navigateur Web Microsoft Edge pour Linux !
Mais cela a quelques inconvénients. Tout d’abord, vous devez avoir Windows 11 Build 22000. Deuxièmement, installer les pilotes de matériel vidéo pour WSL2. Troisièmement, vous inscrire au programme Windows Insider. J’espère que ces informations seront utiles !
Ressources :
Bibliothèque de plugins Pandora FMS
Programmer since 1993 at KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice on the forum . He is also an enthusiastic contributor to Wikipedia and Wikidata. He crushes iron in gyms and when he can, he also exercises cycling. Science fiction fan. Programmer since 1993 in KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice in the forum. Also an enthusiastic contributor to Wikipedia and Wikidata. He crusher of irons in gyms and when he can he exercises in cycling as well. Science fiction fan.