Ued*_*uki 5 linux sd-card raspberry-pi
在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
Run Code Online (Sandbox Code Playgroud)
但是,对于安装在sda设备上的USB SD卡读写器连接的SD卡,我看不到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
Run Code Online (Sandbox Code Playgroud)
有什么方法可以读取安装为sda的 SD 卡序列号吗?欢迎任何建议!
前几天我遇到了这个问题(并在搜索中偶然发现了这个问题),看起来答案是这实际上是不可能的。
CID 信息存储在 SD 卡上的寄存器中,您只能通过 SPI 访问它(通常)。驱动程序必须向 SD 卡发送特定命令才能读取这些寄存器。
另一方面,当您使用 USB SD 读卡器时,它使用通用的“USB 大容量存储设备”接口 - 因此,当您的 PC 与 USB 读卡器通信时,它 [您的 PC] 甚至不知道它是具体到 SD 卡,它只是将其视为另一个通用 USB 存储设备(如闪存驱动器或其他东西)。
如果您的 USB SD 读卡器有一种可以让您直接与它进行手动通信的模式(例如通过 USB 向其发送自定义命令),那么这种事情远程实现的唯一方法是,但据我所知,这种事情不会不存在。
如果您执意要获取 CID 信息并且不介意使用额外的硬件(~ 10 美元),您可以购买 SD 卡分线板并将其连接到 Arduino 或其他任何设备,然后您就可以访问引脚和您可以编写自己的代码来读取 CID 数据。
感谢这个答案,这就是我的答案所基于的: https: //stackoverflow.com/a/50999034/1576548
如果您有兴趣,可以在此处查看 SD 卡协会的规范(“物理层”):https://www.sdcard.org/downloads/pls/,了解有关如何收集 CID 信息的更多信息。
以及Linux内核的SD卡驱动:https://github.com/torvalds/linux/blob/master/drivers/mmc/core/sd.c
归档时间: |
|
查看次数: |
4452 次 |
最近记录: |