0

我连接了一个 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
4

0 回答 0