最初の背景。Logitechゲームパネルデバイス用のドライバーを開発しています。画面のあるキーボードです。ドライバーは正常に動作していますが、デフォルトではデバイスはHIDによって処理されます。HIDがドライバーの前にデバイスを引き継ぐのを防ぐために、hid-core.cでブラックリストに追加できます。これは機能しますが、複数の人と作業しているため、特にinitramfsなどを再構築する必要があるため、面倒になっているHIDモジュールにパッチを適用し続ける必要があるため、最適なソリューションではありません。
私は、この問題のいくつかの研究を行なったし、私が見つかりました。このメーリングリストポスト最終的に連れて行ってくれました、LWNこの記事を。これは、実行時にデバイスを特定のドライバーにバインドするメカニズムについて説明しています。これはまさに私が必要なもののようです。
それで、試しました。HIDからキーボードのバインドを解除できました。これは機能し、予想どおり、入力できなくなりました。しかし、ドライバーにバインドしようとすると、「error:no such device」というメッセージが表示され、操作は失敗します。
私の質問は次のとおりです。hid-coreでHIDデバイスをブラックリストに登録し、独自のドライバーを提供すると、カーネルバインド/アンバインド操作を使用して何が起こるかを複製するにはどうすればよいですか。-それは-常にhid-core.cにパッチを当てる必要性を置き換えるためですか?
ドライバーのソースはこちら:https : //github.com/ali1234/lg4l