Como evitar desligar determinados dispositivos USB quando uma máquina está suspensa

8

Gostaria de manter a fonte de alimentação de uma unidade alimentada por USB quando o sistema entrar no modo de suspensão (AKA S3 ou "suspensão para RAM").

Normalmente, a energia é cortada enquanto a máquina está suspensa, o que faz com que seja desmontada e montada novamente quando o sistema é reiniciado. Isso não é realmente bom, especialmente se a própria unidade suportar o gerenciamento de energia.

Embora eu possa executá-lo em uma fonte de alimentação separada, prefiro evitar alocar mais fiação para algo que possa, pelo menos em teoria, ser feito com meu hardware existente.

Como posso determinar se é possível fazer isso com o meu sistema e como posso providenciar para que um dispositivo USB específico, ou seja, este gabinete, seja sempre tratado dessa maneira?

Estou executando o ubuntu 10.10.

atualizar

Descobriu este tópico do ubuntuforums que sugere usar acpitool -wpara determinar o nível de ativação disponível para o controlador USB.

Executar isso no meu sistema mostra S1 para os controladores USB:

$ acpitool -w
   Device   S-state   Status   Sysfs node
  ---------------------------------------
  1. LID      S3    *enabled   
  2. PBTN     S4    *enabled   
  3. PCI0     S3    *disabled  no-bus:pci0000:00
  4. USB0     S1    *disabled  pci:0000:00:1d.0
  5. USB1     S1    *disabled  pci:0000:00:1d.1
  6. USB2     S1    *disabled  pci:0000:00:1d.2
  7. USB3     S1    *disabled  pci:0000:00:1d.7
  8. MODM     S3    *disabled  
  9. PCIE     S4    *disabled  pci:0000:00:1e.0

O que parece estar me dizendo que o recurso de ativação só pode ser ativado para USB no estado S1.

Não tenho certeza do quanto isso é útil, pois fornecer energia total e permitir o despertar pode ser uma preocupação ortogonal. Pode ser que ativar a ativação apenas forneça pouca energia; portanto, pode haver uma maneira diferente de ativar a energia total.

Se ativar a ativação equivale a fornecer energia total, parece que eu posso fazer o que quero colocando uma placa USB no slot de expansão (acho que é isso PCIE?). Embora eu pense que gostaria de saber um pouco mais sobre isso antes de tentar escavar uma placa de PC USB2.

intuído
fonte
1
esta questão parece ser uma quase duplicar de sua outra pergunta: unix.stackexchange.com/questions/5343
Stefan
@ Stefan: É uma elaboração / esclarecimento do que é um ponto secundário nesse outro post. Também é distinto, pois concentra-se mais no lado do sistema, enquanto essa pergunta é mais sobre os recursos típicos dos próprios dispositivos conectados.
intuited
@ Stefan: Obrigado por mencionar isso ... agora que eu conheço a paisagem um pouco melhor, fica claro para mim que essa deve ser uma pergunta separada, então eu editei a outra.
intuited

Respostas:

4

A ativação da ativação em um barramento não equivale a fornecer a esse barramento a potência total enquanto estiver em suspensão. Significa apenas que o sistema escutará o sinal de ativação nas linhas correspondentes a esse dispositivo. A energia em espera é fornecida pelo barramento apropriado, mas essa energia é muito menor que a energia total para operação normal. Adicionar uma placa USB PCI / PCIe pode ou não permitir a ativação do USB, mas definitivamente não fornece energia total às portas USB enquanto a máquina estiver no S3. Em vez disso, fornecerá apenas o suficiente para manter o chipset em execução, cerca de 200mA a 3,3V, do que recolho nesta página da Intel sobre seus adaptadores de rede.

Eu acho que esse é um recurso que será específico de uma placa-mãe e controlável apenas pelo BIOS. Eu tenho uma placa-mãe Thinkpad e uma Gigabyte que permitem alimentar dispositivos USB enquanto a máquina não está ativa e, nos dois casos, é uma configuração no BIOS, e não algo que você pode alterar enquanto o sistema estiver totalmente inicializado. Pensando bem, pode haver uma maneira de o Thinkpad configurá-lo durante a execução, mas os Thinkpads são conhecidos por terem extensões ACPI especiais para gerenciar opções de energia. Independentemente disso, para ambos os sistemas é uma proposta de tudo ou nada - não há opção para configuração por porta ou por dispositivo. Estou bastante certo de que o USB de energia total em suspensão é algo que não é padrão nos PCs e, como tal, não há uma maneira portátil de verificar se está disponível.

Embora seja um hardware extra, acho que a solução mais simples e universal é usar apenas um hub com potência.

Miles Strombach
fonte
3

O kernel suporta o recurso de economia de energia USB 2.0

Para desativá-lo após a inicialização, você pode tentar

eco 1> / sys / bus / usb / devices / seu-dispositivo-USB / power / suspensão automática

eco "on"> / sys / bus / usb / devices / your-USB-device / power / level

Para mais detalhes, consulte esta página lesswatts.org

rajaganesh87
fonte
Esse link está morto agora, você sabe se o site foi movido ou possui links alternativos?
Kerry