我的桌面有一个内置的SD / mini / MMC / RS卡插槽,我可以毫无问题地使用我的eMMC卡作为存储设备。但是在/dev
目录下,它被识别为/dev/sdd
,我认为应该是/dev/mmcblk0
或其他内容。这是关于dmesg -T
部分的sd
的输出:
[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
问题在于我想使用ioctl
和MMC_IOC_CMD
请求来测试其功能,因此我可以将结果/响应与另一个FPGA模拟的eMMC控制器进行比较。在安装了Linux(3.0.1)的嵌入式扶手板上,这个相同的eMMC卡被正确识别为/dev/mmcblk0
,我可以成功地向它发送一些命令。但在桌面open("/dev/sdd", O_RDWR)
上,ioctl(fd, IOC_MMC_CMD, args)
会返回EINVAL
。
也许问题是该卡未被正确识别为sd / mmc卡?如何让它实现为mmcblkX
,以便我可以在我的PC(Arch Linux)上与它进行交互?