क्या सॉफ्टवेयर का उपयोग करके USB डिवाइस को बिजली देने का कोई तरीका है?


11

वहाँ एक रास्ता है कि मैं एक (विशिष्ट) USB डिवाइस को पूरी तरह से लिनक्स मशीन से सॉफ्टवेयर का उपयोग करके बंद कर सकता हूं?

मैं इसे बिजली बंद करने के लिए उपयोग करना चाहता हूं (ताकि एलईडी बंद हो) (एकल) यूएसबी स्टिक।

क्या आप इसे प्राप्त करने की कोई विधि जानते हैं? जैसे / sys / बस / usb या पसंद है?


हाँ। बस डिवाइस को अनमाउंट करें।
iglvzx

1
नहीं, यह मदद नहीं करता है। यह भी संभावना है कि छड़ी पर कोई उपयोग करने योग्य विभाजन (जिसे माउंट किया जा सके) नहीं हैं।
डेनियल जर्स

एक फ्लैश ड्राइव के लिए, डिस्क को हटाने का एक तरीका है echo 1 > /sys/block/sd<letter[s]>/device/delete... (इजेक्ट हो सकता है कि ...) इसका परिणाम डिवाइस में नरम ("नरम") संचालित हो रहा है ... (यदि यह डिस्क के लिए काम करता है,) यह गैर-डिस्क उपकरणों के लिए काम नहीं करेगा ..)
गर्ट वैन डेन बर्ग

जवाबों:


10

यदि आपकी मशीन पुरानी कर्नेल चलाती है, तो आप echo suspend > /sys/bus/usb/devices/X-X/power/levelडिवाइस के निलंबन को मजबूर करने के लिए जारी कर सकते हैं ।

हालाँकि, 2.6.32 के बाद से यह संभव नहीं है:

हम बाहरी और आंतरिक: दो प्रमुख वर्गों में बिजली प्रबंधन की घटनाओं को वर्गीकृत कर सकते हैं। बाहरी घटनाओं को USB स्टैक के बाहर कुछ एजेंट द्वारा ट्रिगर किया जाता है: सिस्टम सस्पेंड / रिज्यूम (यूजर्सस्पेस द्वारा ट्रिगर), मैनुअल डायनामिक रिज्यूम (यूजर्स द्वारा ट्रिगर भी), और रिमोट वेकअप (डिवाइस द्वारा ट्रिगर)। आंतरिक घटनाएँ USB स्टैक के भीतर उत्पन्न होती हैं : ऑटोसस्पेंड और ऑटोरेस्पोम्ड। ध्यान दें कि सभी गतिशील निलंबित घटनाएं आंतरिक हैं ; बाहरी एजेंटों को गतिशील निलंबन जारी करने की अनुमति नहीं है।

power/control

    This file contains one of two words: "on" or "auto".
    You can write those words to the file to change the
    device's setting.

    "on" means that the device should be resumed and
    autosuspend is not allowed.  (Of course, system
    suspends are still allowed.)

    "auto" is the normal state in which the kernel is
    allowed to autosuspend and autoresume the device.

    (In kernels up to 2.6.32, you could also specify
    "suspend", meaning that the device should remain
    suspended and autoresume was not allowed.  This
    setting is no longer supported.

( http://www.kernel.org/doc/Documentation/usb/power-management.txt से )

मुझे लगता है कि सबसे अच्छी बात यह है कि आप ड्राइवर से डिवाइस को अनबाइंड कर सकते हैं , इसलिए उस पर कोई गतिविधि नहीं होगी, और फिर जल्द से जल्द डिवाइस को ऑटोसस्पेंड में कॉन्फ़िगर करें ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms)।

हालाँकि, जहाँ तक मुझे USB चश्मा समझ में आता है , भले ही आप डिवाइस को निलंबित कर दें, लेकिन पोर्ट पर कुछ शक्ति बनी रहेगी, इसलिए 'dumb' स्कीम (यानी सीधे + 5 V और GND से कनेक्टेड) ​​द्वारा संचालित होने पर इसे निष्क्रिय करना असंभव हो सकता है पिन)।


मैं इसे एक स्वीकृत उत्तर के रूप में चिह्नित कर रहा हूं क्योंकि मैं डिवाइस को उसके ड्राइवर से अनबॉन्ड करने में सक्षम था और ऑटोसस्पेंड को कॉन्फ़िगर कर सकता था, जिससे डिवाइस बंद हो जाता है। दुर्भाग्य से, लक्षित यूएसबी स्टिक (या: उनके एल ई डी) सीधे + 5 वी और जीएनडी से जुड़े हुए हैं, और इसलिए इसे नीचे नहीं चलाया जा सकता है।
डेनियल जर्स

3

इजेक्ट कमांड का उपयोग करके काम करना चाहिए।

भागो eject /dev/<devicename>और इसे शक्ति चाहिए।


दुर्भाग्य से, यह मेरे टेस्ट स्टिक के लिए यहां काम नहीं करता है :(
डैनियल जर्स

2
अगर आपकी USB स्टिक सीडी, फ्लॉपी, टेप या SCSI ड्राइव नहीं है तो आश्चर्य की बात नहीं है। ejectकेवल इन के साथ काम करता है।
दिमित्री ग्रिगोरीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.