我遇到了一些驱动器缓存问题,但我不知道是什么原因导致这些问题。这是我的 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 附带的存档包。希望这能有所帮助。