पहली पृष्ठभूमि। मैं लॉजिटेक गेम-पैनल डिवाइस के लिए ड्राइवर विकसित कर रहा हूं। यह एक स्क्रीन पर एक कीबोर्ड है। ड्राइवर अच्छी तरह से काम कर रहा है लेकिन डिफ़ॉल्ट रूप से डिवाइस को HID द्वारा नियंत्रित किया जाता है। अपने ड्राइवर से पहले HID को डिवाइस पर ले जाने से रोकने के लिए, मैं इसे hid-core.c में ब्लैकलिस्ट कर सकता हूं। यह काम करता है लेकिन सबसे अच्छा समाधान नहीं है जैसा कि मैं कई लोगों के साथ काम कर रहा हूं और हम सभी को अपने HID मॉड्यूल को पैच करते रहना होगा जो कि एक कोर बन रहा है, विशेष रूप से क्योंकि इसमें अक्सर इनट्रामर्फ और ऐसे पुनर्निर्माण होते हैं।
मैंने इस समस्या पर कुछ शोध किया और मुझे यह मेलिंग सूची पोस्ट मिली , जो अंततः मुझे LWN पर इस लेख में ले गई । यह रनटाइम पर विशिष्ट ड्राइवरों के लिए उपकरणों को बाध्य करने के लिए एक तंत्र का वर्णन करता है। यह वैसा ही लगता है जैसा मुझे चाहिए।
इसलिए, मैंने इसकी कोशिश की। मैं HID से कीबोर्ड को हटाने में सक्षम था। यह काम किया और उम्मीद के मुताबिक मैं अब इस पर टाइप नहीं कर सकता। लेकिन जब मैंने इसे अपने ड्राइवर को बांधने की कोशिश की तो मुझे "त्रुटि: कोई ऐसा उपकरण नहीं मिला" और ऑपरेशन विफल हो गया।
तो मेरा सवाल यह है कि मैं कर्नेल बाइंड / अनबाइंड ऑपरेशंस का उपयोग कैसे करूं, यह बताने के लिए कि क्या होता है जब आप एक HID डिवाइस को hid-core में ब्लैकलिस्ट करते हैं और अपने खुद के ड्राइवर को सप्लाई करते हैं? - वह है - हर समय hid-core.c पैच करने की आवश्यकता को बदलना?
हमारे ड्राइवर का स्रोत यहां है: https://github.com/ali1234/lg4l