结论
我想要通过终端在 USB 端口的以下用法之间切换:
- 像普通 USB 端口一样使用
- 仅提供能量进行充电
故事
我最近买了一个类似 Magna Doodle 的东西,它可以将你的绘图保存为 PDF,之后可以通过 USB 移动到你的电脑上。现在的问题是,当你插入电源时,你无法保存任何东西。
因为这是唯一的充电方式,所以我很烦找不到软件解决方案,而且出于懒惰,我想让它一直插着,只在需要时才切换到与电脑的连接。
我注意到,当它插入电源并且电脑关闭或暂停时,它正在充电并且可用。所以我想有一种方法可以做到这一点。
技术信息
- 电脑:ThinkPad X201
- Linux 内核:3.14.5-1-ARCH
- “麦格纳涂鸦”:布吉板同步
答案1
尝试:有问题的 USB 端口echo 0 > /sys/bus/usb/devices/${usb}/authorized
在哪里;使用以获取列表。所以... 0=禁用,1=启用${usb}
lsusb -t
我实际上用它来切断外部硬盘的电源,尽管据我所知,这实际上并没有切断电源,而是硬盘的电源管理功能将其关闭,因为它不再认为它已连接。切断 USB 端口的电源似乎是不可能的;似乎唯一能做到这一点的方法就是移除整个 USB 模块(虽然我还没有真正检查过电压或任何东西 :) )。
答案2
Darth Android 的评论很有帮助。获得一个可以做到这一点的有源 USB 集线器确实要容易得多。
从 Linux 的角度来看,USB 支持通常编译到内核中,而不是作为模块加载。这意味着 USB 支持无法在软件中有效禁用,即使通过操作驱动程序模块(就像对网卡等所做的那样)。
根据设备固件和设备在操作系统中显示的方式,可以调整驱动程序以发送 USB 断开命令,该命令将告诉设备停止接受进一步的 USB 命令并进入仅充电模式。然而,这并不容易,这种方法最好留给熟悉设备驱动程序的熟练程序员。