Localizando atributos do cartão SD montado

9

Meu cartão SD é montado automaticamente na / 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

Em dmesg :

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

Gostaria de saber alguns atributos - serial #, manufacturer id, etc. que pensei que estivessem em /sys/class . Eu pesquisei /sys/class/scsi_disk/3:0:0:0/ sem qualquer sorte.

Onde eu encontraria essa informação? Eu estou usando a versão mais recente do Arch-linux.

    
por Charles Pehlivanian 04.01.2014 / 02:55

4 respostas

11

A maneira correta de fazer isso, no Arch Linux, mas agora em todos os sistemas que usam udev , é o comando:

  sudo udevadm info -a -n /dev/sdb

no seu caso.

Editar:

Uma resposta ao seu comentário: acredito que você esteja enganado. A classe é uma visão de um dispositivo que é independente dos detalhes de implementação de baixo nível. O exemplo clássico é um disco. É claro que você pode ter um disco SCSI ou um disco ATA, mas, no nível classe , eles são a mesma coisa. A idéia da classe é permitir que os usuários criem código de espaço de usuário independente de como eles estão conectados à rede, como eles funcionam, qual driver de dispositivo eles usam e assim por diante. De certa forma, a classe é o nível mais alto de abstração disponível como modelo para dispositivos.

Assim, você está errado em procurar por detalhes como o fornecedor do cartão SD (que, a propósito, deve estar em / sys / class / mmc_host , se houver alguma) dentro / sys / class .

    
por 04.01.2014 / 17:15
5

O layout exato depende do driver, mas tente pesquisar /sys para algumas palavras-chave específicas do MMC (SD). Abaixo está um sistema embarcado baseado em 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

A entrada do blog de Bunnie no shenanigans do cartão SD é um bom lugar para começar a rastrear o que esses números de ID significa.

    
por 31.10.2014 / 18:42
2

Eu não uso o Arch Linux, mas "usb-devices" lista os detalhes de todos os dispositivos USB que o sistema conhece, e incluiu o seguinte para uma chave USB que eu conectei:

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
    
por 04.01.2014 / 03:51
1

Olhando para / sys / class / scsi_disk, descobri que (no meu sistema) são symkinks para discos reais. Na verdade, quando eu faço um "ls -la / sys / class / scsi_disk / ele mostra um link simbólico para 8: 0: 0: 0 para ../../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

Se eu então mudar para: / 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 Tem um número de arquivos que eu suspeito que são do seu interesse, incluindo -

model = model of the drive
vendor = the drive vendor

Também de interesse pode ser 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
    
por 04.01.2014 / 04:45