मेरे पास एक विंटेज आईबीएम 122 कुंजी मॉडल एम कीबोर्ड है जिसे मैं आधुनिक कंप्यूटर पर उपयोग के लिए एडाप्ट कर रहा हूं। मैं एक Teensy 2.0 का उपयोग कर रहा हूँ एन्कोडिंग करने के लिए और चीजों के USB पक्ष को संभालने के लिए। मैंने विनम्र हैकर कीबोर्ड प्रोजेक्ट ( https://github.com/humblehacker/keyboard ) से फर्मवेयर उधार लिया और मैंने बिल्ड कॉन्फ़िगरेशन में अतिरिक्त कुंजियाँ जोड़ीं। अब तक सब ठीक है।
सभी "नियमित" चाबियाँ काम करती हैं, लेकिन कर्नेल अतिरिक्त कुंजी ( F13- F24, आदि) को छोड़ता हुआ प्रतीत होता है ।
रनिंग /lib/udev/keymap -i input/event0
सभी सामान्य कुंजी के स्कैन कोड दिखाता है, लेकिन अतिरिक्त कुंजी के लिए कुछ भी नहीं।
wireshark
पैकेट पर कब्जा करने के लिए USB पोर्ट पर चलना दिखाता है कि कीबोर्ड IS स्कैन कोड भेज रहा है, लेकिन ऐसा लगता है कि कर्नेल सिर्फ सिद्धांत पर उन्हें गिरा रहा है।
मुझे ऐसा लगता है कि कर्नेल ड्राइवरों में यह कुछ ऐसा है जो केवल स्कैन कोड प्रदान नहीं कर रहा है जो इसकी उम्मीद नहीं करता है।
मुझे लगता है कि .h
कर्नेल स्रोत में कुछ फ़ाइल में "मास्टर" कुंजी मैप का कुछ प्रकार होगा, लेकिन अभी तक, मैं इसे खोजने के अपने प्रयासों में सफल नहीं हुआ हूं।
यह ध्यान देने योग्य है कि मैं एक्स में अतिरिक्त कुंजियों को मैप करने के बारे में नहीं पूछ रहा हूं, जैसे कि मुझसे पहले कई अन्य। यह एक निम्न स्तर है, जाहिरा तौर पर कर्नेल संबंधी, समस्या। उस पल के लिए मान लें कि मैं एक्स का उपयोग बिल्कुल नहीं करूंगा। स्कैन कोड के लिए मुझे क्या चाहिए, जब मैं दौड़ता /lib/udev/keymap -i
हूं, तो मैं वहां से बाकी काम कर सकता हूं।
evtest
बजाय की कोशिश कर सकते हैं /lib/udev/keymap -i
, अगर यह किसी भी अलग से बाहर आ जाएगा।