Com o lsusb identificar a porta em questão. No meu exemplo eu conectei um pendrive em um hub usb na BBB.root@beaglebone:~# lsusb -t/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M|__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480MNeste caso temos o bus 1, e o hub conectado na porta 1 desse bus e o pendrivre na porta 1 do hub.Para desligar basta realizar o comando:root@beaglebone:~# echo '1-1.1' > /sys/bus/usb/drivers/usb/unbindouroot@beaglebone:~# echo 0 > /sys/bus/usb/devices/1-1.1/authorizedPara ligar basta realizar o comando:root@beaglebone:~# echo '1-1.1' > /sys/bus/usb/drivers/usb/bindouroot@beaglebone:~# echo 1 > /sys/bus/usb/devices/1-1.1/authorized
--
Você recebeu essa mensagem porque está inscrito no grupo quot;sis_embarcados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sis_embarcado...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para sis_emb...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/sis_embarcados.
Para mais opções, acesse https://groups.google.com/d/optout.
Olá Diego,
Neste caso, você estaria ligando e desligando o módulo do dispositivo, correto?
root@beaglebone:~# lsusb -t/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
#desligar:root@beaglebone:~# echo 0 > /sys/bus/usb/devices/1-1/authorized
ouroot@beaglebone:~# echo '1-1' > /sys/bus/usb/drivers/usb/unbind
#ligar:root@beaglebone:~# echo 1 > /sys/bus/usb/devices/1-1/authorized
ouroot@beaglebone:~# echo '1-1' > /sys/bus/usb/drivers/usb/bind
Então o que eu preciso é cortar a alimentação VCC da USB "temporariamente", engraçado que eu fiz dessa maneira como o Diego informou com o unbind em cima da relação bus/porta e tentei até com usb1 o device "perde" relação com o kernel não há comunicação porém eu coloquei uma pendrive e também um mouse USB e um multímetro no VCC e GND e não consegui dar esse power off na USB.
Hum, interessante não me atentei a isso, vou verificar.Obrigado Diego.
--
Cleiton muito obrigado por compartilhar a solução! Parabéns pelo avanço.
Abs
Caio Pereira
Pessoal apenas repassando os resultados, poderia ter passado bem antes mas queria ter certeza ;)
O script abaixo resolve este problema:
#!/bin/bash
PATH=/usr/sbin:/usr/bin:/sbin:/bin
devmem2 0x47401c60 b 0x00
sleep 1
echo "usb1" > /sys/bus/usb/drivers/usb/unbind
sleep 20
echo "usb1" > /sys/bus/usb/drivers/usb/bind
sleep 1
devmem2 0x47401c60 b 0x01
É claro que tive algumas horas de debug usando winedbg, mas funcionou em uma maquina virtual e no meu notebook, espero que ajude caso alguém precise rodar no Linux como eu.
Abraço pessoal e muito obrigado a todos que me ajudaram com as dicas.
Olá Cleiton,
#!/bin/bash
PATH=/usr/sbin:/usr/bin:/sbin:/bin
devmem2 0x47401c60 b 0x00Nessa linha você está mudando diretamente o status do pino que é ligado ao PMIC?
sleep 1
echo "usb1" > /sys/bus/usb/drivers/usb/unbind
Se você desligou a alimentação pelo PMIC é necessário essa linha?
Então, já que estava com a mão na massa resolvi brincar com isso, com 32bits foi de boa, com 64bits a sacada é o WINEARCH e maravilha foi tambem, qualquer problema reporta ae. :)
Muito obrigado por compartilhar.