16.04 无法识别 SD 卡 - 需要具体帮助

16.04 无法识别 SD 卡 - 需要具体帮助

我已经研究这个问题一段时间了,并且已经用尽了基于其他线程的解决方法。我无法让 Ubuntu 安装/识别任何 SD 卡。

到目前为止我已经尝试过

  1. sudo apt-get install --reinstall udisks2
  2. sudo apt-get install exfat-utils exfat-fuse

这些什么都没做。这台机器是 ThinkPad L560 20f2。我不知道用lsusb或来寻找什么lspci。在 有一个叫做“SD 主机控制器”的东西。这个问题在论坛上出现得够多了……似乎是驱动程序的一个主要问题。

输出lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 04ca:7058 Lite-On Technology Corp. 
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub`

输出lspci

00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
00:08.0 System peripheral: Intel Corporation Sky Lake Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d13 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-V (rev 21)
02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
05:00.0 SD Host controller: O2 Micro, Inc. Device 8621 (rev 01)

lspci -v

05:00.0 SD Host controller: O2 Micro, Inc. Device 8621 (rev 01) (prog-if 01)
    Subsystem: Lenovo Device 222c
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at e2401000 (32-bit, non-prefetchable) [size=4K]
    Memory at e2400000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: <access denied>
    Kernel driver in use: sdhci-pci
    Kernel modules: sdhci_pci

并且的输出sudo parted -llsblk没有提供与此问题相关的任何信息。

* 更新 *一个有趣的额外发展:我尝试了各种卡,但并非所有卡都出现。据我回忆,所有卡都大于 16 GB。我放入了一张 16 GB 的卡,它随机安装。有一个关于

设备 /dev/mmcblk0p1 已安装在 `/media/edeangel/78BD-6600'

弹出了,但仍然安装得很好。然后我卸载了它,弹出它,并尝试了 32 GB 的卡。没有。再次尝试了同样的 16 GB 卡。没有。移除并再次尝试了同样的 16 GB 卡。它安装成功了!想不通。不过似乎与卡的大小有关。如果我能找到一张 8GB 的​​卡,我也会试试。

答案1

今天当我无法使用我一直在使用的 USB 适配器时,我再次回顾了这个问题,然后我看到了这篇文章:https://pank.eu/blog/w530-sdcard-reader-fix.html

简而言之,sdhci 模块需要特定的调试设置标志才能工作……显然这会影响很多 ThinkPad,包括我的 L560 和 W530。要查看这是否可行,请使用lspci -v,如果您看到 sdhci-pci 是正在使用的内核驱动程序,请继续尝试。

使用 SU:

rmmod sdhci_pci
rmmod sdhci
modprobe sdhci debug_quirks2="0x2"
modprobe sdhci_pci

如果您在插槽中插入 SD 卡的情况下执行此操作,您将立即看到检测该卡的弹出窗口并询问您如何处理它。

对于自动化的长期解决方案,建议制作一个包含 /etc/modprobe.d/sdhci-pci.conf 以下行的conf 文件

选项 sdhci debug_quirks2=0x2

这尚未得到验证——我重新启动后它仍然无法工作,但我不确定我是否获得了所有的权限和其他内容,或者它是否在正确的位置。

这就是为什么我孩子学校里 85% 的孩子都在使用 Mac 的原因!如果我无法在自己的 PC 上修复此类问题,那么高级用户的孩子(Linux 用户的未来)在将笔记本电脑带到摄影课时修复此问题的机会有多大,很抱歉,他们无法通过“云”将照片传输到 PC 上,而无需浪费大量时间(以及电池/WiFi)。

答案2

在运行双启动 Manjaro XFCE 和 Ubuntu Gnome 20.04 的联想台式机(Lenovo H50-55)上也出现了类似的问题 - 两个发行版都出现了 i/o 错误 - 当我在每个发行版的终端中输入时:

cat /etc/modprobe.d/sdhci-pci.conf
options sdhci debug_quirks2=0x2

thunar 重​​启后问题解决。SD 卡安装正常,RAW 照片可用,Rapid Photo Downloader 抓取这些照片毫无问题。

相关内容