Ubuntu 호스트에서 구성을 선택적으로 일시 중단한 후 USB 장치를 다시 시작하는 방법

Ubuntu 호스트에서 구성을 선택적으로 일시 중단한 후 USB 장치를 다시 시작하는 방법

DWC3 USB 컨트롤러 드라이버가 있는 Linux 기반 개발 보드가 있습니다. USB 드라이버에 링크 전원 관리(L2 상태)를 구현했습니다. Ubuntu는 내 개발 보드가 USB를 통해 연결되는 호스트입니다.

쉘 스크립트를 사용하여 USB 일시중단-재개에 대한 회귀 테스트를 수행해야 합니다. 그 중 일부를 쓸 수 있게 되었어요.

**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

Ubuntu 14.04의 장치: /dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3

위 스크립트는 일시 중지(10초마다)만 수행할 수 있지만 장치를 다시 시작하는 방법을 진행할 수 없습니다.

답변1

일시 중지된 장치를 다시 시작하려면

echo on > /sys/bus/usb/devices/$path/power/control

그러면 정지된 장치가 활성화됩니다. 다음을 사용하여 장치의 상태를 확인할 수 있습니다.

cat /sys/bus/usb/devices/$path/power/runtime_status

관련 정보