dmesg 中的错误 - 测试 WP 失败,假设已启用写入

mes*_*cam 12 disk cache dmesg

我在驱动器缓存方面遇到了一些问题,我不知道是什么导致了这些问题。这是我的 dmesg:

[11690.011238] sd 6:0:0:0: [sdb] Asking for cache data failed
[11690.011248] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[11741.720851] sd 6:0:0:0: [sdb] Test WP failed, assume Write Enabled
[11741.722965] sd 6:0:0:0: [sdb] Asking for cache data failed
[11741.722975] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[11793.433011] sd 6:0:0:0: [sdb] Test WP failed, assume Write Enabled
[11793.435347] sd 6:0:0:0: [sdb] Asking for cache data failed
[11793.435356] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[11845.140846] sd 6:0:0:0: [sdb] Test WP failed, assume Write Enabled
[11845.143098] sd 6:0:0:0: [sdb] Asking for cache data failed
[11845.143102] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[11896.856723] sd 6:0:0:0: [sdb] Test WP failed, assume Write Enabled
Run Code Online (Sandbox Code Playgroud)

有数百条这样的线路。自从我从我的 pendrive 安装了 Ubuntu 12.04 64bit beta2 以来,它就发生了。现在我在 /dev/sdb 没有任何东西。我不知道这些错误是否使我的系统响应速度变慢,但我认为 dmesg 不应该像这样。

我的内核版本:3.2.0-24-generic.

你知道如何解决它吗?

先感谢您。

N8t*_*ron 9

我在官方 12.04 LTS 版本上遇到了同样的问题,我也认为它导致系统响应速度变慢。根据一些消息来源,它是无害的。(我显然只能发布 2 个链接)

以下认为这是板载读卡器的错误输出:

https://bbs.archlinux.org/viewtopic.php?pid=1059099

已确认是上游问题

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/987993

运行 lsusb 并找到有问题的设备

内森@火腿骨:~$ lsusb 

总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 002 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 003 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 004 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 005 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 006 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 007 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 008 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 001 设备 002:ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 多卡读卡器

就我而言,它是 Realtek 多卡读卡器,可以快速检查

$ dmesg | 瑞昱
[4.716068]usbcore:注册新的接口驱动程序ums-realtek
$ lsmod | 瑞昱
ums_realtek 17920 0 

揭示模块 ums-realtek

$sudo rmmod ums_realtek

以可逆的方式为我解决问题。那是

$sudo modprobe ums_realtek

再次启用读卡器。我没有测试它是否有效,因为我从未使用过它。

如果这不起作用,还有其他一些方法可以通过在 /sys/ 目录中解绑 USB 设备来禁用它们。


小智 6

我发现使用选项 ss_en=0 加载驱动程序有效。正在做

echo "ums-realtek ss_en=0" |sudo tee -a /etc/modules
Run Code Online (Sandbox Code Playgroud)

使更改永久化。

进一步解释:

在尝试发现此消息发生的原因时,我查看了所涉及的两个模块 ums-realtek 和 usb-storage 的选项。我觉得每次加载和卸载ums-realtek模块不是一个合适的解决方案,因为我经常使用读卡器。

检查模块选项:

# modinfo ums-realtek 
  parm: auto_delink_en  enable auto delink (int)
  parm: ss_en           enable selective suspend (int)
  parm: ss_delay        seconds to delay before entering selective suspend (int)
Run Code Online (Sandbox Code Playgroud)

研究这些选项的用途并没有产生任何结果,我也不想通过电子邮件打扰作者。由于此驱动程序也使用 USB 存储,我觉得默认情况下可能会启用“暂停”选项(也许是为了节省笔记本电脑的电池),并且消息是唤醒查询暂停序列的结果。由于我不在乎设备是否一直处于开机状态,因此我尝试将此选项设置为 0(关闭)并且可以正常工作。