Raspberry Pi - Gerencie a energia da porta
Há três anos, adquiri um Raspberry Pi (o primeiro) modelo B para montar um pequeno NAS caseiro. Comprei então dois magníficos discos rígidos de 3 TB cada um que coloquei numa caixa para fazer um magnífico RAID 1. Esta instalação foi boa mas teve um inconveniente doloroso… Os meus discos rígidos nunca falharam! Entenda, eles nunca dormem, mesmo quando não é usado por várias horas.
Perante este problema, procurei em vão uma solução que me permitisse controlar eu próprio a alimentação das minhas portas USB… Na altura, o Framboesa estava quase no estado de protótipo e a comunidade não era tão grande quanto é hoje.
Raspberry Pi 3, aí está você!
Nos últimos dias, quis investir em um modelo mais potente. Depois de ouvir muitas coisas boas sobre o Modelo 2, esperava que esse problema de gerenciamento de energia USB fosse corrigido, então decidi comprar um novo modelo. Felizmente, o Raspberry Pi 3 foi lançado ao mesmo tempo, e nem um nem dois eu pedi.
Dispositivos USB adormecidos
Após alguns testes, percebi que meu problema inicial não havia sido resolvido com esta nova placa. Então tentei brincar com comida e BINGO! desta vez, encontrei algo para fazer.
Gerenciamento manual de energia
Primeiro, aqui está o ticket que me permitiu trocar a fonte de alimentação.
E aqui está o projeto em C permitindo influenciar a alimentação das portas USB.
Um pouco de linha de comando
$ git clone https://github.com/codazoda/hub-ctrl.c.git $ cd hub-ctrl.c $ sudo apt install -y libusb-dev
$ gcc -o hub-ctrl hub-ctrl.c -lusb
Nós estamos bem. o projeto de
Joel Dare
foi compilado e agora estamos prontos para ligar/desligar nossos dispositivos USB.
Diagrama organizacional das portas USB
Jogar com portas
Observe que a porta USB 1 não pode ser desligada individualmente.
Desligar
- Porta USB 2
1sudo ./hub-ctrl -h 0 -P 4 -p 0 - Porta USB 3
1sudo ./hub-ctrl -h 0 -P 5 -p 0 - Porta USB 4
1sudo ./hub-ctrl -h 0 -P 3 -p 0 - A porta Ethernet!
1sudo ./hub-ctrl -h 0 -P 1 -p 0 - Todas as 4 portas USB ao mesmo tempo
1sudo ./hub-ctrl -h 0 -P 2 -p 0
luz
- Porta USB 2
1sudo ./hub-ctrl -h 0 -P 4 -p 1 - Porta USB 3
1sudo ./hub-ctrl -h 0 -P 5 -p 1 - Porta USB 4
1sudo ./hub-ctrl -h 0 -P 3 -p 1 - A porta Ethernet!
1sudo ./hub-ctrl -h 0 -P 1 -p 1 - Todas as 4 portas USB ao mesmo tempo
1sudo ./hub-ctrl -h 0 -P 2 -p 1
Conclusão
Este breve artigo mostra uma solução que há muito procuro. Espero que o trabalho da comunidade aqui transcrito em inglês tenha sido útil para você.