我在联想 T450s 上运行 LUbuntu 18.04。SD 卡插入插槽后通常会被很好地识别,但有时,莫名其妙地,我插入卡后什么也没有发生。我在 dmesg 中看不到任何消息,没有错误消息,也没有任何迹象表明我做了什么。如果我重新启动,问题似乎就解决了,特别是如果卡已经在插槽中 - 虽然这很不方便,因为我必须将所有内容恢复到我准备从卡中读取文件时的状态。
我不太确定,但我读到过该系统上的 SD 卡读卡器是基于 PCI 的。是否有一些命令可以让我运行来诊断并修复此问题,而无需重新启动?
答案1
根据@mbeyss的建议,我找到了 PCI(lspci)下的读卡器,报告如下:
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
在这个答案我发现了一些 modprobe 命令,它们声称可以重新加载驱动程序。但是当我尝试“modprobe -r”rtsx_pci 模块时,我收到错误:
modprobe: FATAL: Module rtsx_pci is in use.
有趣的是,我以为 modprobe 应该自动帮我找出依赖关系。我发现此主题;lsmod 报告这些模块:
rtsx_pci_ms 20480 0
memstick 16384 1 rtsx_pci_ms
rtsx_pci_sdmmc 24576 0
rtsx_pci 65536 2 rtsx_pci_sdmmc,rtsx_pci_ms
因此我运行了以下命令:
sudo modprobe -r rtsx_pci_sdmmc rtsx_pci_ms memstick rtsx_pci
sudo modprobe rtsx_pci
现在,如果我在插槽中没有 SD 卡的情况下运行此程序,当我随后插入卡时,它不会被识别,dmesg 中不会显示任何消息,等等。为什么卡随后无法被识别是一个悬而未决的问题。但如果卡是当我运行此程序时,卡在插槽中立即被识别,并且弹出窗口询问我想要用该卡做什么。