I have been searching in and out on google and the forum about the issue I am experiencing with Linux, with no luck so far.

This is my system:

System:    Host: wally Kernel: 3.13.0-37-generic x86_64 (64 bit) Desktop: Gnome Distro: Linux Mint 17.1 Rebecca
Machine:   System: Hewlett-Packard (portable) product: HP EliteBook Folio 9470m version: A1029D1102
           Mobo: Hewlett-Packard model: 18DF version: KBC Version 62.17
           Bios: Hewlett-Packard version: 68IBD Ver. F.46 date: 07/16/2013

I have an MMC card reader with a 128Gb card http://www.amazon.co.uk/dp/B00OD712HG/ref=pe_385721_51767431_TE_dp_1

The very same laptop can read and write at a considerable higher speed with Windows though.

Here are more info:

~ cat /sys/kernel/debug/mmc0/ios
clock:      25000000 Hz
actual clock:   25000000 Hz
vdd:      21 (3.3 ~ 3.4 V)
bus mode:   2 (push-pull)
chip select:   0 (don't care)
power mode:   2 (on)
bus width:   2 (4 bits)
timing spec:   0 (legacy)
signal voltage:   0 (3.30 V)

(while writing)
~ cat /proc/interrupts | grep mmc
 18:     416899     327705     150854      74913  IR-IO-APIC-fasteoi   mmc0

dmesg | grep mmc
[    3.374525] mmc0: no vqmmc regulator found
[    3.374530] mmc0: no vmmc regulator found
[    3.374669] mmc0: SDHCI controller on PCI [0000:02:00.0] using DMA
[    3.624502] mmc0: new SDXC card at address 59b4
[    3.626966] mmcblk0: mmc0:59b4       119 GiB
[    3.628030]  mmcblk0: p1
[  141.158242] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)

lsmod | grep mmc
mmc_block              35929  2

According to my understanding, I should have seen something like this this in dmesg

mmc0: new high speed SDHC card at address 0007

which I don't apparently.

Windows Perf: 60Mbps (read and write approx) Linux Perf: 6Mbps (10 times slower). While copying file over the SD card, I can see the CPU goes 60/70% wa status.

Am I doing something wrong? Any help is appreciated.


  • I'm having the same issue. Linux: 10MB/s, Windows: 80-100 MB/s. I'm guessing it has to do with the driver. There is no specific driver available for Linux, for the SD reader. I haven't noticed any CPU activity, though. CPU activity might have to do with the filesystem on the card being read, for example any Fuse filesystem might do that. However my issue is probably due to some high speed driver feature which is not available under Linux, I'm guessing. – Rolf Apr 12 '18 at 20:26

As I mentioned in the comments, I'm having a similar problem. I managed to double the clock manually, putting it in old-school "high-speed" mode.

echo 50000000 | sudo tee  /sys/kernel/debug/mmc0/clock

Now I need to lower the voltage to 1.8V to be able to further push the performance, hopefully up to UHS-1 level.

I have opened another question in Linux stack exchange, I should share updates there: https://unix.stackexchange.com/questions/437545/sd-reader-how-to-force-uhs-i

It's saddening to see no answers. Maybe this is just an edge case with card speed detection.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy