Como posso dizer ao Windows ou Linux para colocar um dispositivo específico (PCI [e]) no estado de suspensão / desativação (D3)?

5

Como posso dizer ao Windows ou Linux para ligar um dispositivo específico (por exemplo, controlador USB, placa de rede, placa de vídeo), que é colocado no estado D3? Do muito pouco que sei sobre ACPI e tal, o sistema operacional tem controle sobre isso, como ele coloca dispositivos em dito estado D3 (se suportado), por exemplo, ao colocar o computador no modo de suspensão (S3). Eu estou querendo saber se há uma maneira de fazer isso manualmente para determinados dispositivos.

Para o Linux, encontrei este tópico , sugerindo ativar o driver para controlar o poder do dispositivo usando, por exemplo,

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

e, em seguida, descarregando o driver:

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

para que o dispositivo durma.

Existe outro caminho? Talvez para emular o que acontece quando todo o sistema é colocado em modo de suspensão?

Além disso, como isso funcionaria no Windows 7?

    
por Balthasar Neumann 11.08.2011 / 02:26

1 resposta

3

For Linux I found this thread, suggesting enabling the driver to control the power of the device using e.g.

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

then unloading the driver:

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

so that the device will sleep.

Para Linux,

Ecoando auto para o arquivo sys (/sys/devices/..../..../power/control) está dizendo ao kernel para ativar o Runtime Power Management para aquele dispositivo específico. Acredito que isso requer uma versão mínima do kernel de 2.6.32, e o Runtime PM deve estar ativado no arquivo de configuração do kernel (CONFIG_PM_RUNTIME = y).

O evento que inicia a transição para o D3 é perda de link. O descarregamento do driver provavelmente impedirá que o dispositivo entre no D3, melhor que apenas ifdown (ou ifconfig ethX down) na interface.

Você pode determinar o estado do devie com o comando:

lspci -s 00:02.0 -vv

Para o NDIS, o mesmo evento (perda de link) é o que inicia a transição para o D3 (descarregar / desabilitar a desconexão de dispositivo / cabo / parceiro de link). Você pode descobrir o estado do dispositivo olhando em Propriedades- > Detalhes- > Dados de energia. Além disso, a tela Dados de energia deve informar os mapeamentos do estado de energia (ou seja, o estado Dx inserido em cada estado Sx).

    
por 04.01.2013 / 20:23