Stations d'accueil USB 3 et technologie DisplayLink sous Ubuntu

J'ai récemment changé de PC portable, et comme mon précédent ordinateur utilisait une station d'accueil propriétaire qui n'est plus compatible avec les nouveaux modèles, j'ai également dû faire l'acquisition d'une nouvelle station (merci Lenovo)... Je voulais à la base prendre une station d'accueil Thunderbolt 3 (connecteur USB C)... mais je me suis planté en la commandant, et je me suis retrouvé avec une station USB 3.0... zut. Je vais donc vous partager mon retour d'expérience sur ce type de matériel et vous expliquer comment le faire marcher sous Linux (enfin surtout sous Ubuntu).

Pour commencer, il faut savoir que les stations USB 3 ne peuvent pas alimenter le PC, il y a donc au minimum 2 câbles à brancher : l'alimentation et le dock. C'est un peu plus d'efforts que ce que j'avais avant, mais c'est pas la mort non plus, et c'est toujours mieux que de brancher la dizaine d'autres câbles tout le tour du PC.

Ensuite, bonne surprise : tout est reconnu de base (ports USB, Ethernet, casque,...)... sauf la partie vidéo, mais ça il fallait s'y attendre. Je n'avais jamais eu de dock USB 3 auparavant donc j'ai commencé par essayer de voir ce qui était utilisé dans la station d'accueil pour transmettre la vidéo. Pour ce faire, j'ai regardé les logs du kernel pour voir ce qu'il avait détecté :

$ dmesg

et voici ce que j'y ai trouvé :

[50061.749655] usb 2-4.1: new SuperSpeed Gen 1 USB device number 13 using xhci_hcd
[50061.774152] usb 2-4.1: New USB device found, idVendor=17e9, idProduct=4340, bcdDevice=31.01
[50061.774157] usb 2-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50061.774159] usb 2-4.1: Product: ThinkPad USB 3.0 Ultra Dock
[50061.774162] usb 2-4.1: Manufacturer: DisplayLink
[50061.774164] usb 2-4.1: SerialNumber: XXXXXXXXXXXXXXXXXXXX

« DisplayLink »... Tiens, ça sonne bien comme un truc pour transmettre de la vidéo ça. J'ai donc fait quelques recherches et effectivement j'avais vu juste...

Mon avis sur les docks USB 3

Parlons à présent des sujets qui fâchent... Qu'est-ce que ça vaut vraiment ces docks USB 3... Je n'irais pas jusqu'à faire mon Jean-Pierre Coffe et vous sortir un « Mais c'est d'la merde ! »... mais je dois bien reconnaître que c'est pas fou.

La technologie DisplayLink crée des écrans virtuels, dont les image vont être compressées puis streamées au dock à travers le port USB. Cela pose deux problèmes :

  • les écrans virtuels et la compression de leurs images consomment des ressources sur la machine,
  • et on consomme de la bande passante sur le port USB pour transmettre le tout à la station d'accueil.

Pour ce qui est de la bande passante USB, je n'ai pas l'impression d'avoir eu de soucis particuliers, par contre les performances des écrans externes se sont avérées catastrophiques.

En utilisation « normale », c'est-à-dire avec un navigateur web affiché sur l'un des écrans, et un terminal sur l'autre, ça va... J'ai eu quelques micro-freezes de mon affichage (et pas uniquement sur les écrans externes) de temps à autre... c'est chiant, mais on peut faire avec....

Par contre quand j'ai essayé d'afficher des vidéos sur les écrans externes, là j'ai pu bien mettre en évidence le problème : le pilote DisplayLink s'est mis à consommer énormément ressources, et toute l'interface du PC est devenue tellement lente que c'était totalement inutilisable.

Capture d'écran montrant le pilote DisplayLink qui consomme beaucoup de CPU

Pilote DisplayLink consommant beaucoup de CPU

Je ne sais pourquoi tout l'affichage est ralenti à ce point. Peut-être que le pilote pour Linux est encore trop immature. Je n'ai malheureusement pas eu le temps de tester intensivement sous Windows pour pouvoir comparer, mais je pense que des problèmes similaires doivent se produire sur cette plateforme également (mais peut-être à des degrés moindres).

Quoi qu'il en soit, je pense que les stations d'accueil USB 3 peuvent dépanner dans certains cas, mais elles ne sont pas assez performantes pour mes besoins au quotidien. Si votre ordinateur vous permet une alternative (docks Thunderbolt 3 ou propriétaire), je vous recommande vivement ce genre de solutions, même si elles sont plus chères.

Et tant qu'on parle d'argent, je vous recommanderais de vous tourner vers une autre marque que Lenovo pour ce genre de station. Je n'ai rien à leur reprocher hein, leur matos est d'excellente qualité... mais bien trop cher pour ce type de dock.

Pour ma part j'ai d'ores et déjà commandé (et reçu) une station Thunderbolt 3, et ça va beaucoup mieux. Si j'en ai le temps et la motivation, j'essayerais de vous écrire un petit résumé des différents types de station d'accueil qui existent et leur compatibilité avec Linux.