मैं एक लिनक्स कर्नेल मॉड्यूल के अंदर बैटरी स्तर प्राप्त करने की कोशिश कर रहा हूं (मॉड्यूल modprobe के माध्यम से डाला गया है)। मैं बैटरी जानकारी प्राप्त करने के लिए आदर्श रूप से एक कर्नेल एपीआई कॉल का उपयोग करना चाहता हूं। मैंने समाधान के लिए वेब पर खोज की है, और मैंने लिनक्स कर्नेल स्रोत और विचारों के लिए माइकल मेसेक्स द्वारा "एसीपीआई" कार्यक्रम का स्रोत भी खोजा है।मैं लिनक्स कर्नेल मॉड्यूल के अंदर बैटरी स्तर कैसे प्राप्त कर सकता हूं?
इन तकनीकों में मुझे लगता है कि मैं उपयोग कर सकते हैं में से कुछ हैं:
- पढ़ें और कोई शामिल पार्स साथ
/sys/class/power_supply/BAT0/charge_now
औरcharge_full
से पार्स/proc/acpi/battery/BAT0/state
और/proc/acpi/battery/BAT0/info
- पढ़ें।
- यदि मैं इंटरफ़ेस का पर्दाफाश करने का तरीका समझ सकता हूं तो मैं लिनक्स कर्नेल स्रोत ड्राइवर/एसीपीआई/बैटरी.c से कॉल का उपयोग करने का प्रयास कर सकता हूं। मुझे शायद
acpi_battery_get_status
औरacpi_battery_get_info
- मैंने यह भी देखा कि ड्राइवरों/एसीपीआई/एसबीएस.c के अंदर एक विधि
acpi_battery_read
है और इसके ठीक ऊपर "ड्राइवर इंटरफ़ेस" कहने वाली एक टिप्पणी है। अगर कोई जानता है कि इसका उपयोग कैसे किया जाए तो यह एक और तरीका हो सकता है।
मुझे लगता है कि कर्नेल मॉड्यूल के अंदर फ़ाइलों को पढ़ने के लिए शायद यह एक बुरा विचार है, लेकिन मुझे बिल्कुल यकीन नहीं है कि ये फ़ाइलें कर्नेल फ़ंक्शन कॉल को कैसे मैप करती हैं, इसलिए यह ठीक हो सकता है।
तो, क्या आप मुझे कुछ सुझाव/सिफारिशें दे सकते हैं?
संपादित करें: मैंने नीचे दिए गए उत्तर में अपना समाधान शामिल किया है।
आप ऐसा क्यों करना चाहते हैं, बिल्कुल? –
@Andy कुछ बैटरी स्तर निर्भर कार्यक्षमता है। – razvanlupusoru