2010-12-14 12 views

Antwort

1

können Sie libudev verwenden SCSI-Geräte zu finden und das Hersteller-Attribut (ungetestet) lesen:

struct udev *context = udev_new(); 
struct udev_enumerate *enumerator = udev_enumerate_new(context); 
udev_enumerate_add_match_subsystem(enumerator, "scsi"); 
udev_enumerate_scan_devices(enumerator); 
struct udev_list_entry *scsi_devices = udev_enumerate_get_list_entry(enumerator); 
struct udev_list_entry *current = 0; 
udev_list_entry_foreach(current, scsi_devices) { 
    struct udev_device *device = udev_device_new_from_syspath(
      context, udev_list_entry_get_name(current)); 
    const char *vendor = udev_device_get_sysattr_value(device, "vendor"); 
    printf("%s\n", vendor); 
} 
2

Sie könnten lesen/sys-Dateien, wenn Sie die Geräte/Bus-ID kennen, überprüfen Sie auch lsscsi.

-> cat /sys/bus/scsi/devices/target13:0:0/13:0:0:0/vendor 
Marvell 
2

(1) offen SCSI-Gerät. (2) Senden Sie den SCSI-Befehl "inquiry" von ioctl. Dann können Sie den Herstellernamen aus den zurückgegebenen Daten abrufen.

2

Das Paket sg3_utils enthält Dienstprogramme, die SCSI-Befehle an Geräte senden.

Sobald wir sg3_utils installiert ist, führen sg_inq Befehl auf dem Gerät haben Sie interessiert sind

. Zum Beispiel: #sg_inq/dev/sda

Der obige Befehl wird auf dem Gerät Standard-SCSI-Anfrage ausgeführt werden und Geben Sie den Herstellernamen und andere Details an.

1

an den SCSI-SPC-3 Dokument Bezug & sg3_utils Befehle kann ich Ihnen vorschlagen, folgende:

1) Ausgabe-Befehl: sg_inq -p 0x00/dev/your_device_name

Dies wird Ihnen Seiten unterstützt von Ihrem Gerät.

2) Wenn obigen Befehl zeigt 0x83 als eines der unterstützte Seite dann Befehl:

sudo sg_inq -p 0x83/dev/your_device_name

Diese Lieferanteninformationen anzuzeigen.

P.S. -> your_device_name z. SR1, sda1

Bitte verwenden Sie diesen Link Skript erhalten für diese Art von Informationen zu erhalten:

http://a-saurabh.blogspot.in/2014/06/sometimes-we-want-to-query-about-our.html