我连接了一个 USB 摄像头,我需要重置它或关闭电源并打开电源,因为它经常从 /dev/video0 或 1 丢失。
在尝试了以下代码之后,它似乎对我的目标有效。
它会正确关闭 USB 设备,然后正确打开电源。
一切似乎都很好,除了现在面临的大问题,我重新启动系统的那一刻,现在使用 lsusb 我再也看不到我的 USB 设备了。(当我尝试使用另一台 PC、相同的操作系统或不同的操作系统时,该设备只能在这台 PC 上完美运行,因为我运行了以下代码,所以它完全死机了)
谁能解释它为什么会发生以及我"046d:082d"
现在如何在这台机器上取回这个设备?
#!/bin/bash
usb="046d:082d"
cam=$(lsusb | awk "/$usb/ {print $6}")
echo $cam
if [ ! -z "$cam" -a "$cam" != " " ]; then
for X in /sys/bus/usb/devices/*;
do
a=$(cat "$X/idVendor" 2>/dev/null)
b=$(cat "$X/idProduct" 2>/dev/null)
c="$a:$b"
if [ ! -z "$c" -a "$c" != " " ] && [ "$c" == "$usb" ]; then
d=$(echo $X | sed "s/\/sys\/bus\/usb\/devices\///g")
echo "[FOUND] $d"
# Power down
echo ROOT_PASS | sudo -S sh -c "echo 0 > /sys/bus/usb/devices/$d/authorized"
sleep 2
# Power up
echo ROOT_PASS | sudo -S sh -c "echo 1 > /sys/bus/usb/devices/$d/authorized"
lsusb
break
fi
done;
fi