如何在操作系统中恢复设备?一旦我执行了我的命令,这将永远丢失

时间:2013-08-14 21:57:51

标签: linux bash ubuntu linux-kernel usb

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

0 个答案:

没有答案