在 USB 设备 sysfs 目录中找不到“power/persist”文件

在 USB 设备 sysfs 目录中找不到“power/persist”文件

文件/usr/share/doc/linux-doc/usb/persist.txt.gz提到可以通过写入该设备目录中的1文件来为给定的 USB 设备启用 USB 持久功能。如果我理解正确的话,这是为了允许驱动器上的卷安装在挂起期间断电时持续存在。persist/sys/bus/usb/devices/$device/power

然而,我发现我想要启用此功能的设备(USB 硬盘驱动器)在其相应的目录中没有这样的文件,并且创建它的尝试被拒绝。

是否可能需要加载内核模块才能使其工作?我需要构建自定义内核吗?我运行的是 ubuntu 10.10。

答案1

正如答案末尾所指出的,这可能已经开始了。 (也是在发布 Q 时。)

另请注意,交叉帖子由于没有答案而关闭 - 因此最适合在此处发布。我想其他人也可以使用这些信息。


您链接的文档(强调我的):

[…]
请注意,“USB 持久”功能仅适用于启用该功能的设备。您可以通过执行以下操作来启用该功能(以 root 身份):

echo 1 >/sys/bus/usb/devices/.../power/persist

其中“...”应填写设备的 ID。通过写入 0 而不是 1 来禁用该功能。对于集线器,该功能会自动永久启用,并且电源/持久文件 甚至不存在,因此您只需担心为真正重要的设备设置它。

换句话说:(看起来)您正在尝试为集线器设置它,这两者都是多余的 - 因为它总是被设置,并且由于文件不存在而不可能。

要查看哪些路径实际上有persist文件,请执行以下操作:

$ ls -l /sys/bus/usb/devices/*/power/persist

要检查状态,请执行以下操作:

$ tail /sys/bus/usb/devices/*/power/persist

如果您用于lsusb识别设备,则正确的路径是

/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
  • <BUS>来自lsusb
  • <DEVPATH>Device您可以通过以下方式进行匹配lsusb

    $ tail <BUS>-*/devnum
    

或检查dmesg等,例如:

$ dmesg | grep -iA3 "new usb"

您还可以通过以下方式验证:

$ udevadm info -q all -p /sys/bus/usb/devices/<BUS>-<DEVPATH>

该策略已被内核 2.6.26-rc5persist更改为默认值。on

一些参考文献的变化已启用默认情况下:

实施:

相关内容