查找已安装的SD卡的属性


10

我的SD卡可以自动安装为/ dev / sdb:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  1024M  0 rom  
sda      8:0    0    80G  0 disk 
├─sda1   8:1    0    78G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0     2G  0 part [SWAP]
sr1     11:1    1  1024M  0 rom  
sdb      8:16   1   7.4G  0 disk 
├─sdb1   8:17   1    56M  0 part /media/boot
└─sdb2   8:18   1   2.7G  0 part /media/af599925-1134-4b6e-8883-fb6a99cd58f1

dmesg

[ 1206.970596] sd 3:0:0:0: [sdb] Attached SCSI removable disk

我想知道一些我认为应该包含的属性-序列号,制造商ID等/sys/class。我搜索/sys/class/scsi_disk/3:0:0:0/没有任何运气。

我在哪里可以找到此信息?我正在使用最新版本的Arch-linux。

Answers:


12

在Arch Linux中但现在在所有使用udev的系统中,执行此操作的正确方法是以下命令:

  sudo udevadm info -a -n /dev/sdb

在你的情况下。

编辑:

回复您的评论:我相信您是错的。的是一种装置,其是独立的低级实现细节的视图。经典示例是磁盘。您当然可以拥有SCSI磁盘或ATA磁盘,但是在级别上,它们是同一回事。该类的想法是允许用户构建用户空间代码,该代码独立于他们如何连接到网络,他们如何工作,所使用的设备驱动程序等等。在某种程度上,该类是作为设备模型可用的最高抽象级别。

因此,你在(其中,顺便说一下,应该是在寻找这样的细节,你的SD卡供应商错误/ SYS /班/ mmc_host内的所有,如果有的话)/ SYS /班


1
好的,这将提供所有这些信息。但是-虽然我/sys/class应该被认为是/dev没有所有特定于设备(由设置udev)的层级导航的方法?我说错了吗?
Charles Pehlivanian 2014年

@CharlesPehlianian看到我的答案的编辑
MariusMatutiae 2014年

好的-当时我印象不对。谢谢!
Charles Pehlivanian 2014年

@CharlesPehlivanian:您可以通过/sys/class; 获得详细信息。参见@Robert的答案。这可能不是最好的方法。但是,在某些系统(例如Android)udevadm上不可用。
LarsH 2015年

6

确切的布局取决于驱动程序,但是请尝试搜索/sys一些MMC(SD)特定的关键字。下面是来自基于ARM的嵌入式系统:

$ find /sys -name "oemid"
/sys/class/mmc_host/mmc0/mmc0:aaaa/oemid
$ find /sys -name "cid"
/sys/class/mmc_host/mmc0/mmc0:aaaa/cid
$ find /sys -name "csd"
/sys/class/mmc_host/mmc0/mmc0:aaaa/csd

Bunnie在SD卡恶作剧上的博客条目是一个开始回溯这些ID号码含义的好地方。


大。就我而言,有了这个答案,我可以找到大多数SD和MMC设备属性。cid,csd,scr,日期,fwrev,hwrev,manfid,名称,oemid,序列...
agfe2

2

我不使用Arch Linux,但“ usb-devices”列出了系统知道的所有USB设备的详细信息,并包括以下有关我插入的USB密钥的信息:

T:  Bus=03 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0781 ProdID=5567 Rev=01.26
S:  Manufacturer=SanDisk
S:  Product=Cruzer Blade
S:  SerialNumber=4C532000060624123092
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

1
谢谢,这给了我我所要的内容,但是我想/sys/class更好地理解,所以我想根据此答案。
Charles Pehlivanian 2014年

1

通过查看/ sys / class / scsi_disk,我发现(在我的系统上)这些是实际磁盘的象征。确实,当我执行“ ls -la / sys / class / scsi_disk /时,它显示了8:0:0:0到../../devices/pci0000:00/0000:00:1c.4/0000的符号链接:09:00.0 / usb3 / 3-2 / 3-2.3 / 3-2.3:1.0 / host8 / target8:0:0/8:0:0:0 / scsi_disk / 8:0:0:0

如果然后我转到:/ sys / devices / pci0000:00/0000:00:1c.4 / 0000:09:00.0 / usb3 / 3-2 / 2 / 3-2.3 / 3-2.3:1.0 / host8 / target8: 0:0/8:0:0:0它包含一些我怀疑您感兴趣的文件,包括-

model = model of the drive
vendor = the drive vendor

也可能感兴趣的是解析/ proc / scsi-

/proc/scsi/scsi          contains the description of each device and associated host
                         as scsi8 which lets me derive the "8" in the next bit.

/proc/scsi/usb-storage/8 contains the Vendor, Product and serial number

正如您所指示的那样,ls/sys/devices/...目录上执行操作时,我会获得一个指向的符号链接/sys/class/scsi_disk/8:0:0:0,这是我的问题开始的地方。我没有找到模型,供应商,或其他任何文件FUA, device, allow_restart。运气不好,我搜索了这些文件。
Charles Pehlivanian 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.