我的笔记本电脑有一个非常小的内置 SSD,所以我将 /home 移到了我的 SDXC 卡上。我已按如下方式设置了 fstab。当我第一次启动时,它工作得很好,但随后它就丢失了挂载,无法恢复。
我尝试了网上的各种方法。我甚至关闭了 USB 自动挂载,以为是它造成了干扰,但还是没用。
我想知道它是否会随着时间的推移禁用 SDXC 通信所用的 USB 集线器。关于如何告诉 Ubuntu 18.04 永远不要关闭 USB 或断开外部驱动器,有什么好的建议吗?
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p6 during installation
UUID=e7980c7d-441b-4814-a0cc-74ac44139f12 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=E018-1B48 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
UUID=62f48898-00de-40c1-842d-6623583219c4 /home ext4 errors=remount-ro 0 2
更新:尝试过这个,
https://hamwaves.com/usb.autosuspend/en/
我在第一步就停滞了……这是卡的 lsusb 条目
Bus 002 Device 010: ID 045e:090c Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x045e Microsoft Corp.
idProduct 0x090c
bcdDevice 29.10
iManufacturer 1 Microsoft
iProduct 2 SD Card
iSerial 3 201408282030
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 44
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 CARD READER
:
这是我的 usb/设备目录
1-0:1.0 1-1.4:1.0 1-4.1:1.0 1-6:1.0 2-1:1.0 2-1.3:1.0 2-4.1:1.0 usb2
1-1 1-4 1-4.3 1-6:1.1 2-1.2 2-4 2-4.2
1-1:1.0 1-4.1 1-4.3:1.0 2-0:1.0 2-1.2:1.0 2-4.1 2-4.2:1.0
1-1.4 1-4:1.0 1-6 2-1 2-1.3 2-4:1.0 usb1
我做了递归 grep,产品 ID 为 0x090c,但它不在任何这些文件中?
第二次更新:grep -r 090c(无 0x)找到了该文件,然后这些说明似乎解决了我的问题!
3rD 更新:已完成一半。当我断开电源时它不会掉线,但在使用过程中它似乎仍会随机掉线 :/
第四次更新:删除 tlp 允许此解决方案可靠地将控制参数设置为开启....但它仍然会降低音量
答案1
好的。
首先确保您没有运行 TLP 或任何其他电源管理插件。虽然理论上有办法让 TLP 不影响 USB 设备,但我无法让它工作。
那么,这个解决方案有效: https://hamwaves.com/usb.autosuspend/en/
请注意,您的设备控制文件可能不在本文所述的位置。您不需要它来使用永久解决方案,但您需要它来测试它是否有效。在我的例子中,它实际上位于 /sys/bus/usb 文件树中的 3 个不同位置(/sys/bus/usb/devices/usb2/2-1/2-1.3/power/control、/sys/bus/usb/devices/2-1/2-1.3/power/control 和 /sys/bus/usb/devices/2-1.3/power/control)。
我通过递归查找 idProduct 找到了它们没有前导 0x (例如 090c 不是 0x090c)。命令是在 /sys/bus/usb 目录中执行的“grep -r 090c *”。
我必须将 power/control 设置为 on,并将 power/autosuspend 和 power/autosuspend_delay_ms 设置为 -1。我必须对 SD 卡设备和 USB 集线器执行此操作。
我的规则文件如下所示:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090c", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090c", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090c", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="091a", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="091a", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="091a", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090b", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090b", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="090b", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
最后,我不得不重新打开自动挂载(我已经将其关闭),因为我的机器似乎仍然偶尔会断开连接,但使用自动挂载后它似乎马上就恢复了。