Cómo reanudar el dispositivo USB después de una suspensión selectiva de la configuración en el host de Ubuntu

Cómo reanudar el dispositivo USB después de una suspensión selectiva de la configuración en el host de Ubuntu

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

información relacionada