Ubuntu 16.04 USB auto-suspend问题求助:休眠时USB端口未关闭
解决Ubuntu 16.04休眠时USB端口持续供电的问题
我之前帮不少用户处理过这个问题,结合Ubuntu 16.04的特性,给你几个逐步排查的方案,你可以按顺序试试:
方案1:调整GRUB启动参数开启USB自动挂起
这是最常用的系统层面调整方法,通过内核参数强制USB设备空闲时自动挂起:
- 打开GRUB配置文件:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,在引号内添加usbcore.autosuspend=2(这里的2表示空闲2秒后挂起,你可以根据需求改成0或其他数值),修改后类似:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=2" - 按下
Ctrl+O保存,Ctrl+X退出编辑器 - 更新GRUB配置:
sudo update-grub - 重启系统后测试休眠功能
方案2:创建PM休眠脚本(针对pm-utils)
Ubuntu 16.04仍支持pm-utils工具,我们可以写一个自定义脚本,让系统在休眠前自动关闭USB供电:
- 创建脚本文件:
sudo nano /etc/pm/sleep.d/99_usb_poweroff - 粘贴以下内容:
#!/bin/sh case "$1" in suspend|hibernate) # 对所有USB设备设置自动挂起 for device in /sys/bus/usb/devices/*/power/control; do echo "auto" > "$device" done ;; resume|thaw) # 恢复USB设备供电 for device in /sys/bus/usb/devices/*/power/control; do echo "on" > "$device" done ;; esac - 给脚本添加执行权限:
sudo chmod +x /etc/pm/sleep.d/99_usb_poweroff - 无需重启,直接测试休眠即可
方案3:用systemd服务实现休眠时USB断电
如果你的Ubuntu 16.04用的是默认的systemd init系统,可以创建一个专门的服务来控制USB供电:
- 创建服务文件:
sudo nano /etc/systemd/system/usb-poweroff.service - 写入以下内容:
[Unit] Description=Turn off USB power during suspend Before=suspend.target [Service] Type=oneshot ExecStart=/bin/sh -c 'for device in /sys/bus/usb/devices/*/power/control; do echo "auto" > "$device"; done' [Install] WantedBy=suspend.target - 启用并启动服务:
sudo systemctl enable usb-poweroff.service sudo systemctl start usb-poweroff.service - 重启后测试休眠效果
方案4:检查BIOS硬件设置
如果上面的系统层面设置都没用,大概率是主板BIOS的配置在搞鬼:
- 重启电脑,在开机时按对应的按键(通常是Del、F2或F10)进入BIOS界面
- 找到Power Management(电源管理)相关的选项
- 查找类似“USB Power Delivery in S3”“USB Wake Support”或者“Always On USB”的选项,把它设置为Disabled
- 保存BIOS设置并重启,再测试休眠
如果某个方案无效,直接跳过试下一个就行——不同硬件的兼容性差异很大,总有一个能解决你的问题。
内容的提问来源于stack exchange,提问作者LearnerLearner
相关产品推荐
相关产品推荐

