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