Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Rozwiązane blokowanie wybudzania systemu myszką
#1
0
Jak zablokować wybudzanie kompa ze stanu wstrzymania myszką podpiętą pod USB?

Czytałem na ten temat w tym wątku (podpunkt 2) ale nie uśmiecha mi się pisać jakichś skryptów, może jest prostszy sposób?

Próbowałem też tej komendy:

Kod:
sudo sh -c "echo disabled > /sys/devices/pci0000:00/0000:00:1d.0/power/wakeup"

aby zmienić "enabled" na "disabled" w tym pliku, ale po restarcie kompa zawartość pliku powraca do stanu "enabled", pewnie robię to źle Tongue
Acer Aspire E5-571, i3-4005U, Intel HD Graphics 4400, 8 GB,  128 SSD
Odpowiedz
#2
0
A tego to sie w biosie nie ustawia czasem? U mnie system się nie budzi od ruchów myszą jedynie od wciskania klawiszy na klawiaturze.
Odpowiedz
#3
0
Można też próbować ustawić w Biosie oszczędzanie energii na poziomie S3/S4.
Odpowiedz
#4
1
Better response on post RE: blokowanie wybudzania systemu myszką
(04-06-2019, 23:19)onlinemaster napisał(a): Próbowałem też tej komendy:

Kod:
sudo sh -c "echo disabled > /sys/devices/pci0000:00/0000:00:1d.0/power/wakeup"

To polecenie dotyczy zarządzania zasilaniem USB czyli zawieszanie i pobudzanie zasilania dla poszczególnych urządzeń podłączonych do USB, a to co innego niż wybudzanie komputera.

Za pomocą polecenia cat /proc/acpi/wakeup otrzymasz listę wszystkich urządzeń zdolnych do wybudzania komputera. Znajdź oznaczenia wszystkich portów USB. Jeśli są to USB1, USB2 itd. to problem z głowy. Czasami jednak są to HXC1, EHC1 albo podobne. Żeby zweryfikować że są to oznaczenia portów USB wykonaj polecenie lspci i porównaj numery sysfs node:

lspci:
00:1a.7 USB controller: Intel Corporation 82801JD/DO (ICH10 Family) USB2 EHCI Controller #2 (rev 02)

wakeup:
EUS2 S3 *enabled pci:0000:00:1a.7

Następnie utwórz plik rc.local:

Kod:
sudo touch /etc/rc.local

Uczyń go wykonalnym:

Kod:
sudo chmod +x -v /etc/rc.local

Otwórz go:

Kod:
xed admin:///etc/rc.local

I wpisz:

Kod:
#!/bin/sh -e

echo "EHC3" > /proc/acpi/wakeup

exit 0

Dla każdego portu USB dodaj jedną linię echo "EHC3" > /proc/acpi/wakeup. Zamiast EHC3 wpisz odpowiednie oznaczenia portów.

Po starcie komputera porty USB będą uczynione niezdolne do jego wybudzania.
Odpowiedz
#5
0
Coś to nie do końca jest tak jak piszesz. xD

U mnie to wygląda tak:

Kod:
# cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
P0P2      S4    *disabled
PEGP      S4    *disabled
P0P1      S4    *disabled  pci:0000:00:1e.0
EHC1      S3    *enabled   pci:0000:00:1d.0
EHC2      S3    *enabled   pci:0000:00:1a.0
HDEF      S0    *disabled  pci:0000:00:1b.0
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled  pci:0000:02:00.0
RP02      S4    *disabled
PXSX      S4    *disabled
RP03      S4    *disabled  pci:0000:00:1c.2
PXSX      S4    *disabled  pci:0000:03:00.0
RP04      S4    *disabled
PXSX      S4    *disabled
RP05      S4    *disabled
PXSX      S4    *disabled
RP07      S4    *disabled
PXSX      S4    *disabled
RP08      S4    *disabled
PXSX      S4    *disabled
PEG3      S4    *disabled
PEG5      S4    *disabled
PEG6      S4    *disabled

