Erhalten Herstellername von SCSI
Frage
Wie kann ich den Namen des Herstellers von SCSI-Gerät auf Linux & c bekommen?
Lösung
Sie können mit libudev SCSI-Geräte zu finden und lesen Sie den Hersteller-Attribut (ungetestet):
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);
}
Andere Tipps
könnten Sie sehen in / sys-Dateien zu lesen, wenn Sie das Gerät / Bus-ID kennen, auch überprüfen lsscsi .
-> cat /sys/bus/scsi/devices/target13:0:0/13:0:0:0/vendor
Marvell
(1) offen SCSI-Gerät. (2) Senden Sie SCSI-Befehl "Anfrage" von ioctl. dann können Sie Herstellernamen aus den zurückgegebenen Daten erhalten.
Das sg3_utils Paket enthält Dienstprogramme, die SCSI-Befehle an Geräte senden.
Sobald wir sg3_utils installiert, laufen sg_inq Befehl auf dem Gerät, das Sie interessiert sind.
Zum Beispiel: #sg_inq / dev / sda
Der obige Befehl wird auf dem Gerät Standard-SCSI-Anfrage ausführen und den Namen des Herstellers und andere Details liefern.
zu den SCSI Bezug SPC-3 Dokument & sg3_utils Befehle kann ich Ihnen vorschlagen, folgende:
1) Ausgabe-Befehl: sg_inq -p 0x00 / dev / your_device_name
Dies wird Ihnen unterstützten Seiten von Ihrem Gerät.
2) Wenn obige Befehl zeigt 0x83 als eines der unterstützten Seite dann Ausgabe-Befehl:
sudo sg_inq -p 0x83 / dev / your_device_name
Dies wird Herstellerinformationen angezeigt werden.
P. S -> your_device_name z.B. 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
Sie können SCSI- Anfrage von Tools wie sg3_utils verwenden oder es nur finden unter sys / bus / scsi / devices / xxxxx