我可以在启动 Linux 时禁用特定 USB 端口或设备的加载吗?

我可以在启动 Linux 时禁用特定 USB 端口或设备的加载吗?

正如我在中所解释的这个问题回复帖,加载网络摄像头时出现问题,该摄像头是通过内部 USB 端口连接的,因此我正在考虑在启动 Linux 时禁用其加载。

$ cat /sys/bus/usb/devices/1-1.5/product
Integrated_Webcam_HD

这里有一些/sys/bus/usb/devices/1-1.5/power/上述设备的配置,这可能对调查有用:

$ for file in /sys/bus/usb/devices/1-1.5/power/*;do echo "$(basename $file) :" | tr -d '\n'; cat $file; done
active_duration :3404
async :enabled
autosuspend :2
autosuspend_delay_ms :2000
connected_duration :1541108
control :auto
level :auto
persist :1
runtime_active_kids :0
runtime_active_time :3080
runtime_enabled :enabled
runtime_status :suspended
runtime_suspended_time :1537788
runtime_usage :0

我尝试设置0runtime_suspended_timewhich 不起作用,并设置disabledlevel引发“无效参数”错误,可能是因为内核版本兼容性?

这是我的系统和内核信息:

$ uname -a
Linux debian 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

是否有办法在启动操作系统时禁用此 USB 设备/端口的加载?

答案1

您可以禁用此 USB 加载的驱动程序

echo '1-1.5' > /sys/bus/usb/drivers/usb/unbind

并且在需要时您可以手动加载

echo '1-1.5' > /sys/bus/usb/drivers/usb/bind

对于关闭电源,以下方法应该有效:

需要设置autosuspend_delay_ms0

(同时保持controlauto

echo '0' > /sys/bus/usb/devices/1-1.5/power/autosuspend_delay_ms

该文件包含一个整数值,它是内核自动挂起设备之前设备应保持空闲的毫秒数(空闲延迟时间)。默认值为 2000。0 表示一旦设备空闲就自动挂起。负值意味着永远不会自动挂起。您可以向该文件写入一个数字来更改自动挂起空闲延迟时间。

相关内容