तार्किक रूप से डिस्कनेक्ट किए गए USB डिवाइस को फिर से कैसे कनेक्ट करें?


55

USB संग्रहण डिवाइस के लिए तार्किक रूप से डिस्कनेक्ट होना संभव है: डिवाइस अभी भी प्लग इन है, लेकिन ऑपरेटिंग सिस्टम से अदृश्य है (उदाहरण के लिए यह सूचीबद्ध नहीं है /proc/bus/usb)। शायद यह अन्य प्रकार के यूएसबी या अन्य हटाने योग्य उपकरणों के साथ भी हो सकता है। यह उदाहरण के लिए हो सकता है:

ड्राइवर या हार्डवेयर में क्या चल रहा है, और सबसे महत्वपूर्ण बात, (कैसे) डिवाइस को तार्किक रूप से पुन: कनेक्ट किया जा सकता है (बिना भौतिक रूप से इसे प्लग आउट किए और वापस)?

ध्यान दें कि यह प्रश्न बढ़ते के बारे में नहीं है। "तार्किक रूप से डिस्कनेक्ट" स्थिति में, कर्नेल का मानना ​​है कि USB बस पर कुछ भी नहीं है (और इसलिए निश्चित रूप से कोई प्रविष्टि नहीं है /dev)।


जवाबों:


21

कभी-कभी USB बस की शाखा पर एक शक्ति चक्र करना संभव होता है जहां डिवाइस प्लग किया गया है:

# echo suspend > /sys/bus/usb/devices/1-1/power/level
# echo auto > /sys/bus/usb/devices/1-1/power/level

1-1आपके विन्यास को समायोजित किया जाना चाहिए। आप देख सकते हैं कि USB ट्री के किस भाग को आपके डिवाइस ने lsusb -tख़ारिज करने से पहले प्लग किया है।

आप लिनक्स usb मेलिंग-सूची पर विस्तृत जानकारी प्राप्त कर सकते हैं इस सूत्र उदाहरण के लिए।


6
"सस्पेंड" 2.6.36 के बाद गुठली पर काम नहीं करता है।
एलेक्सिसडैम

dmesgसही डिवाइस आईडी ("usb 9-4: USB डिस्कनेक्ट [...]") की रिपोर्ट की मानें , तो यह किसी भी सुपर लिनक्स पर काम नहीं करता है। /sys/bus/usb/devices/9-4बाद में कोई रास्ता नहीं है ।
l0b0

1
1. dmesg: चेतावनी! शक्ति / स्तर को घटाया जाता है; इसके बजाय बिजली / नियंत्रण का उपयोग करें। 2. superuser.com/questions/371068/…
सॉकेटपेयर

इसके अलावा suspendअब कोई हाल कर्नेल संस्करणों पर समर्थित है ....
गर्ट वेन डेन बर्ग

6

डिवाइस को रीसेट करें, या इसके साथ जुड़ा हुआ हब, और डिवाइस को फिर से प्रकट होना चाहिए। यहाँ एक छोटा सा कार्यक्रम है कि:

http://marc.info/?l=linux-usb-users&m=116827193506484

यह मेरे द्वारा आजमाई गई अधिकांश USB ड्राइवों के लिए काम करता है, लेकिन मेरे किंग्स्टन DT 101 II 4GB जैसे अपवाद हैं, जो रीसेट के बाद INQUIRY और READ CAPACITY कमांड को विफल करता है, और पावर-साइकल होने तक अनुपयोगी रहता है।

यदि आप पोर्ट से बिजली प्राप्त करते हैं, तो आप डिवाइस को अनप्लग किए बिना पावर-साइकिल कर सकते हैं और आपका यूएसबी हब प्रति पोर्ट पावर कंट्रोल का समर्थन करता है। यहां शक्ति को नियंत्रित करने के लिए एक छोटा कार्यक्रम है:

http://marc.info/?l=linux-usb-devel&m=113724451205634

