Suchen der Attribute der bereitgestellten SD-Karte

10

Meine SD-Karte wird als / dev / sdb automatisch bereitgestellt:

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

In dmesg:

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

Ich würde gerne ein paar Attribute kennen - Seriennummer, Hersteller-ID usw., von denen ich dachte, dass sie darin sind /sys/class. Ich habe /sys/class/scsi_disk/3:0:0:0/ohne Glück gesucht .

Wo würde ich diese Informationen finden? Ich verwende die neueste Version von Arch-Linux.

Charles Pehlivanian
quelle

Antworten:

12

Der richtige Weg, dies in Arch Linux zu tun, aber mittlerweile in allen Systemen, die udev verwenden , ist der Befehl:

  sudo udevadm info -a -n /dev/sdb

in Ihrem Fall.

Bearbeiten:

Eine Antwort auf Ihren Kommentar: Ich glaube, Sie irren sich. Die Klasse ist eine Ansicht eines Geräts, die unabhängig von den Implementierungsdetails auf niedriger Ebene ist. Das klassische Beispiel ist eine Festplatte. Sie können natürlich eine SCSI-Festplatte oder eine ATA-Festplatte haben, aber auf Klassenebene sind sie dasselbe. Die Idee der Klasse ist es, Benutzern das Erstellen von Userspace-Code zu ermöglichen, der unabhängig davon ist, wie sie mit dem Netzwerk verbunden sind, wie sie arbeiten, welchen Gerätetreiber sie verwenden usw. In gewisser Weise ist die Klasse die höchste Abstraktionsebene, die als Modell für Geräte verfügbar ist.

So sind Sie falsch für solche Details wie die SD - Kartenhersteller bei der Suche (die, nebenbei bemerkt , sollte in sein / sys / class / mmc_host , wenn überhaupt) in / sys / class .

MariusMatutiae
quelle
1
Ok, das gibt all diese Informationen. Aber - ich /sys/classsollte eine Möglichkeit sein, /devohne all die gerätespezifische (von udev) hieracrchy zu navigieren? Liege ich falsch?
Charles Pehlivanian
@ CharlesPehlianian Siehe die Bearbeitung meiner Antwort
MariusMatutiae
Ok - ich hatte damals den falschen Eindruck. Vielen Dank!
Charles Pehlivanian
@CharlesPehlivanian: Sie können diese detaillierten Informationen über erhalten /sys/class; siehe @ Roberts Antwort. Es kann einfach nicht der beste Weg sein. Auf einigen Systemen (z. B. Android) udevadmist dies jedoch nicht verfügbar.
LarsH
6

Das genaue Layout hängt vom Treiber ab. Versuchen Sie jedoch, nach /syseinigen MMC (SD) -spezifischen Schlüsselwörtern zu suchen . Unten ist von einem ARM-basierten eingebetteten System:

$ 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

Bunnies Blogeintrag über SD-Karten-Spielereien ist ein guter Ort, um die Bedeutung dieser ID-Nummern zurückzuverfolgen.

Robert Calhoun
quelle
Groß. In meinem Fall konnte ich mit dieser Antwort die meisten SD- und MMC-Geräteattribute finden. cid, csd, scr, date, fwrev, hwrev, manfid, name, oemid, serial ...
agfe2
2

Ich verwende Arch Linux nicht, aber "USB-Geräte" listet die Details aller USB-Geräte auf, die das System kennt, und enthält Folgendes für einen USB-Stick, den ich angeschlossen habe:

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
quelle
1
Danke, das gibt mir das, wonach ich gefragt habe, aber ich würde es gerne /sys/classetwas besser verstehen, also hätte ich gerne eine Antwort darauf.
Charles Pehlivanian
1

Beim Betrachten von / sys / class / scsi_disk stellte ich fest, dass (auf meinem System) dies Symkinks zu tatsächlichen Festplatten sind. Wenn ich ein "ls -la / sys / class / scsi_disk /" mache, wird ein Symlink für 8: 0: 0: 0 zu ../../devices/pci0000:00/0000:00:1c.4/0000 angezeigt : 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

Wenn ich dann zu: / sys / device / pci0000: 00/0000: 00: 1c.4 / 0000: 09: 00.0 / usb3 / 3-2 / 3-2.3 / 3-2.3: 1.0 / host8 / target8 wechsle: 0: 0/8: 0: 0: 0 Es enthält eine Reihe von Dateien, von denen ich vermute, dass sie für Sie von Interesse sind, darunter -

model = model of the drive
vendor = the drive vendor

Von Interesse könnte auch das Parsen von / proc / scsi sein -

/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
quelle
Wenn Sie dies lsin Ihrem /sys/devices/...Verzeichnis tun , erhalte ich, wie Sie angeben, einen Symlink zurück zu /sys/class/scsi_disk/8:0:0:0, an dem meine Frage begann. Ich sehe keine Dateien für Modell, Hersteller FUA, device, allow_restartusw. Ich habe diese ohne Glück durchsucht.
Charles Pehlivanian