Page 1 of 1

Help: sd card reader much slower in Linux on T430

Posted: Wed May 20, 2020 12:58 pm
by tulgd
The sd card reader on my Thinkpad T430 gives read speeds of 18-20 MBps under Linux (Manjaro/Mint/Pop OS) but 33-40 MBps on Windows 7.

The write speed on Windows is 17-20 MBps but on all Linux OS's copying a file to the sd card jumps instantaneously to ~90% and stays there until it says "finished" without any speed readings.

I have tried three different UHS 1 32gb cards and they all perform the same.

What could be behind this? How to get full speed out of the reader on Linux?

Re: Help: sd card reader much slower in Linux on T430

Posted: Wed May 20, 2020 3:44 pm
by dr_st
It's a Ricoh card reader, right? There is something strange about that generation and Linux. Somehow, when Linux boots, the device ID of the controller changes from E823 to E822 (E822 does not support UHS-I, so it's limited to ~20Mbps).

This has been reported here, and also in the link therein, but I don't recall a solution was ever found.

Re: Help: sd card reader much slower in Linux on T430

Posted: Wed May 20, 2020 4:02 pm
by tulgd
Ricoh indeed. Thank you for the links! I will take a look.

Re: Help: sd card reader much slower in Linux on T430

Posted: Wed May 20, 2020 4:27 pm
by tulgd
A quick search on Google resulted in this blog post suggesting a workaround: https://pank.eu/blog/w530-sdcard-reader-fix.html
I will test it over the weekend

Re: Help: sd card reader much slower in Linux on T430

Posted: Wed May 20, 2020 10:23 pm
by axur-delmeria
dr_st wrote:
Wed May 20, 2020 3:44 pm
It's a Ricoh card reader, right? There is something strange about that generation and Linux. Somehow, when Linux boots, the device ID of the controller changes from E823 to E822 (E822 does not support UHS-I, so it's limited to ~20Mbps).
This sounds like something in the BIOS's ACPI tables, most likely the DSDT (Differentiated System Description Table). IIRC the DSDT can contain OS-specific profiles/configurations, which can explain why the Ricoh's PCI ID changes to E822 when booting to Linux.