दुर्भाग्य से, लगभग कोई भी यूएसबी हब इस सुविधा का समर्थन नहीं करता है, और इसे खोजने वाले को ढूंढना बहुत मुश्किल है। निर्माता इसका विज्ञापन नहीं करते हैं। कई हब भी इसके बारे में झूठ बोलते हैं, उदाहरण के लिए यदि आप "lsusb -v" करते हैं, तो आप "प्रति-पोर्ट पावर स्विचिंग" को "wHubCharacteristic" में विज्ञापित देख सकते हैं, लेकिन वास्तव में यह काम नहीं करता है। चिपसेट इसका समर्थन कर सकता है, लेकिन निर्माता के लिए चिपसेट से गुजरने के बजाय पोर्ट पावर पिन को सीधे बिजली की आपूर्ति से जोड़ना आसान / सस्ता था।


5

मुझे अपने गेंटू सिस्टम पर शानदार काम करने का यह जवाब मिला । कृपया अपने डिवाइस को फिर से सक्षम करने के लिए याद रखें यदि यह आपके सिस्टम का एक महत्वपूर्ण टुकड़ा है (जैसे माउस या कीबोर्ड)।

sudo sh -c 'AUTHFILE="/sys/bus/usb/devices/5-2/authorized" ; echo 0 > "$AUTHFILE" ; sleep 1 ; echo 1 > "$AUTHFILE"'

यह देखने के लिए कि आप क्या अक्षम / पुनः सक्षम कर रहे हैं:

cat /sys/bus/usb/devices/5-2/product

यह मेरे आधुनिक फेडोरा 25 प्रणाली पर चाल करने के लिए लग रहा था। अन्य तरीकों में से कुछ अब संभव नहीं हैं।
xenithorb

5
udevadm info -a -n /dev/sdb

अब कर्नेल के लिए जाँच करें। जैसे अगर यह फ्रंट UIP के पोर्ट 2 से जुड़ा है तो यह 1-1.2 होगा और अगर यह फ्रंट UIP के पोर्ट 1 से जुड़ा है तो यह 1-1.1 होगा।

पोर्ट 2 के लिए: USB डिस्कनेक्ट करने के लिए:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/unbind

USB कनेक्ट करने के लिए:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/bind

3

मैंने ऊपर दिए गए अधिकांश सुझावों की कोशिश की है, लेकिन उन्होंने मेरे लिए काम नहीं किया। मैंने पाया कि कमांड लाइन से एक यूएसबी डिवाइस को कैसे रीसेट किया जाए: https://askubuntu.com/a/290519

echo $i >/sys/bus/pci/drivers/ehci_hcd/bind

जहाँ से $iआप उपयुक्त डिवाइस आईडी का उपयोग कर सकते हैं /sys/bus/pci/drivers/ehci_hcd


कृपया लिंक से अधिक पोस्ट करें; कुछ विवरण शामिल करें ताकि लोगों को उत्तर के लिए क्लिक न करना पड़े।
jasonwryan

1

निम्नलिखित USB डिवाइस को डिस्कनेक्ट कर देगा।

sudo eject /dev/sde

निम्नलिखित USB डिवाइस को फिर से कनेक्ट करेगा।

sudo eject -t /dev/sde

ऊपर मेरे लिनक्स मिंट पर काम करता है।
संदर्भ: http://www.upubuntu.com/2011/09/how-to-remount-usb-stick-without.html


-5

मैं अनिश्चित हूं कि मैं आपके प्रश्न को ठीक से समझ रहा हूं, लेकिन मेरे सिस्टम पर अगर कोई USB डिवाइस प्लग इन है, लेकिन माउंट नहीं है तो मैं इसे 'देख सकता हूं'

$> fdisk -l

यह मुझे बताता है कि यह किस डिवाइस से जुड़ा है (यानी / dev / sdd1 या कुछ), तो मैं इसे मैन्युअल रूप से माउंट करता हूं।


5
फिर से: नहीं, सवाल यह नहीं है कि एक फाइल सिस्टम अप्राप्य हो रहा है (यानी अनमाउंट), यह एक ऐसे डिवाइस के बारे में है जो अप्राप्य हो रहा है (कर्नेल डिवाइस नहीं देखता है, इसलिए निश्चित रूप से इसमें कोई प्रविष्टि नहीं है /dev)।
गिल्स एसओ- बुराई को रोकना '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.