Aller au contenu

Résoudre le problème d'écran noir avec un dock DisplayLink sous Fedora

displaylink

Après une mise à jour système sous Fedora Workstation, il arrive que l'affichage sur un écran externe branché via une station d'accueil USB-C ne fonctionne plus du tout. Pourtant, les autres périphériques connectés au dock (clavier, souris, réseau RJ45) continuent de fonctionner normalement. L'écran n'est tout simplement plus détecté dans les paramètres d'affichage de GNOME.

Ce problème survient généralement avec les stations d'accueil utilisant la technologie DisplayLink (comme certains docks Belkin, Dell ou ThinkPad).


Origine du problème

Contrairement aux hubs USB-C classiques qui utilisent le mode alternatif DisplayPort (DP Alt Mode) natif de la carte graphique, les stations d'accueil DisplayLink convertissent le signal vidéo en paquets de données USB.

Pour fonctionner sous Linux, elles nécessitent :

  1. Un module noyau tiers nommé EVDI (géré via DKMS).
  2. Un service système propriétaire : displaylink.service.

Lorsqu'une mise à jour de Fedora installe un nouveau noyau, le module EVDI doit être recompilé. Si les paquets de développement du noyau (kernel-devel) ne sont pas parfaitement synchronisés avec le noyau actif, la compilation échoue silencieusement, le service ne peut plus démarrer, et l'affichage vidéo est coupé.

On peut identifier ce type de dock dans les logs du noyau (dmesg) via ces lignes :

usb 2-2.1: Product: Belkin USB-C Dock
usb 2-2.1: Manufacturer: DisplayLink

Procédure de résolution

Pour corriger la situation, il faut aligner les paquets de développement avec le dernier noyau stable, recompiler le module et réactiver le service.

Étape 1 — Aligner le noyau et les outils de développement

Il est indispensable que le noyau actif et ses en-têtes de développement partagent strictement la même version. On force la mise à jour globale des paquets requis :

sudo dnf upgrade kernel kernel-devel kernel-headers

Une fois la mise à jour terminée, redémarrer pour basculer sur le nouveau noyau :

reboot

Étape 2 — Ajouter le dépôt communautaire (si pas déjà fait)

Le pilote est disponible via le dépôt Negativo17, adapté aux versions récentes de Fedora utilisant DNF5 :

sudo dnf config-manager addrepo --from-repofile=https://negativo17.org/repos/fedora-multimedia.repo
sudo dnf install displaylink dkms-evdi

Étape 3 — Forcer la compilation du module EVDI via DKMS

Une fois démarré sur le bon noyau avec les bons outils installés, on demande à DKMS de compiler manuellement le pilote :

sudo dkms autoinstall

Si l'alignement des versions effectué à l'étape 1 est correct, la commande s'exécute en quelques secondes sans erreur.

Étape 4 — Activer et démarrer le service système

Il ne reste plus qu'à relancer le démon DisplayLink pour qu'il prenne en charge le flux vidéo :

sudo systemctl enable --now displaylink

Conclusion et bonne pratique

Désormais, à chaque reconnexion du câble USB-C, le gestionnaire d'affichage de GNOME (sous Wayland) devrait détecter l'écran instantanément.

À retenir pour les prochaines mises à jour

À chaque mise à jour majeure du noyau Linux via dnf, le mécanisme DKMS est censé recompiler le module en arrière-plan. Si l'écran disparaît à nouveau après un update, vérifier en priorité :

systemctl status displaylink

Et s'assurer que kernel-devel est bien à jour avec dnf upgrade kernel-devel.