我可以读取与USB卡reader/writer连接的SD卡序列号作为挂载的sda吗?

Can I read SD card serial number connected with USB card reader/writer as mounted sda?

在Raspberry pi,我可以从/sys/block/mmcblk0/device文件夹下的cid文件中读取内置SD卡驱动器上安装的SD卡的序列号.

pi@raspberrypi:~ $ ls /sys/block/mmcblk0/device
block  driver      hwrev   oemid                 scr        type
cid    dsr         manfid  power                 serial     uevent
csd    erase_size  name    preferred_erase_size  ssr
date   fwrev       ocr     rca                   subsystem

但是,关于USB SD卡连接的SD卡reader/writer挂载在sda设备上,看不到cid文件

pi@raspberrypi:~ $ ls /sys/block/sda/device
blacklist                           evt_soft_threshold_reached  rescan
block                               generic                     rev
bsg                                 inquiry                     scsi_device
delete                              iocounterbits               scsi_disk
device_blocked                      iodone_cnt                  scsi_generic
device_busy                         ioerr_cnt                   scsi_level
driver                              iorequest_cnt               state
eh_timeout                          max_sectors                 subsystem
evt_capacity_change_reported        modalias                    timeout
evt_inquiry_change_reported         model                       type
evt_lun_change_reported             power                       uevent
evt_media_change                    queue_depth                 vendor
evt_mode_parameter_change_reported  queue_type                  wwid

有没有办法读取挂载为sda的SD卡序列号?欢迎提出任何建议!

前几天我 运行 遇到了这个问题(在我的搜索中偶然发现了这个问题),看起来答案是 不太可能.

CID信息保存在SD卡的一个寄存器中,只能通过SPI访问(通常)。驱动程序必须向 SD 卡发送特定命令才能读取这些寄存器。

另一方面,当您使用 USB SD 卡 reader 时,它使用通用的“USB 大容量存储设备”接口——所以当您的 PC 与 USB 卡通信时 reader ,它 [您的 PC] 甚至不知道它正在专门与 SD 卡通信,它只是将其视为另一个通用 USB 存储设备(如闪存驱动器或其他东西)。

如果您的 USB SD 卡 reader 具有允许您直接与其通信的模式(例如,通过 USB 向其发送自定义命令),那么这种事情将成为可能的唯一方法, 但 AFAIK 这种东西不存在。

如果您对获取 CID 信息一无所知并且不介意使用额外的硬件(约 10 美元),您可以购买一个 SD 卡分线板并将其连接到 Arduino 或其他任何东西,然后您将拥有访问引脚,您可以编写自己的代码来读取 CID 数据。

此答案的来源,这是我的答案所基于的:

如果您有兴趣,可以在此处查看 SD 卡协会的规范('Physical Layer')https://www.sdcard.org/downloads/pls/,了解有关如何收集 CID 信息的更多信息。

和Linux内核的SD卡驱动:https://github.com/torvalds/linux/blob/master/drivers/mmc/core/sd.c