Ini adalah resep untuk membuat driver DisplayLink dalam paket RPM untuk Fedora, CentOS Stream, Rocky Linux dan AlmaLinux OS. Driver ini mendukung rangkaian perangkat berikut:
Paket ini mencakup perpustakaan evdi Open Source.
Paket dibuat secara otomatis oleh GitHub Actions dan diunggah ke rilis GitHub.
CATATAN: Sekarang dapat dibangun dengan bersih melalui file .spec (dalam mock fe). Unduh file melalui
make srpm
.
Untuk membuat paket driver rpm Anda dapat menjalankan perintah make
dari dalam direktori yang diperiksa. Makefile harus mengunduh file yang diperlukan untuk Anda dan membuat RPM.
make
default akan menggunakan driver evdi yang dibundel dengan paket driver Displaylink. Jika Anda perlu menggunakan versi rilis yang lebih baru dari repo evdi Github dan saat ini versi tersebut tidak ada dalam paket driver Displaylink, Anda dapat melakukannya dengan menjalankan:
make github-release
Untuk menggunakan displaylink-rpm dan modul kernel evdi dengan boot aman yang diaktifkan di Fedora, Anda perlu menandatangani modul dengan Kunci Pemilik Mesin (MOK) yang terdaftar.
Sebelum melanjutkan harap verifikasi apakah Boot aman diaktifkan pada sistem Anda: mokutil --sb-state
Jika jawabannya ya, silakan lanjutkan dengan panduan di bawah ini, jika tidak, pendaftaran MOK tidak diperlukan dan Anda dapat mengabaikan instruksi ini.
Mulai DKMS versi 3.0.4 tidak perlu membuat MOK secara manual, DKMS pada saat instalasi menghasilkan kuncinya sendiri yang perlu didaftarkan hanya satu kali oleh pengguna.
Untuk mendaftarkan kunci, ikuti instruksi ini:
sudo dnf install mokutil dkms
.mokutil --import /var/lib/dkms/mok.pub
dan ikuti instruksi pendaftaran yang tersedia di halaman github DKMS (reboot sistem akan diperlukan).sudo dkms autoinstall
untuk membangun dan menandatangani modul evdi oleh MOK.sudo dkms status
atau sudo systemctl status displaylink-driver.service
. Saat digunakan dengan stasiun dok Dell D6000, DisplayLink 5.1.26 sering kehilangan komunikasi dengan monitor yang terpasang, menyebabkan monitor menjadi kosong dan memasuki mode hemat daya. Pada saat monitor kosong, kernel mencatat dua pesan kesalahan:
kernel: usb < xxx > : Disable of device-initiated U1 failed.
kernel: usb < xxx > : Disable of device-initiated U2 failed.
Untuk mengatasi masalah ini, nonaktifkan manajemen daya untuk perangkat audio dengan mengomentari baris di /etc/pulse/default.pa
:
# ## Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
Umumnya kami ingin melacak rilis stabil perpustakaan evdi saat ini. Namun, kernel Fedora seringkali jauh lebih baru daripada kernel yang secara resmi didukung oleh rilis tersebut dan tidak jarang kernel baru merusak build sepenuhnya. Hal ini dapat menyebabkan Anda berada dalam situasi di mana Anda tidak dapat mengupgrade kernel Anda tanpa mengorbankan perangkat displaylink Anda. Ini tidak bagus jika kernel baru memiliki perbaikan keamanan atau kinerja yang penting.
Pengembang evdi menggunakan cabang main
sebagai cabang utama mereka untuk semua perubahan.
Untuk mengambil kode terbaru dari cabang main
dan menggunakannya untuk membangun, lakukan hal berikut:
make main
make github-release
Tentu saja cabang main
ini juga akan menyertakan beberapa perubahan eksperimental dan kurang teruji yang mungkin dapat merusak berbagai hal dengan cara lain yang tidak terduga. Jadi, Anda sebaiknya memilih build jalur utama jika berfungsi, tetapi jika rusak, Anda memiliki opsi untuk membuat build main
.
Jika Anda menggunakan Fedora Rawhide, Anda dapat membuat build yang secara otomatis akan diunduh dari cabang main
dan build dengan menjalankan:
make rawhide
Di masa lalu, kode di cabang
main
akan diberi tag dan versi itulah yang akan disertakan dalam paket driver Displaylink.Baru-baru ini, kami melihat perubahan yang lebih baru muncul di paket driver Displaylink tanpa mengubah versi perpustakaan evdi. Hal ini menimbulkan kebingungan dan kesulitan dalam hal pembaruan pemeliharaan.
Pihak evdi telah mengakui masalah ini dan berupaya menjadikan prosesnya lebih transparan.
Cara termudah untuk berkontribusi dengan paket ini adalah dengan melakukan fork dan mengirimkan permintaan penarikan di GitHub.
Ada dua jenis kontribusi utama: versi upstream baru dirilis atau usulan modifikasi kemasan.
Ada variabel yang disebut RELEASE
untuk keperluan pengemasan. Variabel tersebut harus disetel ke 1 saat menyumbangkan rilis versi upstream baru, dan bertambah satu saat menambahkan fungsionalitas lain ke specfile untuk versi upstream yang sama.
Dari waktu ke waktu, DisplayLink akan memperbarui drivernya. Kami mencoba melakukannya, tapi untuk itu kami biasanya mengandalkan permintaan tarik.
Kami mengelola tiga nomor upstream yang berbeda untuk pembuatan versi:
Variabel-variabel ini perlu diubah di tempat-tempat berikut:
DAEMON_VERSION
adalah versi DisplayLinkManagerVERSION
saat ini adalah versi driver evdiDOWNLOAD_ID
adalah parameter kueri ?download_id=
di situs web DisplayLink untuk mengunduh zipSelain itu, harap perbarui changelog di bagian bawah file displaylink.spec.
Saat mengubah aturan pengemasan, tambahkan variabel RELEASE
sebanyak satu di displaylink.spec