La forma correcta de hacer esto, en Arch Linux pero ahora en todos los sistemas que usan udev , es el comando:
sudo udevadm info -a -n /dev/sdb
en tu caso.
Editar:
Respuesta a tu comentario:Creo que te equivocas. La clase es una vista de un dispositivo que es independiente de los detalles de implementación de bajo nivel. El ejemplo clásico es un disco. Por supuesto, puede tener un disco SCSI o un disco ATA, pero en la clase nivel, son la misma cosa. La idea de la clase es permitir a los usuarios crear código de espacio de usuario que sea independiente de cómo están conectados a la red, cómo funcionan, qué controlador de dispositivo usan, etc. En cierto modo, la clase es el nivel más alto de abstracción disponible como modelo para dispositivos.
Por lo tanto, se equivoca al buscar detalles como el proveedor de su tarjeta SD (que, por cierto, debería estar en /sys/class/mmc_host , en todo caso) dentro de /sys/class .
El diseño exacto depende del controlador, pero intente buscar /sys
para algunas palabras clave específicas de MMC (SD). A continuación se muestra un sistema integrado basado en 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
La entrada del blog de Bunnie sobre los chanchullos de las tarjetas SD es un buen lugar para comenzar a rastrear lo que significan esos números de identificación.
No uso Arch Linux, pero "usb-devices" enumera los detalles de todos los dispositivos USB que el sistema conoce e incluye lo siguiente para una llave USB que conecté:
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