Menemukan atribut kartu SD yang dipasang

10

Kartu SD saya diotomatiskan sebagai / 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

Dalam dmesg:

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

Saya ingin tahu beberapa atribut - serial #, id pabrikan, dll yang saya pikir akan masuk /sys/class. Saya telah mencari /sys/class/scsi_disk/3:0:0:0/tanpa hasil.

Di mana saya dapat menemukan informasi ini? Saya menggunakan versi terbaru dari Arch-linux.

Charles Pehlivanian
sumber

Jawaban:

12

Cara yang tepat untuk melakukan ini, di Arch Linux tetapi sekarang di semua sistem yang menggunakan udev , adalah perintah:

  sudo udevadm info -a -n /dev/sdb

dalam kasus Anda.

Edit:

Balasan untuk komentar Anda: Saya yakin Anda salah. The kelas adalah pandangan dari perangkat yang independen dari rincian implementasi tingkat rendah. Contoh klasik adalah disk. Anda tentu saja memiliki disk SCSI atau disk ATA, tetapi, di tingkat kelas , mereka adalah hal yang sama. Gagasan kelas adalah untuk memungkinkan pengguna untuk membangun kode userspace yang independen dari bagaimana mereka terhubung ke jaringan, bagaimana mereka bekerja, driver perangkat apa yang mereka gunakan, dan sebagainya. Di satu sisi, kelas adalah tingkat abstraksi tertinggi yang tersedia sebagai model untuk perangkat.

Jadi Anda salah dalam mencari rincian seperti vendor kartu SD Anda (yang, omong-omong, harus di / sys / class / mmc_host , jika ada) di dalam / sys / class .

MariusMatutiae
sumber
1
Ok, ini memberikan semua informasi itu. Tapi - saya pikir /sys/classseharusnya menjadi cara melakukan navigasi /devtanpa semua udevhieracrchy khusus perangkat? Apakah saya salah tentang itu?
Charles Pehlivanian
@CharlesPehlianian Lihat Edit pada jawaban saya
MariusMatutiae
Ok - saya mendapat kesan salah saat itu. Terima kasih!
Charles Pehlivanian
@CharlesPehlivanian: Anda bisa mendapatkan informasi terperinci itu melalui /sys/class; lihat jawaban @ Robert. Itu mungkin bukan cara terbaik. Namun, pada beberapa sistem (misalnya Android), udevadmtidak tersedia.
LarsH
6

Tata letak yang tepat tergantung pada driver, tetapi cobalah mencari /sysbeberapa kata kunci spesifik MMC (SD). Di bawah ini dari sistem embedded berbasis 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

Entri blog Bunnie pada kartu SD shenanigans adalah tempat yang baik untuk memulai kembali pelacakan apa arti nomor ID itu.

Robert Calhoun
sumber
Bagus. Dalam kasus saya, dengan jawaban ini, saya dapat menemukan sebagian besar atribut perangkat SD dan MMC. cid, csd, scr, date, fwrev, hwrev, manfid, nama, oemid, serial ...
agfe2
2

Saya tidak menggunakan Arch Linux, tetapi "usb-devices" mencantumkan rincian semua perangkat USB yang diketahui oleh sistem, dan menyertakan yang berikut untuk kunci USB yang saya gunakan:

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
davidgo
sumber
1
Terima kasih, ini memberi saya apa yang saya minta, tetapi saya ingin memahami /sys/classsedikit lebih baik sehingga saya ingin jawaban berdasarkan itu.
Charles Pehlivanian
1

Melihat / sys / class / scsi_disk saya menemukan bahwa (pada sistem saya) bahwa ini adalah symkinks ke disk sebenarnya. Memang ketika saya melakukan "ls -la / sys / class / scsi_disk / itu menunjukkan symlink untuk 8: 0: 0: 0 hingga ../../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

Jika saya kemudian pindah ke: / 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 Ini memiliki sejumlah file yang saya duga menarik bagi Anda termasuk -

model = model of the drive
vendor = the drive vendor

Yang juga menarik adalah parsing / 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
davidgo
sumber
Ketika melakukannya lsdi /sys/devices/...direktori Anda , seperti yang Anda tunjukkan, saya mendapatkan symlink kembali ke /sys/class/scsi_disk/8:0:0:0, di situlah pertanyaan saya dimulai. Saya tidak melihat file untuk model, vendor, hanya FUA, device, allow_restart, dll. Saya telah mencari ini tanpa hasil.
Charles Pehlivanian