Fixing the Thinkpad W530 memory card reader on Linux
My Thinkpad W530 memory card reader has been reporting errors with my
sd uhs-I card. Worrisome! However, it seems to be a bug in the
Kernel (v. 4.10.6 on Archlinux) that can be “fixed” with a modprobe
.
My memory card is a Transcend uhs-I sd card. I get messages like this
in dmesg
[ 258.834818] blk_update_request: I/O error, dev mmcblk0, sector 8216 [ 258.841858] mmcblk0: error -110 sending status command, retrying [ 258.844222] mmcblk0: error -110 sending status command, aborting ... [ 258.844231] Buffer I/O error on dev mmcblk0p1, logical block 0, async page read
Interestingly ,the card works perfectly with my camera and also when copying photos through the usb interface of the camera.
The memory card reader is made by Ricoh, according to lspci
.
$> lspci | grep SD : 02:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 08)
Fortunately, there’s a couple of bug reports and helpful blog posts that suggest that this is a common problem. To test if it works run
rmmod sdhci_pci rmmod sdhci modprobe sdhci debug_quirks2="0x2" modprobe sdhci_pci
Like in these reports, I am able to solve the problem by adding the
debug_quirks2=0x2
flag to the sdhci
module (I have also tried the
0x10000
). Adding modprobe configuration file seems to do the trick on
my system.
$> cat /etc/modprobe.d/sdhci-pci.conf options sdhci debug_quirks2=0x2