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

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

我遇到了一些驱动器缓存问题,但我不知道是什么原因导致这些问题。这是我的 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

有数百行这样的信息。自从我从 U 盘安装了 Ubuntu 12.04 64bit beta2 后,这种情况就一直存在。现在 /dev/sdb 上什么都没有了。我不知道这些错误是否会降低我的系统响应速度,但我认为 dmesg 不应该像这样。

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

您知道如何解决它吗?

先感谢您。

答案1

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

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

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

已确认这是上游问题

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

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

nathan@Ham-Bone:~$ 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| grep realtek
[4.716068]usbcore:注册的新接口驱动程序ums realtek
$ lsmod | grep realtek
ums_realtek 17920 0

揭示了 ums-realtek 模块

$sudo rmmod ums_realtek

以可逆的方式修复了我的问题。也就是说

$sudo modprobe ums_realtek

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

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

答案2

我发现使用选项 ss_en=0 加载驱动程序是可行的。

echo "ums-realtek ss_en=0" |sudo tee -a /etc/modules

使更改永久生效。

进一步解释:

在尝试找出出现此消息的原因时,我查看了所涉及的两个模块 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)

对这些选项用途的研究没有结果,我也不想通过电子邮件打扰作者。由于此驱动程序也使用 usb 存储,我认为“暂停”选项可能默认启用(可能是为了节省笔记本电脑的电池),并且消息是唤醒查询暂停序列的结果。由于我不关心设备是否一直开机,我尝试将此选项设置为 0(关闭),并且成功了。

答案3

卸载驱动程序对我来说很有用!我从不使用读卡器,所以这是一个很好的选择,否则我会设置“ss_en = 0”选项。

答案4

我在安装 ubuntu 12.04 服务器后遇到了同样的问题。我安装了 gedit 来更改日志级别(不要嘲笑我使用 gedit)。安装 gedit 时,它还安装了许多来自 ubuntu.com 的存档包。安装后,我打开显示器,不碰电脑,看看是否再次发生这种情况,结果没有。这似乎为我解决了这个问题。我不是说去安装 gedit,但也许有办法安装 gedit 附带的存档包。希望这能有所帮助。

相关内容