Nie ma tutaj oznaczeń USB ale są włączone EHC1 i EHC2 ale to nie są urządzenia USB. Jeśli przykładowo wyciągnę myszę i klawiaturę z portu USB, to ten wynik widoczny wyżej w ogóle się nie zmienia, a mimo to mysza nie budzi kompa, a klawiatura tak, zatem czemu tak się dzieje? xD No i też najważniejsze pytanie -- gdzie w tym wyniku jest pokrywa laptopa, bo ten jest w stanie się wybudzić po jej otwarciu ale jakoś jej tam nie widzę. xD
Odpowiedz
#6
0
(04-06-2019, 23:52)morfik napisał(a): A tego to sie w biosie nie ustawia czasem? U mnie system się nie budzi od ruchów myszą jedynie od wciskania klawiszy na klawiaturze.

Przeważnie tak, ale mój BIOS jest jakiś ubogi w funkcje Confused
Acer Aspire E5-571, i3-4005U, Intel HD Graphics 4400, 8 GB,  128 SSD
Odpowiedz
#7
0
(05-06-2019, 19:29)morfik napisał(a): Jeśli przykładowo wyciągnę myszę i klawiaturę z portu USB, to ten wynik widoczny wyżej w ogóle się nie zmienia, (...)

Wynik (Status) w tym przypadku się nie zmienia ponieważ dotyczy portów USB a nie urządzeń które są do niego podłączone.
Odpowiedz
#8
0
(05-06-2019, 15:41)magnus napisał(a): Za pomocą polecenia cat /proc/acpi/wakeup otrzymasz listę wszystkich urządzeń zdolnych do wybudzania komputera. Znajdź oznaczenia wszystkich portów USB. Jeśli są to USB1, USB2 itd. to problem z głowy. Czasami jednak są to HXC1, EHC1 albo podobne. Żeby zweryfikować że są to oznaczenia portów USB wykonaj polecenie lspci i porównaj numery sysfs node:

cat /proc/acpi/wakeup:
Kod:
mariusz@Mariusz-Aspire-E5-571:~$ cat /proc/acpi/wakeup
Device S-state  Status   Sysfs node
P0P1  S4 *disabled
EHC1  S3 *enabled   pci:0000:00:1d.0
XHC  S3 *enabled   pci:0000:00:14.0
HDEF  S4 *disabled  pci:0000:00:1b.0
TPD4  S4 *disabled
TPD7  S0 *disabled
TPD8  S0 *disabled  i2c:i2c-SYN1B7E:01
RP03  S0 *disabled  pci:0000:00:1c.0
PXSX  S0 *disabled  pci:0000:01:00.0
*disabled  platform:rtsx_pci_sdmmc.0
*disabled  platform:rtsx_pci_ms.0
PEGP  S4 *disabled
RP07  S0 *disabled
PXSX  S0 *disabled
RP08  S0 *disabled
PXSX  S0 *disabled
PEG0  S4 *disabled
PEGP  S4 *disabled
PEG1  S4 *disabled
PEG2  S4 *disabled
AWAD  S4 *disabled  platform:ACPI000E:00

lspci:
Kod:
mariusz@Mariusz-Aspire-E5-571:~$ lspci
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
01:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
02:00.0 Network controller: Intel Corporation Wireless 3160 (rev 83)
mariusz@Mariusz-Aspire-E5-571:~$

Ja nie ogarniam i nie jestem w stanie iść dalej Sad
Acer Aspire E5-571, i3-4005U, Intel HD Graphics 4400, 8 GB,  128 SSD
Odpowiedz
#9
0
Masz dwa porty USB. To co wpiszesz do pliku rc.local będzie wyglądało tak:

Kod:
#!/bin/sh -e

echo "XHC" > /proc/acpi/wakeup
echo "EHC1" > /proc/acpi/wakeup

exit 0
Odpowiedz
#10
1
Better response on post RE: blokowanie wybudzania systemu myszką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


Skocz do:




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