正在关闭单个usb设备。。。再一次

正在关闭单个usb设备。。。再一次,usb,debian,Usb,Debian,我知道这个话题已经讨论过很多次了,但是没有一个答案对我有帮助。记录在案,我在运行Debian 交易内容是:我买了一个usb供电的led灯,它非常简单,甚至没有开关(它可以工作,而且总是开着)。我希望能够通过命令行打开/关闭它。以下是我尝试过的: echo on > /sys/bus/usb/devices/usb1/power/level # turn on echo suspend > /sys/bus/usb/devices/usb1/power/le

我知道这个话题已经讨论过很多次了,但是没有一个答案对我有帮助。记录在案,我在运行Debian

交易内容是:我买了一个usb供电的led灯,它非常简单,甚至没有开关(它可以工作,而且总是开着)。我希望能够通过命令行打开/关闭它。以下是我尝试过的:

    echo on > /sys/bus/usb/devices/usb1/power/level       # turn on
    echo suspend > /sys/bus/usb/devices/usb1/power/level  # turn off
这是我在许多论坛上发现的。“开启”起作用,但“暂停”会产生效果

每一个美国国民银行。我也试过了

    echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
这不会给出一个错误,但也不会做任何事情(同样,对于每一个usbN)

尝试

    echo "usb1" > /sys/bus/usb/drivers/usb/unbind
仅适用于更多“智能”设备,如键盘、鼠标或usb wifi卡。我的意思是,只有那些设备是关闭的,其他美国国防军没有给出错误,但灯从不熄灭

/sys/bus/usb/devices/

    1-0:1.0 1-1:1.0 1-2:1.0 1-2:1.2 2-0:1.0 4-0:1.0 4-1:1.0 6-0:1.0 8-0:1.0 8-2:1.0 usb2 usb4 usb6 usb8
    1-1 1-2 1-2:1.1 1-2:1.3 3-0:1.0 4-1 5-0:1.0 7-0:1.0 8-2 usb1 usb3 usb5 usb7
我试着去做

    echo device_name > /sys/bus/usb/drivers/usb/unbind
对于每一种,但只有usbN和N-M反应,形式为N-M:x.y的产生

    tee: /sys/bus/usb/drivers/usb/bind: No such device
(例如,我试着输入“1-0:1.0”、“1-0\:1.0”和“1-0\:1.0”,都给出了相同的结果)

最后一件事,执行后会显示什么

    lsusb -t
当我插上或拔下灯时不会改变


有什么想法吗?

关闭设备ID 2-1:

echo'2-1'| sudo T恤/sys/bus/usb/drivers/usb/unbind

重新打开设备ID 2-1:

echo'2-1'| sudo-tee/sys/bus/usb/drivers/usb/bind

在我的例子中,使用设备ID 2-1控制usb记忆棒的电源,并因此控制灯

  • 提示:如果他们在Debian中为您工作,请为他们创建一个别名,使您以后的生活更轻松
希望这有帮助,
Su

如果您只想在USB设备进入断开状态时重置它以修复它,那么使用绑定/取消绑定usbfs特殊文件可能会有点麻烦(因为设备ID可能会更改,如果您不想重新绑定其他设备,那么要准确识别它们就有点困难)。在这种情况下,我发现使用
lsusb
usb\u modeswitch
提供的供应商和产品标识要容易得多。例如,如果我使用以下方法识别我的无线适配器:

$ lsusb
Bus 001 Device 042: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 035: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ sudo usb_modeswitch -v 0x7392 -p 0x7811 --reset-usb
然后,我可以使用以下方法重置无线适配器:

$ lsusb
Bus 001 Device 042: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 035: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ sudo usb_modeswitch -v 0x7392 -p 0x7811 --reset-usb

如果有多个设备连接了相同的供应商和产品ID,则usb_modeswitch提供总线和设备编号标志。对于上面的无线适配器示例,我将在标志中添加
-b1-g42

试试这段代码,它对我有效(仅适用于根目录)

对于bind,请再次执行此操作

    String[] cmdline = { "su", "-c", "echo '1-1' >/sys/bus/usb/drivers/usb/bind" };
try {
    Runtime.getRuntime().exec(cmdline);
} catch (IOException e) {
    Log.e("MainActivity","Failed"+e);
}

lamp标签的使用非常好。非常好,但是如果我想以这种方式永久禁用设备/端口,我应该在启动序列中的什么位置放置这个命令?例如,我想永久禁用内置网络摄像头,并始终让插入网络摄像头的用户成为/dev/video0。这是我在Ubuntu(12.04 LTS)上重启挂起后未重新连接的USB无线适配器的唯一方法。谢谢usb_modeswitch方法对有问题的usb加密狗调制解调器不起作用-它通常显示为/dev/ttyUSB0、1和2,但在usb_modeswitch重置后,它返回为/dev/ttyUSB1、2和3,这打破了/etc/ppp/peers/中的硬编码关联。我发现我需要在解除绑定和绑定之间暂停约10-15秒,以避免出现这种情况。