
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