Il s'agit de la recette pour créer le pilote DisplayLink dans un package RPM pour Fedora, CentOS Stream, Rocky Linux et AlmaLinux OS. Ce pilote prend en charge les familles de périphériques suivantes :
Le package comprend la bibliothèque Open Source evdi.
Les packages sont automatiquement créés par GitHub Actions et téléchargés vers les versions de GitHub.
REMARQUE : désormais constructible proprement via le fichier .spec (dans mock fe). Téléchargez des fichiers via
make srpm
.
Afin de créer le package RPM du pilote, vous pouvez exécuter la commande make
à partir du répertoire extrait. Le Makefile devrait télécharger les fichiers dont vous avez besoin et créer un RPM.
Une make
par défaut utilisera le pilote evdi fourni avec le package de pilotes Displaylink. Si vous devez utiliser une version plus récente du dépôt evdi Github et qu'elle n'est pas actuellement présente dans le package de pilotes Displaylink, vous pouvez le faire en exécutant :
make github-release
Pour utiliser displaylink-rpm et le module du noyau evdi avec le démarrage sécurisé activé sur Fedora, vous devez signer le module avec une clé de propriétaire de machine (MOK) inscrite.
Avant de continuer, veuillez vérifier si le démarrage sécurisé est activé sur votre système : mokutil --sb-state
Si la réponse est oui, veuillez continuer avec le guide ci-dessous, sinon l'inscription au MOK n'est pas requise et vous pouvez ignorer cette instruction.
À partir de la version 3.0.4 de DKMS, il n'est pas nécessaire de créer manuellement un MOK, DKMS génère lors de l'installation sa propre clé qui ne doit être inscrite qu'une seule fois par l'utilisateur.
Pour enregistrer la clé, veuillez suivre ces instructions :
sudo dnf install mokutil dkms
.mokutil --import /var/lib/dkms/mok.pub
et suivez les instructions d'inscription disponibles sur la page github de DKMS (un redémarrage du système sera nécessaire).sudo dkms autoinstall
afin de créer et de signer le module evdi par MOK.sudo dkms status
ou sudo systemctl status displaylink-driver.service
. Lorsqu'il est utilisé avec la station d'accueil Dell D6000, DisplayLink 5.1.26 perd régulièrement la communication avec les moniteurs connectés, ce qui les fait s'éteindre et passer en mode d'économie d'énergie. Au moment où les moniteurs s'éteignent, le noyau enregistre deux messages d'erreur :
kernel: usb < xxx > : Disable of device-initiated U1 failed.
kernel: usb < xxx > : Disable of device-initiated U2 failed.
Pour contourner ce problème, désactivez la gestion de l'alimentation du périphérique audio en commentant une ligne dans /etc/pulse/default.pa
:
# ## Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
Généralement, nous souhaitons suivre la version stable actuelle de la bibliothèque evdi. Cependant, les noyaux Fedora sont souvent beaucoup plus récents que ceux officiellement pris en charge par cette version et il n'est pas rare qu'un nouveau noyau interrompe complètement la version. Cela peut vous laisser dans une situation où vous ne pouvez pas mettre à niveau votre noyau sans sacrifier vos périphériques displaylink. Ce n'est pas génial si le nouveau noyau comporte des correctifs importants en matière de sécurité ou de performances.
Les développeurs evdi utilisent la branche main
comme branche principale pour toutes les modifications.
Pour extraire le dernier code de la branche main
et l'utiliser pour construire, procédez comme suit :
make main
make github-release
Bien sûr, cette branche main
inclura également des changements expérimentaux et moins testés qui pourraient casser les choses d'autres manières inattendues. Vous devriez donc préférer la version principale si elle fonctionne, mais si elle tombe en panne, vous avez la possibilité de créer une version main
.
Si vous utilisez Fedora Rawhide, vous pouvez créer une version qui sera automatiquement téléchargée depuis la branche main
et construite en exécutant :
make rawhide
Dans le passé, le code de la branche
main
était balisé et cette version était ce qui serait inclus dans le package de pilotes Displaylink.Récemment, nous avons vu de nouvelles modifications apparaître dans le package de pilotes Displaylink sans que la version de la bibliothèque evdi ne soit modifiée. Cela a créé une certaine confusion et des difficultés en ce qui concerne les mises à jour de maintenance.
Les responsables d'Evdi ont reconnu ce problème et s'efforcent de rendre le processus plus transparent.
Le moyen le plus simple de contribuer avec le package est de le créer et d'envoyer une pull request dans GitHub.
Il existe deux principaux types de contributions : soit une nouvelle version amont est publiée, soit une modification du packaging est proposée.
Il existe une variable appelée RELEASE
à des fins de packaging. Cette variable doit être définie sur 1 lors de la contribution d'une nouvelle version en amont, et incrémentée de une lors de l'ajout de toute autre fonctionnalité au fichier de spécifications pour la même version en amont.
De temps en temps, DisplayLink mettra à jour son pilote. Nous essayons de le faire, mais pour cela, nous nous appuyons généralement sur des pull request.
Nous gérons trois numéros amont différents pour le versioning :
Ces variables doivent être modifiées aux endroits suivants :
DAEMON_VERSION
est la version de DisplayLinkManagerVERSION
est actuellement la version du pilote evdiDOWNLOAD_ID
est le paramètre de requête ?download_id=
sur le site Web DisplayLink pour télécharger le zipVeuillez également mettre à jour le journal des modifications au bas du fichier displaylink.spec.
Lors de la modification d'une règle d'empaquetage, veuillez incrémenter la variable RELEASE
de un dans displaylink.spec