Ubuntu 16.04 (Xenial Xerus) ile aynı sorunu yaşadım ve herhangi bir çözüm aradım ...
Bağlam hikayesini önemsemiyorsanız çözüm bu cevabın sonunda . Bağlam gereksiz blabla (belki de) gibi görünebilir, ancak okuyucumun PC'imde çözdüğüm sorunun onlarınkiyle aynı olup olmadığını kontrol etmesine yardımcı olabileceğini düşünüyorum.
BAĞLAM
Umutsuzca var başarısız her denemeden sonra yeniden, Web üzerinde buldum her ipuçları yakın test:
- '/ etc / default / grub' çekirdek önyükleme
usbcore.autosuspend=-1
parametresi
- dizüstü bilgisayar modunun 'runtime-pm.conf'
CONTROL_RUNTIME_AUTOSUSPEND=0
- Dizüstü Bilgisayar Modu Araçlarını '/etc/laptop-mode/laptop-mode.conf' dosyasından tamamen devre dışı bırakarak sorunun bu çekirdek özelliğiyle ilgili olmadığını doğrular. Emin olmak için laptop_mode'un artık çalışmadığı farklı yolları kontrol ettim . (Ref:
man laptop-mode.conf
& man laptop_mode
)
- '/Etc/laptop-mode/conf.d/usb-autosuspend.conf' hakkında bazı hileler okudum, ancak bu dosya benim dizüstü bilgisayar modu araçları v1.68 ile Ubuntu 16.04 sürümünde mevcut değil
- powertop uygulama kaldırma. Genellikle forumlarda otomatik askıya alma sorunlarına neden olduğundan şüpheleniliyor ve bugün kaldırmanın hiçbir şey düzeltmediği için benim durumumda doğru olmadığını biliyorum.
options usbcore autosuspend=1
'/etc/modprobe.d/usb.conf' da da verimsiz oldu
- '/etc/udev/rules.d/60-power.rules' komut dosyası Gentoo resmi Wiki tarafından sağlanmıştır
- Serge Y. Stroobandt tarafından önerilen '/etc/udev/rules.d/usb-power.rules'
rules
için cihaza özel dosyaudev
Tüm bu teknik şeyleri okuduktan sonra, sadece konfigürasyonumda ne değişiklik yaparsam yapayım, neden '/ sys / module / usbcore / parametreler / otomatik askıya alma' değerimle ilgili olduğunu anladım. Komutla kontrol edebilirsiniz cat
:
$ cat /sys/module/usbcore/parameters/autosuspend
2
Ve evet, farem tam iki saniye sonra devre dışı bırakıldı, bu yüzden doğru yolda olduğumu biliyordum. Tabii ki echo -1
burada ve orada gördüğüm komutu -1
otomatik olarak askıya almayı devre dışı bırakmayı amaçlamıştım ... ama:
sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied
Sudo modunda bile izinlerin neden reddedildiğini anlamadım. Kök olarak denemedim, çünkü bunun bir sorun olabileceğini düşünmedim. İşte hata :(
Sayesinde Alex Dekker & Bryce yorumlarla , nasıl devre dışı öğrendim otomatik askıya almayı sadece benim fare için. Ama tabii ki ilk denemelerim bu konuda başarısız oldu, bu bash: Permission denied error
yüzden echo -1
Alex'in önerdiği komut nihayet işe yaramadan önce kök / sudo karışıklığımı anlamak için beklemek zorunda kaldım .
Ayrıca root olarak giriş yapmadan root kullanıcısı olarak bir komutu yürütmenin daha iyi bir yolunu buldum . Kök kabuk ve kök komutlarının kullanımı arasındaki fark, resmi Ubuntu'nun RootSudo wiki sayfasında iyi açıklanmıştır . Bu tür şeyleri öğrenmeyi seviyorum, ama hey! Neden her zaman acı verici şekilde öğrenilmeli? LOL
OMG, bu gerçek bir baş ağrısıydı ve benim gibi bir noob'un anlaması çok zaman aldı, çünkü genellikle “beyin yok kazanç yok” diyorum. Benimki daha fazla eğitime ihtiyaç duyuyor.
Öyleyse kendim hakkında konuşmayı bırakıp gidelim! Lütfen aşağıya devam edin ...
Boştaki harici HDD'niz için dizüstü bilgisayarınızın pilini boşuna tüketmemeniz için ikinci çözümü şiddetle tavsiye ederim . Ama size her iki çözümü de veriyorum, çünkü kendi özgürlüğünü sevenlerin birbirlerinin özgürlüğünü de sevmesi gerekir :)
ÇÖZÜM 1
Her USB aygıtında / bağlantı noktasında otomatik askıya almayı devre dışı bırakmak için
Terminal'i açın ve çalıştırın:
sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
Bu gerçekten de bu komutun farenizin veya klavyenin otomatik askıya alma sorununu çözüp çözmediğini anında test etmenizi sağlayan geçici bir çözümdür.
USB aygıtlarınız şimdi iyi çalışıyorsa, '/etc/rc.local' komut dosyanızı düzenleyin, böylece sistem her önyüklendiğinde bu komutu çalıştıracaktır. Bu şekilde düzeltmeyi kalıcı hale getireceksiniz . Dosyayı düzenleyin, örneğin nano ile:
sudo nano /etc/rc.local
ve echo -1
komutu '/etc/rc.local' dosyanıza exit 0
satırdan önce koyun
#!/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
Bilgisayarı yeniden başlatın
(Lütfen sonunda Önemli notu kontrol edin.)
.
ÇÖZÜM 2
Belirli bir USB cihazı / bağlantı noktası için otomatik askıya almayı devre dışı bırakmak için
Bir USB cihazının güç seçenekleri mevcuttur /sys/bus/usb/devices/n-n/power
. n-n
Belirli bir cihaz için ne olduğunu öğrenmek için birkaç manipülasyon gerektirir, ancak bu karmaşık değildir. Aşağıdaki örnek, kablosuz fare alıcımın USB bağlantı noktası numarasının nasıl olduğunu belirlediğimi gösterir 3-1
, bu yüzden lütfen bunu kendi durumunuza uyarlayın:
USB cihazınızı fişten çekin, Terminal'i açın ve sudo dmesg
komutu yürütün
USB cihazınızı tekrar bağlayın ve ardından sudo dmesg
değişiklikleri kontrol etmek için Terminal'de tekrar çalıştırın
dmesg
Komut çıktımın sonu, faremi bir yuvaya taktıktan sonra şöyle görünüyor:
[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
Şimdi USB cihazımın takılı olduğu portun olarak tanımlandığını görebiliriz 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 ;)
Bağlantı noktası numaramı 3-1
kendi dmesg
sonucunuzda bulduğunuzla değiştirerek Terminalinizde aşağıdaki komutu yürütün :
sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
Linux resmi belgelerine göre, çekirdek sürüm 2.6.38'den bu yana autosuspend_delay_ms
kullanımdan kaldırılmış olduğunu unutmayın .autosuspend
Bu gerçekten geçici bir çözümdür, ancak artık bu komutun fare veya klavye otomatik askıya alma sorununuzu çözüp çözmediğini kolayca test edebilirsiniz.
USB aygıtınız şimdi iyi çalışıyorsa, '/etc/rc.local' komut dosyanızı düzenleyin, böylece sistem her başlatıldığında bu komutu çalıştıracaktır. Bu şekilde düzeltmeyi kalıcı hale getireceksiniz . Dosyayı düzenleyin, örneğin nano ile:
sudo nano /etc/rc.local
ve echo -1
komutu '/etc/rc.local' dosyanıza exit 0
satırdan önce koyun , bir kez daha komuttaki bağlantı noktası numarasını değiştirmeyi unutmayın 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
Bilgisayarı yeniden başlatın
.
Önemli:sudo sh -c
Aynı USB fişine taksanız bile, masaüstü ortamınız zaten başlatılırken USB aygıtınızın bağlantısını keser / yeniden bağlarsanız "geçici" komutu yeniden yürütmeniz gerektiğini unutmayın . Normal, '/etc/rc.local' dosyasının sistem başlangıcında yalnızca bir kez çağrılması nedeniyle.
Her neyse, geçici çözümler mümkündür. Daha yetenekli insanların daha akıllı yöntemleri olabilir, ancak Ubuntu'da bağlantı noktasına özgü diğer adları yapılandırdım. USB aygıtımı burada veya orada çıkarmam / çıkarmam gerekirse , basit usb1
veya usb2
komutları seçmeli olarak kullanmamı sağlar . Sen de! Tam komutu yazmak yerine kısa kelimelerle oynamak için komut takma adları da oluşturabilirsiniz . İki dakikadan daha kısa sürede ayarlamak kolaydır ve Alt+ F2:) ile de çalışır
Daha kolay hale getirmek için daha fazla fikir de çok hoş olurdu.