นี่คือสูตรสำหรับการสร้างไดรเวอร์ DisplayLink ในแพ็คเกจ RPM สำหรับ Fedora, CentOS Stream, Rocky Linux และ AlmaLinux OS ไดรเวอร์นี้รองรับตระกูลอุปกรณ์ต่อไปนี้:
แพ็คเกจนี้ประกอบด้วยไลบรารี Open Source evdi
แพ็คเกจถูกสร้างขึ้นโดยอัตโนมัติโดย GitHub Actions และอัปโหลดไปยัง GitHub releases
หมายเหตุ: ตอนนี้สามารถสร้างได้อย่างหมดจดผ่านไฟล์ .spec (ในรูปแบบ mock fe) ดาวน์โหลดไฟล์ผ่าน
make srpm
ในการสร้างแพ็คเกจไดรเวอร์ rpm คุณสามารถรันคำสั่ง make
จากภายในไดเร็กทอรีที่เช็คเอาท์ได้ Makefile ควรดาวน์โหลดไฟล์ที่จำเป็นสำหรับคุณและสร้าง RPM
make
เริ่มต้นจะใช้ไดรเวอร์ evdi ที่มาพร้อมกับแพ็คเกจไดรเวอร์ Displaylink หากคุณต้องการใช้เวอร์ชันที่ออกใหม่กว่าจาก repo evdi Github และไม่มีอยู่ในแพ็คเกจไดรเวอร์ Displaylink คุณสามารถทำได้โดยการเรียกใช้:
make github-release
หากต้องการใช้ displaylink-rpm และโมดูลเคอร์เนล evdi พร้อมเปิดใช้งานการบูตอย่างปลอดภัยบน Fedora คุณจะต้องลงนามโมดูลด้วย Machine Owner Key (MOK) ที่ลงทะเบียนไว้
ก่อนดำเนินการต่อ โปรดตรวจสอบว่าเปิดใช้งาน Secure boot ในระบบของคุณหรือไม่: mokutil --sb-state
หากคำตอบคือใช่ โปรดดำเนินการตามคำแนะนำด้านล่าง ไม่เช่นนั้นไม่จำเป็นต้องลงทะเบียน MOK และคุณก็สามารถเพิกเฉยต่อคำแนะนำนี้ได้
จาก DKMS เวอร์ชัน 3.0.4 ไม่จำเป็นต้องสร้าง MOK ด้วยตนเอง DKMS ระหว่างการติดตั้งจะสร้างคีย์ของตัวเองที่ผู้ใช้จะต้องลงทะเบียนเพียงครั้งเดียวเท่านั้น
หากต้องการลงทะเบียนคีย์ โปรดปฏิบัติตามคำแนะนำนี้:
sudo dnf install mokutil dkms
mokutil --import /var/lib/dkms/mok.pub
และปฏิบัติตามคำแนะนำการลงทะเบียนที่มีอยู่ในหน้า DKMS github (จำเป็นต้องรีบูตระบบ)sudo dkms autoinstall
เพื่อสร้างและลงนามโมดูล evdi โดย MOKsudo dkms status
หรือ sudo systemctl status displaylink-driver.service
เมื่อใช้กับแท่นวาง Dell D6000 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 ที่เสถียรในปัจจุบัน อย่างไรก็ตาม เมล็ด Fedora มักจะใหม่กว่าเมล็ดที่ได้รับการสนับสนุนอย่างเป็นทางการจากรุ่นนั้นมาก และไม่ใช่เรื่องแปลกที่เคอร์เนลใหม่จะทำลายโครงสร้างโดยสิ้นเชิง สิ่งนี้อาจทำให้คุณอยู่ในสถานการณ์ที่คุณไม่สามารถอัพเกรดเคอร์เนลได้โดยไม่ต้องเสียสละอุปกรณ์ดิสเพลย์ลิงก์ของคุณ สิ่งนี้ไม่ดีนักหากเคอร์เนลใหม่มีการแก้ไขด้านความปลอดภัยหรือประสิทธิภาพที่สำคัญ
นักพัฒนา evdi ใช้สาขา main
เป็นสาขาหลักสำหรับการเปลี่ยนแปลงทั้งหมด
หากต้องการดึงโค้ดล่าสุดจากสาขา main
และใช้เพื่อสร้าง ให้ทำดังต่อไปนี้:
make main
make github-release
แน่นอนว่าสาขา main
นี้จะรวมการเปลี่ยนแปลงที่เป็นการทดลองและการทดสอบน้อยกว่าที่อาจทำลายสิ่งต่าง ๆ ในลักษณะที่ไม่คาดคิด ดังนั้นคุณควรเลือกใช้ mainline build ถ้ามันใช้งานได้ แต่หากมันพัง คุณก็มีตัวเลือกในการสร้าง build main
หากคุณใช้ Fedora Rawhide คุณสามารถสร้างบิลด์ที่จะดาวน์โหลดจากสาขา main
และบิลด์โดยอัตโนมัติโดยการรัน:
make rawhide
ในอดีต รหัสในสาขา
main
จะถูกแท็ก และเวอร์ชันนั้นคือเวอร์ชันที่จะรวมอยู่ในแพ็คเกจไดรเวอร์ Displaylinkล่าสุด เราเห็นการเปลี่ยนแปลงใหม่ๆ ปรากฏในแพ็คเกจไดรเวอร์ Displaylink โดยไม่มีการเปลี่ยนแปลงเวอร์ชันไลบรารี evdi สิ่งนี้ทำให้เกิดความสับสนและความยากลำบากในการอัปเดตการบำรุงรักษา
ทีมงาน evdi รับทราบปัญหานี้แล้ว และกำลังดำเนินการเพื่อทำให้กระบวนการนี้โปร่งใสมากขึ้น
วิธีที่ง่ายที่สุดในการสนับสนุนแพ็คเกจคือการแยกและส่งคำขอดึงใน GitHub
การสนับสนุนมีสองประเภทหลัก: มีการเปิดตัวเวอร์ชันต้นทางใหม่หรือการเสนอให้มีการแก้ไขบรรจุภัณฑ์
มีตัวแปรที่เรียกว่า RELEASE
เพื่อวัตถุประสงค์ในการบรรจุภัณฑ์ ตัวแปรนั้นควรตั้งค่าเป็น 1 เมื่อสนับสนุนการเปิดตัวเวอร์ชันอัปสตรีมใหม่ และเพิ่มทีละรายการเมื่อเพิ่มฟังก์ชันการทำงานอื่นๆ ให้กับ specfile สำหรับเวอร์ชันอัปสตรีมเดียวกัน
DisplayLink จะอัปเดตไดรเวอร์เป็นครั้งคราว เราพยายามที่จะทำเช่นนั้น แต่เพื่อสิ่งนั้น เรามักจะอาศัยคำขอดึงข้อมูล
เราจัดการหมายเลขอัพสตรีมที่แตกต่างกันสามหมายเลขสำหรับการกำหนดเวอร์ชัน:
จำเป็นต้องเปลี่ยนตัวแปรเหล่านี้ในตำแหน่งต่อไปนี้:
DAEMON_VERSION
คือเวอร์ชัน DisplayLinkManagerVERSION
ปัจจุบันเป็นเวอร์ชันไดรเวอร์ evdiDOWNLOAD_ID
คือพารามิเตอร์การค้นหา ?download_id=
ในเว็บไซต์ DisplayLink เพื่อดาวน์โหลด zipนอกจากนี้ โปรดอัปเดตบันทึกการเปลี่ยนแปลงที่ด้านล่างของไฟล์ displaylink.spec
เมื่อเปลี่ยนกฎการบรรจุ โปรดเพิ่มตัวแปร RELEASE
ทีละตัวใน displaylink.spec