Find the answer to your Linux question:
Results 1 to 4 of 4
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    Exclamation New kernels incompatible with some SDCards


    Since some time, linux kernel is not compatible with some slower-initiating (not to be confused with slow transfer) SD cards.

    I am talking about this error:
    Code:
    [    6.252037] mmc0: SDHCI controller on PCI [0000:15:00.2] using DMA
    [  112.789058] mmc0: error -110 whilst initialising SD card
    This IS kernel version dependant and exists in all post 3.x kernels (and maybe some earlier, too).

    It causes the SDcard to mount only one out of each 7 times.

    This can be fix if the timeout time in kernel settings is increased. Unfortunately, it has to be done at developer level as self-compiling the kernel does not have this option.

    Here are some references:
    With more debugging, it turns out the “mmc_read_switch” function in the “drivers/mmc/core/sd.c” file was returning an error -145 with that SD card. Not sure why, either the CARD doesn’t support it? I can’t even find that error code anywhere so not really sure what the root reason is.
    BUT when just doing a “return 0;” there, the SD card ends up mounting perfectly and working quite well.

    This same SD worked in kernel 2.6.30 but its “mmc_read_switch” function was simpler and probably didn’t try to read all the extra info that the 3.3+ one is and erroring out on. Not getting this info didn’t seem to impact anything much.
    http://talk.maemo.org/attachment.php...3&d=1304626965

    http://talk.maemo.org/showthread.php...07#post1000707

    Fix for Class 10 microSD cards - maemo.org - Talk

    Some of the links refer to (fixes for) specific card readers, but it affects all card readers.


    I think it is quite crucial for the developers to make changes to the kernel. It affects all linux systems, including Android phones.

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    13,667
    Do what I do and mount the sd card in a usb reader so it looks like a usb thumb drive to the system. I'm not running 3.x kernels, so I don't know if that will work. However, given how cheap sd cards are these days (about 50c USD per gigabyte), why not just get ones that work?
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  3. #3
    Because it's just another piece of stuff I'd have to carry around with my laptop, and because the laptop already has card reader which is supposed to work properly.

  4. $spacer_open
    $spacer_close
  5. #4
    I just ran into the same problem with a ricoh-r5c822-controlled card-reader in a hp 8540p on solydk-64bit

    inspired by another forum I started fiddeling with some module options and finally got it working with a

    options sdhci debug_quirks2=0x2

    placed in (new generated) file /etc/modprobe.d/sd-card-fix.conf
    'modinfo sdhci' gives the available options; and the value(0x2) is bit-set information according to sdhci.h in the kernel-headers referencing "SDHCI_QUIRK2_HOST_NO_CMD23"; inhibiting multiblock-transfers completely (SDHCI_QUIRK_NO_MULTIBLOCK, respectively 'options sdhci debug_quirks=0x200000') works as well but the transferrate then is massively lowered (~700kB/s vs. 9MB/s)

    hope this is helpful for someone else as well.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •