
Tengo una placa de desarrollo basada en Linux en la que está presente el controlador del controlador USB DWC3. He implementado Link Power Management (estado L2) en el controlador USB. Ubuntu es el host al que está conectada mi placa de desarrollo mediante USB.
Necesito realizar pruebas de regresión de suspensión-reanudación de USB mediante un script de shell. He logrado escribir una parte de él,
**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 en Ubuntu 14.04: /dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3
La secuencia de comandos anterior solo puede realizar una suspensión (cada 10 segundos) pero no puedo continuar con la reanudación del dispositivo.
Respuesta1
Para reanudar el dispositivo suspendido
echo on > /sys/bus/usb/devices/$path/power/control
Esto debería activar el dispositivo suspendido. Puede verificar el estado del dispositivo usando
cat /sys/bus/usb/devices/$path/power/runtime_status