هذه هي الوصفة لبناء برنامج تشغيل DisplayLink في حزمة RPM لأنظمة Fedora وCentOS Stream وRocky Linux وAlmaLinux OS. يدعم برنامج التشغيل هذا عائلات الأجهزة التالية:
تتضمن الحزمة مكتبة evdi مفتوحة المصدر.
يتم إنشاء الحزم تلقائيًا بواسطة GitHub Actions ويتم تحميلها إلى إصدارات GitHub.
ملاحظة: الآن يمكن البناء بشكل نظيف عبر ملف .spec (في نموذج وهمي). قم بتنزيل الملفات عبر
make srpm
.
من أجل إنشاء حزمة برنامج التشغيل rpm، يمكنك تشغيل الأمر make
من داخل الدليل الذي تم سحبه. يجب أن يقوم Makefile بتنزيل الملفات المطلوبة لك وإنشاء RPM.
سيستخدم make
الافتراضي برنامج تشغيل evdi المرفق مع حزمة برنامج تشغيل Displaylink. إذا كنت بحاجة إلى استخدام إصدار أحدث من evdi Github repo وهو غير موجود حاليًا في حزمة برنامج تشغيل Displaylink، فيمكنك القيام بذلك عن طريق تشغيل:
make github-release
لاستخدام DisplayLink-rpm ووحدة evdi kernel مع تمكين التمهيد الآمن على Fedora، يتعين عليك توقيع الوحدة باستخدام مفتاح مالك الجهاز المسجل (MOK).
قبل المتابعة، يرجى التحقق من تمكين التمهيد الآمن على نظامك: mokutil --sb-state
إذا كانت الإجابة بنعم، فيرجى متابعة الدليل أدناه، وإلا فلا يلزم التسجيل في MOK ويمكنك تجاهل هذه التعليمات.
من الإصدار 3.0.4 من DKMS، ليست هناك حاجة لإنشاء MOK يدويًا، حيث يقوم DKMS أثناء التثبيت بإنشاء مفتاحه الخاص الذي يحتاج إلى تسجيله مرة واحدة فقط من قبل المستخدم.
لتسجيل المفتاح، يرجى اتباع هذه التعليمات:
sudo dnf install mokutil dkms
.mokutil --import /var/lib/dkms/mok.pub
واتبع تعليمات التسجيل المتاحة على صفحة DKMS github (ستكون إعادة تشغيل النظام مطلوبة).sudo dkms autoinstall
من أجل إنشاء وحدة evdi وتوقيعها بواسطة MOK.sudo dkms status
أو sudo systemctl status displaylink-driver.service
. عند استخدامه مع قاعدة الإرساء D6000 من Dell، يفقد DisplayLink 5.1.26 الاتصال بالشاشات المتصلة بشكل منتظم، مما يؤدي إلى ظهورها فارغة والدخول في وضع توفير الطاقة. في الوقت الذي تكون فيه الشاشات فارغة، تسجل النواة رسالتي خطأ:
kernel: usb < xxx > : Disable of device-initiated U1 failed.
kernel: usb < xxx > : Disable of device-initiated U2 failed.
للتغلب على هذه المشكلة، قم بتعطيل إدارة الطاقة لجهاز الصوت عن طريق التعليق على سطر في /etc/pulse/default.pa
:
# ## Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
بشكل عام، نريد تتبع الإصدار المستقر الحالي لمكتبة evdi. ومع ذلك، غالبًا ما تكون نواة فيدورا أحدث كثيرًا من تلك التي يدعمها هذا الإصدار رسميًا، وليس من غير المألوف أن تكسر نواة جديدة البنية تمامًا. يمكن أن يتركك هذا في موقف لا يمكنك فيه ترقية النواة الخاصة بك دون التضحية بأجهزة رابط العرض الخاصة بك. وهذا ليس أمرًا رائعًا إذا كانت النواة الجديدة تحتوي على إصلاحات مهمة تتعلق بالأمان أو الأداء.
يستخدم مطورو evdi الفرع main
باعتباره فرعهم الرئيسي لجميع التغييرات.
لسحب أحدث كود من الفرع main
واستخدامه في البناء، قم بما يلي:
make main
make github-release
بالطبع سيتضمن هذا الفرع main
أيضًا بعض التغييرات التجريبية والأقل اختبارًا والتي قد تؤدي إلى كسر الأمور بطرق أخرى غير متوقعة. لذا، يجب أن تفضل التصميم الرئيسي إذا كان يعمل، ولكن إذا تعطل، فلديك خيار إنشاء التصميم main
.
إذا كنت تستخدم Fedora Rawhide، فيمكنك إنشاء إصدار سيتم تنزيله تلقائيًا من الفرع main
والإنشاء عن طريق تشغيل:
make rawhide
في الماضي، تم وضع علامة على التعليمات البرمجية الموجودة في الفرع
main
وهذا الإصدار هو ما سيتم تضمينه في حزمة برنامج تشغيل Displaylink.في الآونة الأخيرة، نشهد ظهور تغييرات أحدث في حزمة برنامج تشغيل Displaylink دون تغيير إصدار مكتبة evdi. وقد خلق هذا بعض الارتباك والصعوبة عندما يتعلق الأمر بتحديثات الصيانة.
لقد أقر فريق evdi بهذه المشكلة ويعملون على جعل العملية أكثر شفافية.
أسهل طريقة للمساهمة في الحزمة هي تفرعها وإرسال طلب سحب في GitHub.
هناك نوعان رئيسيان من المساهمات: إما إصدار نسخة أولية جديدة أو اقتراح تعديل في العبوة.
يوجد متغير يسمى RELEASE
لأغراض التعبئة والتغليف. يجب تعيين هذا المتغير على 1 عند المساهمة بإصدار إصدار أولي جديد، وزيادته بمقدار واحد عند إضافة أي وظيفة أخرى إلى ملف المواصفات لنفس الإصدار الأولي.
من وقت لآخر، سيقوم DisplayLink بتحديث برنامج التشغيل الخاص به. نحن نحاول القيام بذلك، ولكننا نعتمد عادةً على طلبات السحب.
نحن ندير ثلاثة أرقام مختلفة للإصدارات:
يجب تغيير هذه المتغيرات في الأماكن التالية:
DAEMON_VERSION
هو إصدار DisplayLinkManagerVERSION
هو حاليًا إصدار برنامج تشغيل evdiDOWNLOAD_ID
هو معلمة الاستعلام ?download_id=
في موقع DisplayLink لتنزيل الملف المضغوطيرجى أيضًا تحديث سجل التغيير الموجود أسفل ملف Displaylink.spec.
عند تغيير قاعدة الحزم، يرجى زيادة متغير RELEASE
بمقدار واحد في Displaylink.spec