Belirli bir aygıt için USB otomatik askıya almayı nasıl devre dışı bırakabilirim?


18

Bu, Kablosuz farenin pil gücünde geçici olarak donması (uykuda kalması) ile ilgili sorunla ilgilidir .

Özet: Fare pil ile çalışırken belli bir süre sonra otomatik olarak askıya alındığı ve uyanmak için daha fazla zamana ihtiyaç duyduğu için donuyor.

PowerTOP'ta farenin alıcısı için USB otomatik askıya almayı devre dışı bırakmak geçici bir çözümdür, ancak yeniden başlatma işleminden kurtulamaz.

Yalnızca belirli bir aygıt için USB otomatik askıya almayı nasıl kalıcı olarak devre dışı bırakabilirim ?

Ek paketler yüklemeyi içermeyen bir çözüm tercih edilir (sonuçta, bir şeyi devre dışı bırakmak istiyorum ), ancak gerekli değildir. PowerTOP'u kaldırmak (bazıları için bir çözüm gibi görünüyor) istediğim şey değil - PowerTOP'u seviyorum ...

Ve laptop-mode-toolsUSB otomatik askıya alma özelliğini tamamen devre dışı bırakmak için yüklemek istediğim şey değil, bu yüzden yeni soru.

Ayrıca: Bu, dizüstü bilgisayarımın pilini etkiler mi? Fare için Logitech birleştirici alıcı her zaman bağlı kalır, böylece bu durum muhtemelen kötü olabilecek tüm cihazlar için otomatik askıya almayı engeller.

Yanıtlar:


25

Ubuntu 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

USB cihazının giriş kimliğini bulun - benzemelidir 1234:5678.

Dosyayı düzenleyin sudo vi /etc/default/tlpve cihazınızın giriş kimliğiyle USB_BLACKLISTşu satırı ekleyerek cihazınızın giriş kimliğini şu şekilde ekleyin:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04 (Güvenilir Tahr)

Burada hecticgeek.com'da belirtildiği gibi , hile iki bölümden oluşur:

Otomatik lsusbaskıya almayı devre dışı bırakmak istediğiniz USB cihazlarının cihaz kimliklerini belirlemek için kullanılır.

Sonra ekleyerek AUTOSUSPEND_USBID_BLACKLISTde /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.confkadar Ubuntu 14.04) yapılandırma dosyasında (ayrıntılar sıra orada da belgelenmiştir).


Aslında farem kısa bir süre sonra kayboldu / çalındı, bu yüzden bunu test edemiyorum. Ama .confdosyadan bakıldığında bu tam olarak umduğum bir şey :)
black_puppydog

Görünüşe göre AUTOSUSPEND_RUNTIME_DEVID_BLACKLISTşimdi (Ubuntu 17.04)
partofthething

2
Dell'in Ubuntu 16.04 LTS'li Ubuntu dizüstü bilgisayarları tlpbunun yerine yüklüdür laptop-mode-tools, bu nedenle USB aygıtlarının bu dizüstü bilgisayarlarda otomatik bekleme moduna alınmasını kara listeye almak istiyorsanız USB_BLACKLIST, dosyadaki ayarı yapın /etc/default/tlp- değişiklikler hemen gerçekleşir
Stuart Caie

HID'ler zaten tlp: / etc / default / tlp # 'dan kara listeye alındı ​​# Not: giriş aygıtları (usbhid) otomatik olarak hariç tutulur (aşağıya bakın) # USB_BLACKLIST = "045e: 07a5"
Tom

TLP belgeleri, dizüstü bilgisayarlar için bir güç yönetimi (daha spesifik olarak ThinkPad) olduğunu belirtiyor . Masaüstü bilgisayarlar için çalışıyor mu?
Konrad Rudolph

7

Bir bilgisayarlarla benzer bir sorun vardı Avocent KVM dizüstü bilgisayar modu-araçlar yüklenmemiş (ve bunu her halükarda bu şekilde çözmek istemediğini). Benim durumumda, KVM'nin otomatik olarak askıya alınması klavyenin ve farenin düzensiz davranmasını sağladı (birkaç saniye boşta kaldıktan sonra, yeterli tıklama ve sallanma onları uyandırıncaya kadar bir süre giriş verilerini askıya alır ve kaybeder).

PowerTOP'u çalıştırdığımda ve Avocent için USB otomatik askıya almayı kapattığımda, PowerTOP komut satırından devre dışı bırakma komutunu şöyle söyledi:

echo 'on' > '/sys/bus/usb/devices/3-10/power/control'

'3-10' biti farklı sistemlerde farklı olacaktır. PowerTOP'u çalıştırmak dışında bunu nasıl belirleyeceğimden emin değilim, ama muhtemelen bir yolu var.

Bunun yerine, cihazımın ürün kimliğiyle eşleşmek için bir udev kuralı kullandım :

trent + 14.04: /etc/udev/rules.d$ cat 10-usb-avocent-kvm-pm.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{idProduct}=="0013", ATTR{product}=="SC Secure KVM", TEST=="power/control", ATTR{power/control}:="on"

Doğru udev bilgi almak için koştum:

udevadm info -a --path /sys/bus/usb/devices/N-N

6

İçinde /etc/laptop-mode/conf.d/usb-autosuspend.confbulacaksınız:

# Enable USB autosuspend feature?
# Set to 0 to disable
CONTROL_USB_AUTOSUSPEND="auto"

Bunu değiştirmelisin CONTROL_USB_AUTOSUSPEND="0".

Bu otomatik olarak herhangi bir USB aygıtının "açık" değerine sahip olmasını sağlar /sys/bus/usb/devices/"DEVICE ID"/power/control. Bu, otomatik askıya alınan dosyaların değerini devre dışı bırakacaktır:

$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000

5

Bir USB cihazının güç seçenekleri mevcuttur /sys/bus/usb/devices/n-n/power. Ne yazık ki, belirli bir cihaz için nn ne olduğunu bulmak için bazı sleuthing alır, bu yüzden bu otomatik olarak yapan bir komut dosyası olması için bir tökezleyen blok kanıtlayacak düşünüyorum

echo -1 > /sys/bus/usb/devices/3-2/power/autosuspend

cihazda otomatik askıya almayı kapatmak için. Sihirli nn aslında çıkışında görünür

udevadm info --export-db

bu yüzden bence udev burada arkadaşın olacak; farenizi tanımlayan bir parametreye anahtarlanmış bir tür udev komut dosyası, daha sonra ilgili dosyaya echos -1 komut dosyasını çalıştırır.


4
Bu yeniden başlatmadan kurtulacak mı? / sys'e yankılanmak kalıcı değil gibi görünüyor, değil mi?
black_puppydog

2
'0 çıkış' satırından önce komutu /etc/rc.local içine koyun
Bryce

4

Kendi udev kuralımı oluşturdum :

ACTION=="add", ATTR{idVendor}=="0cf3", ATTR{idProduct}=="3004", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"

2

Ubuntu 16.04 LTS'de (Xenial Xerus), içinde bir çözüm buldum /etc/laptop-mode/conf.d/runtime-pm.conf:

# Auto-Suspend timeout in seconds
# Number of seconds after which the USB devices should suspend
AUTOSUSPEND_TIMEOUT=1800

Başlangıçta 2benim için ayarlanmıştı . 30 dakika çok daha makul.

Değişiklikten sonra şunları yapın:

sudo service laptop-mode restart

Hala nasıl tamamen devre dışı bırakılacağından emin değilim, ama şimdi benim için iyi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.