Пошук атрибутів змонтованої 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

Я хотів би знати кілька атрибутів - serial #, ідентифікатор виробника тощо /sys/class. Я шукав /sys/class/scsi_disk/3:0:0:0/без удачі.

Де я міг би знайти цю інформацію? Я використовую останню версію Arch-linux.

Відповіді:


12

Правильний спосіб зробити це в Arch Linux, але до цих пір у всіх системах, які використовують udev , є команда:

  sudo udevadm info -a -n /dev/sdb

у вашому випадку.

Редагувати:

Відповідь на ваш коментар: Я вважаю, що ви помиляєтесь. Клас являє собою вид пристрою , яке не залежить від деталей реалізації низькорівневих. Класичний приклад - диск. Звичайно, у вас може бути диск SCSI або диск ATA, але на рівні класу вони - те саме. Ідея класу полягає в тому, щоб дозволити користувачам створювати код простору користувача, який не залежить від того, як вони підключені до мережі, як вони працюють, який драйвер пристрою вони використовують тощо. Певним чином, клас - це найвищий рівень абстракції, доступний як модель для пристроїв.

Таким чином, ви помиляєтесь в пошуку таких деталей, як постачальник вашої SD-карти (який, до речі, повинен бути в / sys / class / mmc_host , якщо взагалі щось є) у / sys / class .


1
Гаразд, це дає всю цю інформацію. Але - я хоч /sys/classмав би бути способом навігації /devбез усієї специфічної для пристрою udevієрархії? Я з цим помиляюся?
Чарльз Пехліванян

@CharlesPehlianian Дивіться Правка на мою відповідь
MariusMatutiae

Гаразд - тоді я був під неправильним враженням. Дякую!
Чарльз Пехліванян

@CharlesPehlivanian: Ви можете отримати цю детальну інформацію через /sys/class; див @ відповідь Роберта. Це може бути не найкращим способом. Однак у деяких системах (наприклад, Android) udevadmце недоступно.
LarsH

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

Запис блогу Бані на шенаніганах на SD-картці - це гарне місце, щоб почати відстежувати, що означають ці номери ідентифікаторів.


Чудово. У моєму випадку з цією відповіддю я міг знайти більшість атрибутів пристроїв SD та MMC. cid, csd, scr, дата, fwrev, hwrev, manfid, ім'я, oemid, serial ...
agfe2

2

Я не використовую Arch Linux, але "usb-пристрої" перелічують деталі всіх 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трохи краще, тому я хотів би відповісти на основі цього.
Чарльз Пехліванян

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 / 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і т. Д. Я шукав їх не пощастило.
Чарльз Пехліванян
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.