正如我在中所解释的这个问题和回复帖,加载网络摄像头时出现问题,该摄像头是通过内部 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
我尝试设置0
为runtime_suspended_time
which 不起作用,并设置disabled
为level
引发“无效参数”错误,可能是因为内核版本兼容性?
这是我的系统和内核信息:
$ 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_ms
为0
(同时保持control
为auto
)
echo '0' > /sys/bus/usb/devices/1-1.5/power/autosuspend_delay_ms
该文件包含一个整数值,它是内核自动挂起设备之前设备应保持空闲的毫秒数(空闲延迟时间)。默认值为 2000。0 表示一旦设备空闲就自动挂起。负值意味着永远不会自动挂起。您可以向该文件写入一个数字来更改自动挂起空闲延迟时间。