Linux 现在如何将设备恢复到操作系统中?一旦我执行命令,它就永远消失了
我连接了一个USB摄像头,我需要重置它或关闭电源再打开电源,因为它经常在/dev/video0或1中丢失 在尝试了以下代码之后,它似乎对我的目标起到了作用 它正确关闭usb设备的电源,然后正确打开电源 一切似乎都很好,除了现在面临的大问题,从我重新启动系统的那一刻起,现在使用lsusb,我再也看不到我的usb设备了。(当我尝试使用另一台电脑、同一个操作系统或不同的操作系统时,该设备仅在这台电脑上工作正常,因为我运行了下面的代码,所以它完全死掉了) 有人能解释一下为什么会发生这种情况,以及我现在如何在这台机器上取回这个Linux 现在如何将设备恢复到操作系统中?一旦我执行命令,它就永远消失了,linux,bash,ubuntu,linux-kernel,usb,Linux,Bash,Ubuntu,Linux Kernel,Usb,我连接了一个USB摄像头,我需要重置它或关闭电源再打开电源,因为它经常在/dev/video0或1中丢失 在尝试了以下代码之后,它似乎对我的目标起到了作用 它正确关闭usb设备的电源,然后正确打开电源 一切似乎都很好,除了现在面临的大问题,从我重新启动系统的那一刻起,现在使用lsusb,我再也看不到我的usb设备了。(当我尝试使用另一台电脑、同一个操作系统或不同的操作系统时,该设备仅在这台电脑上工作正常,因为我运行了下面的代码,所以它完全死掉了) 有人能解释一下为什么会发生这种情况,以及我现在如
“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
您是否添加了任何udev规则(但忘记删除它们)?…:)另外,请确保您将设备连接到的usb主机(
usbX
)默认授权设备。运行以下命令echo 1>/sys/bus/usb/devices/usbX/authorized_default
,然后断开并重新插入usb-camera。在步骤1:摄像头正在工作,如lsusb中所示步骤2:由于驱动程序不兼容,我需要关闭和打开电源,以便脚本对我起作用步骤3:应用该脚本的那一刻否更多现在lsusb显示步骤4:我已经重新启动了几次,但没有运气相机不显示。对于你的问题,不,我不一定使用udev,echo 1在这个系统中永远消失之前就已经应用了。摄像机本身在其他系统中工作,仅在该系统上工作。任何其他想法?正如您也可以看到的,我的所有文件都已授权\u默认值是1个示例:$cat/sys/bus/usb/devices/*/authorized\u默认值1
插入相机时,您可以共享dmesg
的输出吗?。。。