小编Pet*_*ter的帖子

如何在内核 3.7.10 或更高版本上禁用 USB 自动挂起?

我已经将我的 HTPC 从内核3.7.10更新到3.10.7,似乎CONFIG_USB_SUSPEND现在从内核选项中消失并包含在 PM 中。

我面临的主要问题是我有一个外置硬盘,当挂起和唤醒 HTPC 时,系统无法使用它。HDD 唤醒(您可以听到它再次旋转),但是当您尝试访问挂载点时,您会收到以下错误:

ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
Run Code Online (Sandbox Code Playgroud)

在 dmesg 上:

[  253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading   directory block (ino 2, block 0)
Run Code Online (Sandbox Code Playgroud)

在以前的内核中,设置 CONFIG_USB_SUSPEND=N 可以解决这个问题,因为 HDD 会自行处理其休眠状态,并且挂载点始终是可访问的。当 HDD 处于睡眠状态并且 HTPC 需要 HDD 安装点的某些内容时,HDD 本身会唤醒并正常运行。

现在我尝试了以下但没有成功:

  1. 手动将/sys/bus/usb/devices/usb*/power/control更改为"on"而不是"auto"
  2. 手动将/sys/bus/usb/devices/usb*/power/autosuspend 更改"-1"而不是"0"

但是当再次唤醒HTPC时,挂载点再次无法访问。作为解决方法,我可以卸载并重新安装挂载点,它可以再次正常工作,但我确信应该有一种方法可以避免让操作系统处理 USB 自动挂起。

知道如何在内核 3.7.10 或更高版本上禁用 USB 自动挂起吗?

kernel usb power-management suspend

47
推荐指数
2
解决办法
11万
查看次数

标签 统计

kernel ×1

power-management ×1

suspend ×1

usb ×1