Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Rozwiązane blokowanie wybudzania systemu myszką
#10
1
To nie są porty USB, a kontrolery. Mój laptop ma 3 porty USB, a w /proc/acpi/wakeup jest tylko EHC1 i EHC2, które odpowiadają dwóm osobnym szynom USB. Pierwsza szyna USB (EHC1) w tym przypadku jest odpowiedzialna za obsługę zewnętrznych portów USB (tych do których się podłącza różne urządzenia). Druga szyna obsługuje urządzenia wbudowane w laptop, w tym przypadku webcam (być może coś jeszcze). Jak sobie rzucisz okiem na lsusb, to zobaczysz coś takiego:

Kod:
# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

No i są dwie szyny. Przełączając to samo urządzenie po każdym z portów laptopa, zmieniają się jedynie numery portów na szynie pierwszej (wyżej ma numer 02), co wygląda tak:

Kod:
# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 3: Dev 50, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

Port 3 przy urządzeniu oznacza, że to urządzenie (mysza tutaj) została wpięta w trzeci port USB na konkretnej szynie. Jakby wpiąć to urządzenie w drugi port USB, to by był Port 2, wciąż na tej samej szynie.

Jeśli teraz wyłączę na kontrolerze EHC1 możliwość wybudzania maszyny, to żadne urządzenie podłączone do portów USB tego laptopa nie będzie w stanie już go wybudzić, bez znaczenia czy to będzie klawiatura, mysza czy cokolwiek innego. Dlatego tego typu rozwiązanie upośledzające kontroler bym odradzał. xD

O wiele lepszym wyjściem jest napisanie reguły dla udev'a, która skonfiguruje odpowiednio parametry urządzenia bez ruszania samego kontrolera. Dla przykładu:

Kod:
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
    ATTRS{idVendor}=="09da", ATTRS{idProduct}=="000a",  \
    RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/power/wakeup'"

Ta reguła mówi tyle, że jeśli zostanie podłączone urządzenie usb do kompa i będzie to urządzenie o numerach podanych wyżej, to ma zostać uruchomione polecenie, w którym zostanie przesłane disabled do pliku power/wakeup w ścieżce tego konkretnego urządzenia. Trzeba sobie tylko numery uzupełnić z wyjścia lsusb i tyle. xD

Dodano po pewnym czasie:
Jak coś to napisałem kawałek arta na ten temat. xD
Odpowiedz


Wiadomości w tym wątku
RE: blokowanie wybudzania systemu myszką - przez morfik - 06-06-2019, 03:47

Skocz do:




Użytkownicy przeglądający ten wątek: 10 gości