
Eu tenho uma placa de desenvolvimento baseada em Linux na qual o driver do controlador USB DWC3 está presente. Implementei Link Power Management (estado L2) no driver USB. Ubuntu é o host ao qual minha placa de desenvolvimento está conectada via USB.
Preciso realizar testes de regressão de suspensão e retomada de USB usando script de shell. Eu consegui escrever uma parte dele,
**usb suspend-resume.sh**
path=1-10
echo auto > /sys/bus/usb/drivers/usb/$path/power/control
echo 10 > /sys/bus/usb/drivers/usb/$path/power/autosuspend
sleep 10
iteration="10"
count="0"
while [ $count -lt $iteration ]
do
rs=$(cat /sys/bus/usb/drivers/usb/$path/power/runtime_status)
if [ "$rs" = "suspended" ]
then
echo usb is suspended
sleep 5
count=$((count+1))
fi
done
Dispositivos no Ubuntu 14.04: /dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3
O script acima poderia executar apenas suspensão (a cada 10s), mas não consigo continuar como retomar o dispositivo.
Responder1
Para retomar o dispositivo suspenso
echo on > /sys/bus/usb/devices/$path/power/control
Isto deve ativar o dispositivo suspenso. Você pode verificar o estado do dispositivo usando
cat /sys/bus/usb/devices/$path/power/runtime_status