Jak mogę powiedzieć systemowi Windows lub Linux, aby przełączył określone urządzenie (PCI [e]) w tryb uśpienia / wyłączenia (D3)?

5

Jak mogę powiedzieć systemowi Windows lub Linux, aby wyłączył określone urządzenie (np. Kontroler USB, kartę sieciową, kartę graficzną), które przełącza je w stan D3? Od bardzo niewielu wiem o ACPI i tym podobnych, system operacyjny ma nad tym kontrolę, ponieważ wprowadza urządzenia we wspomniany stan D3 (jeśli jest obsługiwany), na przykład podczas przełączania komputera w tryb uśpienia (S3). Zastanawiam się, czy można to zrobić ręcznie dla niektórych urządzeń.

W przypadku systemu Linux znalazłem ten wątek , sugerując włączenie sterownika do sterowania mocą urządzenia za pomocą np

 echo -n "auto" > /devices/pci0000:00/0000:00:02.0/power/control' 

a następnie rozładowanie sterownika:

 echo -n "0000:00:02.0" > /sys/bus/pci/drivers/i915/unbind

aby urządzenie spało.

Czy jest inny sposób? Może naśladować, co się stanie, gdy cały system przejdzie w tryb uśpienia?

Ponadto, jak miałoby to działać w systemie Windows 7?

Balthasar Neumann
źródło

Odpowiedzi:

3

W przypadku systemu Linux znalazłem ten wątek, sugerując włączenie sterownika do sterowania mocą urządzenia za pomocą np

echo -n „auto”> /devices/pci0000:00/0000:00:02.0/power/control 'i

następnie rozładowanie sterownika:

echo -n "0000: 00: 02.0"> / sys / bus / pci / drivers / i915 / unbind

aby urządzenie spało.

W systemie Linux

Echoing auto do pliku sys (/sys/devices/..../..../power/control) informuje jądro, aby włączyło Runtime Power Management dla tego konkretnego urządzenia. Wierzę, że wymaga to minimalnej wersji jądra 2.6.32, a Runtime PM musi być włączony w pliku konfiguracyjnym jądra (CONFIG_PM_RUNTIME = y).

Zdarzeniem, które inicjuje przejście do D3, jest utrata łącza. Zwolnienie sterownika prawdopodobnie uniemożliwi przejście urządzenia do D3, lepiej po prostu ifdown (lub ifconfig ethX w dół) interfejsu.

Możesz określić stan urządzenia za pomocą polecenia:

lspci -s 00: 02.0 -vv

W przypadku NDIS to samo zdarzenie (utrata łącza) inicjuje przejście do D3 (rozładowanie / wyłączenie urządzenia / wyciągnięcie kabla / rozłączenie partnera). Możesz sprawdzić stan urządzenia, patrząc na Właściwości-> Szczegóły-> Dane dotyczące zasilania. Ponadto ekran Dane mocy powinien informować o mapowaniach stanu zasilania (tj. O tym, jaki stan Dx jest wprowadzany w każdym stanie Sx).

xraso
źródło