मुझे उबंटू 16.04 (Xenial Xerus) के साथ एक ही समस्या थी और किसी भी समाधान के लिए बहुत खोज की ...
समाधान इस उत्तर के अंत में है यदि आप संदर्भ कहानी के बारे में परवाह नहीं करते हैं। संदर्भ अप्रभावित ब्लाबला की तरह लग सकता है (शायद यह है), लेकिन मुझे लगता है कि यह पाठकों को यह जांचने में मदद कर सकता है कि क्या मैंने अपने पीसी पर हल किया है जो उनके समान है।
संदर्भ
मैं हर कोशिश के पास असफल रूप से असफल रहा हूं, जो मैंने वेब पर पाया है, प्रत्येक कोशिश के बाद रिबूट करना:
- '/ etc / default / grub' कर्नेल बूट
usbcore.autosuspend=-1
पैरामीटर
- लैपटॉप-मोड की 'रनटाइम-pm.conf'
CONTROL_RUNTIME_AUTOSUSPEND=0
- पूरी तरह से '/etc/laptop-mode/laptop-mode.conf' फ़ाइल से लैपटॉप मोड टूल को अक्षम करना, यह पुष्टि करता है कि समस्या इस कर्नेल सुविधा से संबंधित नहीं है। मैंने अलग-अलग तरीकों की जाँच की है जो कि laptop_mode निश्चित रूप से नहीं चल रहे थे। (संदर्भ:
man laptop-mode.conf
& man laptop_mode
)
- मैंने '/etc/laptop-mode/conf.d/usb-autosuspend.conf' के बारे में कुछ तरकीबें पढ़ी हैं, लेकिन लैपटॉप-मोड-टूल v1.68 के साथ यह फ़ाइल Ubuntu 16.04 के मेरे संस्करण में मौजूद नहीं है
- पॉवरटॉप एप्लिकेशन अनइंस्टॉल। फ़ोरम में अक्सर संदेह होता है कि ऑटोसस्पेंड मुद्दों का कारण बन सकता है, और आज मुझे पता है कि यह मेरे मामले में सच नहीं था क्योंकि यह अनइंस्टॉल करने से कुछ भी ठीक नहीं हुआ।
options usbcore autosuspend=1
'/etc/modprobe.d/usb.conf' में भी अक्षम रहा है
- '/etc/udev/rules.d/60-power.rules' स्क्रिप्ट जेंटो आधिकारिक विकी द्वारा प्रदान की गई है
- सर्ज Y. Stroobandt द्वारा अनुशंसित '/etc/udev/rules.d/usb-power.rules' के
rules
लिए उपकरण-विशिष्ट फ़ाइलudev
यह सब तकनीकी सामान पढ़ने के बाद मुझे केवल यह समझ में आया कि इसका कारण मेरे 'sys / मॉड्यूल / usbcore / पैरामीटर / autosuspend' मूल्य से संबंधित था जो दो सेकंड में अटक गया, इससे कोई फर्क नहीं पड़ता कि मैं अपने कॉन्फ़िगरेशन में क्या परिवर्तन करता हूं। आप इसे cat
कमांड से देख सकते हैं :
$ cat /sys/module/usbcore/parameters/autosuspend
2
और हाँ, मेरा माउस दो सेकंड के बाद बिल्कुल अक्षम हो गया था, इसलिए मुझे पता था कि मैं सही रास्ते पर था। बेशक मैंने उस echo -1
कमांड का परीक्षण किया था जिसे मैंने यहां और वहां देखा है, -1
जिसका उद्देश्य ऑटोसस्पेंड को अक्षम करना है ... लेकिन:
sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied
मुझे समझ नहीं आया कि सूडो मोड में भी अनुमति देने से इनकार क्यों किया गया। मैंने रूट के रूप में कोशिश नहीं की, क्योंकि मुझे नहीं लगता था कि यह एक समस्या हो सकती है। यहाँ गलती थी :(
एलेक्स डेकर और ब्रायस टिप्पणियों के लिए धन्यवाद , मैंने सीखा है कि केवल अपने माउस के लिए ऑटोसस्पेंड को कैसे निष्क्रिय किया जाए । लेकिन निश्चित रूप से मेरी पहली कोशिश इस के साथ विफल रही है bash: Permission denied error
, इसलिए मुझे echo -1
एलेक्स अंत में काम करने के लिए सुझाए गए आदेश से पहले अपनी जड़ / सूडो भ्रम की समझ के लिए इंतजार करना पड़ा ।
मैंने रूट कमांड को रूट के रूप में लॉगिन किए बिना कमांड निष्पादित करने का एक बेहतर तरीका भी पाया है । रूट खोल और रूट कमांड के उपयोग के बीच का अंतर आधिकारिक उबंटू के रूटसुडी विकी पेज में अच्छी तरह से समझाया गया है । मैं इस तरह की चीजों को सीखना पसंद करता हूं, लेकिन हे! इसे हमेशा दर्दनाक तरीके से क्यों सीखा जाना चाहिए? जबरदस्त हंसी
OMG, यह एक वास्तविक सिरदर्द था, और मुझे समझने में एक noob के लिए बहुत समय लगता था, जैसा कि मैं आमतौर पर कहता हूं "कोई मस्तिष्क नहीं लाभ"। खदान को नेत्रहीन रूप से अधिक प्रशिक्षण की आवश्यकता है।
तो चलो अपने बारे में बात करना बंद करो और इसे ठीक करो! कृपया नीचे जारी रखें ...
मैं आपके बेकार बाहरी एचडीडी के लिए दूसरे समाधान की अत्यधिक सलाह देता हूं कि आप अपने लैपटॉप की बैटरी को कुछ भी न करें। लेकिन मैं आपको दोनों समाधान देता हूं, क्योंकि जो अपनी स्वतंत्रता से प्यार करता है, उसे एक दूसरे की स्वतंत्रता से भी प्यार करना चाहिए :)
समाधान 1
प्रत्येक USB डिवाइस / पोर्ट पर ऑटोसस्पेंड को अक्षम करने के लिए
टर्मिनल खोलें और निष्पादित करें:
sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
यह वास्तव में एक अस्थायी समाधान है जो आपको तुरंत परीक्षण करने की अनुमति देता है यदि यह कमांड आपके माउस या कीबोर्ड ऑटोसस्पेंड मुद्दे को ठीक करता है।
यदि आपका USB डिवाइस अभी ठीक काम करता है, तो बस अपनी '/etc/rc.local' स्क्रिप्ट को संपादित करें ताकि यह उस कमांड को चलाए जब भी सिस्टम बूट होगा। इस तरह आप स्थाई की तरह बना लेंगे । फ़ाइल को संपादित करें, उदाहरण के लिए नैनो के साथ:
sudo nano /etc/rc.local
और लाइन echo -1
से पहले अपनी '/etc/rc.local' फाइल में कमांड डालेंexit 0
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
(...)
# By default this script does nothing.
echo -1 > /sys/module/usbcore/parameters/autosuspend
exit 0
अपने कंप्यूटर को पुनरारंभ
(कृपया महत्वपूर्ण नोट अंत में देखें)
।
समाधान २
किसी विशिष्ट USB डिवाइस / पोर्ट के लिए ऑटोसस्पेंड को अक्षम करने के लिए
USB डिवाइस के लिए पावर विकल्प हैं /sys/bus/usb/devices/n-n/power
। n-n
किसी दिए गए डिवाइस के लिए क्या है, यह पता लगाने के लिए कुछ हेरफेर की आवश्यकता होती है, लेकिन यह जटिल नहीं है। नीचे दिए गए उदाहरण से पता चलता है कि मैंने कैसे निर्धारित किया है कि मेरे वायरलेस माउस रिसीवर का यूएसबी पोर्ट नंबर है 3-1
, इसलिए कृपया इसे अपनी स्थिति में अनुकूलित करें:
अपने USB डिवाइस को अनप्लग करें, टर्मिनल खोलें और sudo dmesg
कमांड निष्पादित करें
अपने USB डिवाइस को वापस कनेक्ट करें, और फिर sudo dmesg
परिवर्तनों की जांच करने के लिए टर्मिनल में फिर से निष्पादित करें
dmesg
अपने माउस को स्लॉट में वापस रखने के बाद मेरे कमांड आउटपुट का अंत कैसा दिखता है:
[40208.575249] usb 3-1: new full-speed USB device number 8 using xhci_hcd
[40208.705233] usb 3-1: New USB device found, idVendor=062a, idProduct=4102
[40208.705240] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[40208.705245] usb 3-1: Product: 2.4G Wireless Mouse
[40208.705248] usb 3-1: Manufacturer: MOSART Semi.
[40208.707679] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/input/input24
[40208.763946] hid-generic 0003:062A:4102.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-1/input0
अब हम देख सकते हैं कि मेरे यूएसबी डिवाइस को जिस पोर्ट में प्लग-इन किया गया है, उसकी पहचान की जाती है usb 3-1
।
**Note:** this trick concerns the USB port ID, not a device ID. For example, if I plug my mouse to the next USB port, it becomes identified as `usb 3-2` in the `dmesg` result. But this solution #2 remains very useful if you take the habit to always plug your mice or keyboard to the same port, and it's generally what people use to do unconsciously ;)
अपने टर्मिनल में निम्न कमांड निष्पादित करें, 3-1
जो आपने अपने परिणाम में पाया है उसके साथ मेरा पोर्ट नंबर बदल रहा है dmesg
:
sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
लिनक्स आधिकारिक दस्तावेज के अनुसार कर्नेल संस्करण 2.6.38 के बाद से हटाए गए नोट autosuspend_delay_ms
को बदल दिया गया है ।autosuspend
यह वास्तव में एक अस्थायी समाधान है, लेकिन अब आप आसानी से परीक्षण कर सकते हैं यदि यह कमांड आपके माउस या कीबोर्ड ऑटोसस्पेंड मुद्दे को तय करता है।
यदि आपका USB डिवाइस अब ठीक काम करता है, तो बस अपनी '/etc/rc.local' स्क्रिप्ट को संपादित करें ताकि यह सिस्टम के बूट होने पर उस कमांड को चलाए। इस तरह आप स्थाई की तरह बना लेंगे । फ़ाइल को संपादित करें, उदाहरण के लिए नैनो के साथ:
sudo nano /etc/rc.local
और लाइन echo -1
से पहले अपनी '/etc/rc.local' फाइल में कमांड डालें exit 0
, एक बार फिर n-n
कमांड में पोर्ट नंबर बदलना न भूलें :
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
(...)
# By default this script does nothing.
echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
exit 0
अपने कंप्यूटर को पुनरारंभ
।
महत्वपूर्ण: यह मत भूलो कि आपको अपने sudo sh -c
अस्थायी डिवाइस को डिस्कनेक्ट / फिर से कनेक्ट करने के लिए "अस्थायी" कमांड को फिर से मैन्युअल रूप से निष्पादित करना होगा, जबकि आपका डेस्कटॉप वातावरण पहले से ही चालू है, भले ही आप इसे उसी यूएसबी प्लग पर वापस प्लग करें। सामान्य, सिर्फ इसलिए कि '/etc/rc.local' फ़ाइल को केवल एक बार सिस्टम स्टार्टअप पर कहा जाता है।
वैसे भी, वर्कअराउंड संभव हैं। बेहतर कुशल लोगों में अधिक चतुर तरीके हो सकते हैं, लेकिन मैंने उबंटू में बंदरगाह-विशिष्ट उपनामों को कॉन्फ़िगर किया है। यह मुझे सरल usb1
या usb2
कमांड का उपयोग करने की अनुमति देता है यदि मुझे अपने यूएसबी डिवाइस को यहां या वहां अनप्लग / रिप्लेस करना है। आप भी! आप पूर्ण कमांड टाइप करने के बजाय छोटे शब्दों के साथ खेलने के लिए कमांड उपनाम भी बना सकते हैं । यह कम से कम दो मिनट में सेट करने में आसान है और यह भी साथ काम करता है Alt+ F2:)
इसे आसान बनाने के लिए अधिक विचार भी बहुत स्वागत योग्य होंगे।