文件/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
一些参考文献的变化已启用默认情况下:
实施: