![我可以在启动 Linux 时禁用特定 USB 端口或设备的加载吗?](https://linux22.com/image/180412/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%90%AF%E5%8A%A8%20Linux%20%E6%97%B6%E7%A6%81%E7%94%A8%E7%89%B9%E5%AE%9A%20USB%20%E7%AB%AF%E5%8F%A3%E6%88%96%E8%AE%BE%E5%A4%87%E7%9A%84%E5%8A%A0%E8%BD%BD%E5%90%97%EF%BC%9F.png)
正如我在中所解释的这个问题和回复帖,加载网络摄像头时出现问题,该摄像头是通过内部 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 表示一旦设备空闲就自动挂起。负值意味着永远不会自动挂起。您可以向该文件写入一个数字来更改自动挂起空闲延迟时间。