Recherche des attributs de la carte SD montée

10

Ma carte SD est montée automatiquement comme / 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

Dans dmesg:

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

Je voudrais connaître quelques attributs - numéro de série, identifiant du fabricant, etc. que je pensais être /sys/class. J'ai cherché /sys/class/scsi_disk/3:0:0:0/sans aucune chance.

Où trouver ces informations? J'utilise la dernière version d'Arch-linux.

Charles Pehlivanian
la source

Réponses:

12

La bonne façon de le faire, dans Arch Linux mais maintenant dans tous les systèmes qui utilisent udev , est la commande:

  sudo udevadm info -a -n /dev/sdb

dans ton cas.

Éditer:

Une réponse à votre commentaire: je crois que vous vous trompez. La classe est une vue d'un périphérique indépendant des détails d'implémentation de bas niveau. L'exemple classique est un disque. Vous pouvez bien sûr avoir un disque SCSI ou un disque ATA, mais, au niveau de la classe , c'est la même chose. L'idée de la classe est de permettre aux utilisateurs de créer du code d'espace utilisateur indépendant de la façon dont ils sont connectés au réseau, de leur fonctionnement, du pilote de périphérique qu'ils utilisent, etc. D'une certaine manière, la classe est le plus haut niveau d'abstraction disponible en tant que modèle pour les appareils.

Ainsi, vous avez tort de rechercher des détails tels que le fournisseur de votre carte SD (qui, soit dit en passant, devrait être dans / sys / class / mmc_host , le cas échéant) dans / sys / class .

MariusMatutiae
la source
1
Ok, cela donne toutes ces informations. Mais - je pensais que /sys/classc'était censé être un moyen de naviguer /devsans toute la udevhiérarchie spécifique à l'appareil (définie par )? Suis-je dans l'erreur?
Charles Pehlivanian
@CharlesPehlianian Voir l'édition de ma réponse
MariusMatutiae
D'accord - j'avais alors une mauvaise impression. Merci!
Charles Pehlivanian
@CharlesPehlivanian: Vous pouvez accéder à ces informations détaillées via /sys/class; voir la réponse de @ Robert. Ce n'est peut-être pas le meilleur moyen. Cependant, sur certains systèmes (par exemple Android), udevadmn'est pas disponible.
LarsH
6

La disposition exacte dépend du pilote, mais essayez de rechercher /sysdes mots clés spécifiques à MMC (SD). Voici un système embarqué basé sur 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

L'entrée du blog de Bunnie sur les manigances des cartes SD est un bon endroit pour commencer à retracer la signification de ces numéros d'identification.

Robert Calhoun
la source
Génial. Dans mon cas, avec cette réponse, j'ai pu trouver la plupart des attributs de périphérique SD et MMC. cid, csd, scr, date, fwrev, hwrev, manfid, name, oemid, serial ...
agfe2
2

Je n'utilise pas Arch Linux, mais "périphériques USB" répertorie les détails de tous les périphériques USB que le système connaît, et comprenait les éléments suivants pour une clé USB que j'ai branchée:

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
la source
1
Merci, cela me donne ce que je demandais, mais j'aimerais mieux comprendre /sys/classun peu donc j'aimerais une réponse basée sur ça.
Charles Pehlivanian
1

En regardant / sys / class / scsi_disk, j'ai découvert que (sur mon système) ce sont des liens symboliques vers des disques réels. En effet quand je fais un "ls -la / sys / class / scsi_disk / il montre un lien symbolique pour 8: 0: 0: 0 vers ../../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

Si je passe ensuite à: / 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 Il contient un certain nombre de fichiers qui, je le soupçonne, vous intéressent, notamment -

model = model of the drive
vendor = the drive vendor

Il peut également être intéressant d'analyser / 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
la source
Quand faites-le lssur votre /sys/devices/...annuaire, comme vous l'avez indiqué, je reçois un lien symbolique vers /sys/class/scsi_disk/8:0:0:0, c'est là que ma question a commencé. Je ne vois aucun fichier pour le modèle, le fournisseur, seulement FUA, device, allow_restart, etc. J'ai cherché ces fichiers sans chance.
Charles Pehlivanian