2012-10-25 12 views
7

चल रहे लिनक्स सिस्टम पर, मैं जानना चाहता हूं कि कौन सा डिवाइस ड्राइवर मॉड्यूल एक विशेष sysfs प्रविष्टि बनाता है। क्या यह जानना संभव है? मुझे पता है कि मैं कर्नेल स्रोत में प्रासंगिक स्ट्रिंग्स के लिए grep कर सकता हूं और पहचानने की कोशिश करता हूं। लेकिन, ऐसा करने के बिना कोई रास्ता है?कर्नेल मॉड्यूल की पहचान करें जो एक sysfs प्रविष्टि

+0

क्या यह सी या सी ++ में है? – vdbuilder

उत्तर

2

आप पा सकते हैं कि किस ड्राइवर ने अपने स्रोत के माध्यम से एक sysfs प्रविष्टि बनाई है। यदि ड्राइवर device_create_file()/device_remove_file() क्रमशः इसके init/exit अनुक्रमों में उपयोग करता है तो आप सुनिश्चित कर सकते हैं कि ड्राइवर द्वारा sysfs विशेषता फ़ाइल बनाई गई है। sysfs फ़ाइल द्वारा कौन सी कार्यक्षमता प्रदान की जाती है, यह जानने के लिए आप स्रोत में DEVICE_ATTR (_name, _mode, _show, _store) मैक्रो भी पा सकते हैं। आमतौर पर आप या तो फ़ाइल को बिल्ली या एक स्ट्रिंग गूंज सकते हैं। ए बिल्ली /sys/.../file, _show फ़ंक्शन के अनुरूप होगा और echo /sys/.../file मैक्रो में उल्लिखित _store फ़ंक्शन से मेल खाएगा।

+0

उत्तर के लिए धन्यवाद sanrio। मैं उस चीज़ के बारे में जानता था जिसका आपने उल्लेख किया है। मेरा सवाल है, एक sysfs प्रविष्टि दिया गया है, क्या यह बता सकता है कि कौन सा ड्राइवर मॉड्यूल (यदि lsmod द्वारा सूचीबद्ध है) यह एक चल रहे लिनक्स सिस्टम से संबंधित है। – Sann

+0

मुझे संदेह है कि ऐसा करने का एक सीधा तरीका है .. यदि आप एक में आते हैं तो कृपया इसे यहां साझा करें :) – shinymetal