我的 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。
答案1
在 Arch Linux 中执行此操作的正确方法,但现在在所有使用udev,命令如下:
sudo udevadm info -a -n /dev/sdb
就你的情况而言。
编辑:
回复您的评论:我认为您搞错了。班级是独立于低级实现细节的设备视图。典型示例是磁盘。当然,您可能有 SCSI 磁盘或 ATA 磁盘,但至少班级水平上,它们是同一件事。班级是允许用户构建独立于他们如何连接到网络、他们如何工作、他们使用哪个设备驱动程序等的用户空间代码。在某种程度上,班级是作为设备模型的最高抽象级别。
因此,你搜索 SD 卡供应商等详细信息是错误的(顺便说一句,应该在/系统/类/mmc_host(如果有的话)在/系统/类。
答案2
确切的布局取决于驱动程序,但请尝试搜索/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 号码含义的好地方。
答案3
我没有使用 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
答案4
查看 /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/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