Вопрос

Как я могу получить имя поставщика устройства SCSI на Linux & C?

Это было полезно?

Решение

Ты можешь использовать Либудев Чтобы найти устройства SCSI и прочитать атрибут поставщика (непроверенный):

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);
}

Другие советы

Вы можете изучить файлы чтения /sys, если вы знаете идентификатор устройства /шины, также проверьте LSSCSI.

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

(1) Открыть устройство SCSI. (2) Отправить команду SCSI «Запрос» от ioctl. Затем вы можете получить имя поставщика из возвратных данных.

Пакет SG3_Utils содержит утилиты, которые отправляют команды SCSI на устройства.

Как только у нас установлен SG3_Utils, запустите команду SG_INQ на устройстве, которое вас интересует.

Например: #SG_INQ /DEV /SDA

Приведенная выше команда будет выполнять стандартный запрос SCSI на устройстве и предоставить имя поставщика и другие данные.

Ссылаясь на команды документа SCSI SPC-3 и команды SG3_Utils, я могу предложить вам следующее:

1) Команда выпуска: sg_inq -p 0x00 /dev /your_device_name

Это даст вам поддерживаемые страницы вашим устройством.

2) Если выше выше, команда отображает 0x83 в качестве одной из поддерживаемых страниц, тогда команда выпуска:

sudo sg_inq -p 0x83 /dev /your_device_name

Это будет отображать информацию поставщика.

Ps -> your_device_name, Eg Sr1, SDA1

Пожалуйста, используйте эту ссылку, чтобы получить скрипт для получения такого типа информации:

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

Вы можете использовать запрос SCSI с помощью таких инструментов, как SG3_Utils или просто найти его в рамках Sys/Bus/SCSI/Devices/xxxxx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top