why is the internal storage mmc and not sd?

I’ve been researching the difference bewteen sd and mmc after noticing that openwrt (and other distributions) name the internal storage that contains the system as mmcblk and other disks that live in external sd card readers as sd.

The thing that is confusing me is that the internal memory is also an sd card. So why does the system say that it is mmc? Is it because the reader is an mmc reader or is it some kind of emulation to make it compatible with the rest of the system?

Asked By: duckegg


/dev/sdX indeed once meant SCSI disk, but nowadays it covers anything with a SCSI-like interface, including SATA, USB storage and even old PATA when libata drivers are used. Some actually have suggested reinterpreting it just as storage device.

The MMC memory card specification was introduced in 1997, and SD cards were introduced in 1999 as an improvement over the MMC specification. So you can think of MMC as the "basic" form of the SD/MMC memory cards and SD as a subtype or specific form of it. This is of course a simplification, as both specifications evolved in parallel after their initial introduction.

The major "improvement" of SD over MMC initially was actually the inclusion of Digital Rights Management features to the specification, to placate music suppliers’ concerns about piracy, and so encourage SD cards as a possible music distribution medium. (Didn’t exactly work out as expected.)

The SD card was also specified to be a bit thicker than MMC, so MMC found its niche in use cases where DRM was not required and thinness was important.

When you access a SD/MMC card using a USB-based card reader, it will usually appear as /dev/sdX device, since the reader is being accessed with a SCSI-like protocol. But when a reader device that allows direct access to the "native" SD/MMC interface, a /dev/mmcblkN device name is used.

With a /dev/mmcblkN device, you will be able to use the low-level tools of the mmc-utils package and will be able to use some card functions that are not available with (most?) card readers that present a /dev/sdX device.

The internal memory of openwrt devices (and similar) is often specifically an eMMC: a MMC card controller and memory card packaged as a single permanently soldered chip.

Answered By: telcoM
Categories: Answers Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.