Tìm thuộc tính của thẻ SD được gắn


10

Thẻ SD của tôi được tự động xử lý tốt như / 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

Trong dmesg:

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

Tôi muốn biết một vài thuộc tính - serial #, id nhà sản xuất, v.v. mà tôi nghĩ sẽ có trong đó /sys/class. Tôi đã tìm kiếm /sys/class/scsi_disk/3:0:0:0/mà không gặp may mắn.

Tôi sẽ tìm thấy thông tin này ở đâu? Tôi đang sử dụng phiên bản mới nhất của Arch-linux.

Câu trả lời:


12

Cách thích hợp để làm điều này, trong Arch Linux nhưng hiện tại trong tất cả các hệ thống sử dụng udev , là lệnh:

  sudo udevadm info -a -n /dev/sdb

trong trường hợp của bạn.

Biên tập:

Trả lời bình luận của bạn: Tôi tin rằng bạn đã nhầm. Các lớp học là một cái nhìn của một thiết bị mà không phụ thuộc vào chi tiết thực hiện ở mức độ thấp. Ví dụ cổ điển là một đĩa. Tất nhiên bạn có thể có một đĩa SCSI hoặc một đĩa ATA, nhưng, ở cấp độ lớp , chúng là cùng một thứ. Ý tưởng của lớp là cho phép người dùng xây dựng mã không gian người dùng độc lập với cách họ được kết nối với mạng, cách họ làm việc, trình điều khiển thiết bị nào họ sử dụng, v.v. Theo một cách nào đó, lớp là mức độ trừu tượng cao nhất có sẵn như là một mô hình cho các thiết bị.

Do đó, bạn đã sai khi tìm kiếm các chi tiết như nhà cung cấp thẻ SD của bạn (nhân tiện, nên ở trong / sys / class / mmc_host , nếu có bất cứ điều gì) trong / sys / class .


1
Ok, điều này cung cấp cho tất cả các thông tin đó. Nhưng - tôi mặc dù /sys/classđược cho là một cách để điều hướng /devmà không cần tất cả các thiết bị cụ thể (được đặt bởi udev) hieracrchy? Tôi có sai về điều đó không?
Charles Pehlivanian

@CharlesPehlianian Xem phần Chỉnh sửa câu trả lời của tôi
MariusMatutiae

Ok - tôi đã có ấn tượng sai rồi. Cảm ơn!
Charles Pehlivanian

@CharlesPehlivanian: Bạn có thể nhận thông tin chi tiết đó qua /sys/class; xem câu trả lời của @ Robert. Nó có thể không phải là cách tốt nhất. Tuy nhiên, trên một số hệ thống (ví dụ: Android), udevadmkhông khả dụng.
LarsH

6

Bố cục chính xác phụ thuộc vào trình điều khiển, nhưng hãy thử tìm kiếm /sysmột số từ khóa cụ thể MMC (SD). Dưới đây là từ một hệ thống nhúng dựa trên 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

Mục blog của Bunnie trên shenanigans thẻ SD là một nơi tốt để bắt đầu theo dõi lại ý nghĩa của những số ID đó.


Tuyệt quá. Trong trường hợp của tôi, với câu trả lời này, tôi có thể tìm thấy hầu hết các thuộc tính thiết bị SD và MMC. cid, csd, Scr, date, fwrev, hwrev, manfid, name, OEMid, serial ...
agfe2

2

Tôi không sử dụng Arch Linux, nhưng "thiết bị usb" liệt kê chi tiết của tất cả các thiết bị USB mà hệ thống biết và bao gồm những điều sau đây cho khóa USB tôi đã cắm:

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
Cảm ơn, điều này mang lại cho tôi những gì tôi đã yêu cầu, nhưng tôi muốn hiểu rõ hơn /sys/classmột chút vì vậy tôi muốn có một câu trả lời dựa trên điều đó.
Charles Pehlivanian

1

Nhìn vào / sys / class / scsi_disk tôi phát hiện ra rằng (trên hệ thống của tôi) rằng đây là những symkinks cho các đĩa thực tế. Thật vậy, khi tôi thực hiện "ls -la / sys / class / scsi_disk / nó hiển thị một liên kết tượng trưng cho 8: 0: 0: 0 đến ../../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

Nếu sau đó tôi chuyển sang: / sys / thiết bị / 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 Nó có một số tệp mà tôi nghi ngờ bạn quan tâm bao gồm -

model = model of the drive
vendor = the drive vendor

Cũng có thể quan tâm có thể phân tích cú pháp / 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

Khi làm lstrên /sys/devices/...thư mục của bạn , như bạn chỉ ra, tôi nhận được một liên kết tượng trưng trở lại /sys/class/scsi_disk/8:0:0:0, đó là nơi câu hỏi của tôi bắt đầu. Tôi không thấy bất kỳ tập tin nào cho mô hình, nhà cung cấp, chỉ FUA, device, allow_restart, v.v. Tôi đã tìm kiếm những tập tin này mà không gặp may.
Charles Pehlivanian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.