Latar belakang pertama. Saya mengembangkan driver untuk perangkat panel game Logitech. Ini adalah keyboard dengan layar di atasnya. Driver berfungsi dengan baik tetapi secara default perangkat ditangani oleh HID. Untuk mencegah HID mengambil alih perangkat sebelum driver saya, saya bisa daftar hitam di hid-core.c. Ini bekerja tetapi bukan solusi terbaik karena saya bekerja dengan beberapa orang dan kita semua harus terus menambal modul HID kami yang menjadi tugas, terutama karena sering melibatkan pembangunan kembali initramfs dan semacamnya.
Saya melakukan penelitian pada masalah ini dan saya menemukan posting milis ini , yang akhirnya membawa saya ke artikel ini di LWN . Ini menjelaskan mekanisme untuk mengikat perangkat ke driver tertentu saat runtime. Sepertinya ini yang saya butuhkan.
Jadi, saya mencobanya. Saya dapat melepaskan ikatan keyboard dari HID. Ini berhasil dan seperti yang diharapkan, saya tidak bisa lagi mengetiknya. Tetapi ketika saya mencoba untuk mengikatnya ke driver kami, saya mendapatkan "kesalahan: tidak ada perangkat seperti itu" dan operasi gagal.
Jadi pertanyaan saya adalah: Bagaimana cara menggunakan operasi bind / unbind kernel untuk mereplikasi apa yang terjadi ketika Anda memasukkan perangkat HID ke black-core dan menyediakan driver Anda sendiri? - yaitu - untuk mengganti kebutuhan untuk menambal hid-core.c sepanjang waktu?
Sumber driver kami ada di sini: https://github.com/ali1234/lg4l