title: Why is my emmc card recognized as /dev/sdd instead of /dev/mmcblk0?
body: <p>My desktop has a built-in SD/mini/MMC/RS card slot and I can use my eMMC card as storage device without problems. But under <code>/dev</code> directory it is recognized as <code>/dev/sdd</code>, which I think should be <code>/dev/mmcblk0</code> or something. Here's the output of <code>dmesg -T</code> concerning <code>sd</code> part:</p>
  
  <pre><code>[Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] 15269888 512-byte logical blocks: (7.81 GB/7.28 GiB)
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] Write Protect is off
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] Mode Sense: 03 00 00 00
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] No Caching mode page found
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] Assuming drive cache: write through
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:0: [sdb] Attached SCSI removable disk
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:1: [sdc] Attached SCSI removable disk
  [Thu Nov  5 10:57:14 2015]  sdd: sdd1
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:3: [sde] Attached SCSI removable disk
  [Thu Nov  5 10:57:14 2015] sd 5:0:0:2: [sdd] Attached SCSI removable disk
  </code></pre>
  
  <p>The problem is that I want to use <code>ioctl</code> with <code>MMC_IOC_CMD</code> request to test its functionality, so I can compare the result/response with another FPGA-simulated eMMC controller. On an embedded arm board with Linux (3.0.1) installed this same eMMC card is recognized correctly as <code>/dev/mmcblk0</code>, and I can successfully send some commands to it. But on the Desktop, <code>open("/dev/sdd", O_RDWR)</code>, then <code>ioctl(fd, IOC_MMC_CMD, args)</code> returns <code>EINVAL</code>.</p>
  
  <p>Maybe the problem is the card isn't correctly recognized as sd/mmc card? How could I make it realized as <code>mmcblkX</code> so that I can interact with it on my PC (Arch Linux)?</p>