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

Я хотел бы знать несколько атрибутов - серийный номер, идентификатор производителя и т.д., Которые, как я думал, будут в /sys/class . Я искал /sys/class/scsi_disk/3:0:0:0/ без удачи.

Где я могу найти эту информацию? Я использую последнюю версию Arch-Linux.

4 ответа4

11

Правильный способ сделать это в Arch Linux, но сейчас во всех системах, которые используют udev, это команда:

  sudo udevadm info -a -n /dev/sdb

в твоем случае.

Редактировать:

Ответ на ваш комментарий: Я считаю, что вы ошибаетесь. Класс представляет собой представление устройства, которое не зависит от подробностей реализации низкого уровня. Классический пример - диск. Конечно, у вас может быть диск SCSI или диск ATA, но на уровне класса это одно и то же. Идея этого класса заключается в том, чтобы позволить пользователям создавать код пользовательского пространства, который не зависит от того, как они подключены к сети, как они работают, какой драйвер устройства они используют и так далее. В некотором смысле, класс является высшим уровнем абстракции, доступным в качестве модели для устройств.

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

5

Точная компоновка зависит от драйвера, но попробуйте выполнить поиск /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-картами - это хорошее место, чтобы начать отслеживать, что означают эти идентификационные номера.

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 /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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .