使用 udev 设置电源/控制

使用 udev 设置电源/控制

如果您能帮助我禁用笔记本电脑上 Ubuntu 16.04 中的 USB 设备自动挂起功能,我将不胜感激。

USB 是外部音频设备,为了保持 USB 设备始终处于开启状态,我通常会这样做:

echo "on" | sudo tee /sys/bus/usb/devices/1-1/power/control

看来,永久的解决方法是使用 udev 设置 USB 设备电源/控制属性。我制定了一条新规则,并指出它通过写入文件来工作:

ACTION=="add", SUBSYSTEM=="usb", RUN+="/bin/sh -c '/bin/echo auto > /home/manar/textfile'" ,ATTR{idProduct}=="0xAAAA", ATTR{idVendor}=="0xBBBB"

然后我重写了下面的规则来设置权力/控制属性:

ACTION=="add", SUBSYSTEM=="usb" ,ATTR{idProduct}=="0xAAAA", ATTR{idVendor}=="0xBBBB", TEST=="power/control" ATTR{power/control}="on"

不幸的是,该规则似乎没有发挥作用,因为 /sys/bus/usb/devices/1-1/power/control 中的值是自动,而设备在空闲时实际上会关闭。

有人能告诉我我错过了什么吗?

非常感谢。

編輯:

udev 测试在设置相应属性时指示权限问题,我现在假设 udev 的使用在 arch 和 Ubuntu 中有很大不同。

最后我找到了一个解决方法,让这个家伙的 USB 一直处于打开状态 https://askubuntu.com/a/748864/310166

答案1

在 openSUSE 上,我使用以下 udev 规则(/etc/udev/rules.d/50-usb-power-always-on.rules):

ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend" ATTR{power/autosuspend}="0"
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend_delay_ms" ATTR{power/autosuspend_delay_ms}="0"

然后运行:

udevadm control --reload
systemctl daemon-reload

相关内容