获取 SCSI 的供应商名称

发布于 2024-10-07 17:17:00 字数 43 浏览 2 评论 0原文

如何获取 Linux 和 Linux 上 SCSI 设备的供应商名称c?

How can I get the vendor name of SCSI device on linux & c?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

鹊巢 2024-10-14 17:17:00

如果您知道设备/总线 ID,您可以考虑读取 /sys 文件,同时检查 lsscsi

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

You could look into reading /sys files if you know the device/bus id, also check lsscsi.

  -> cat /sys/bus/scsi/devices/target13:0:0/13:0:0:0/vendor 
Marvell
烟酒忠诚 2024-10-14 17:17:00

(1)打开SCSI设备。
(2)通过ioctl发送SCSI命令“inquiry”。
然后您可以从返回的数据中获取供应商名称。

(1)open SCSI device.
(2)Send SCSI command "inquiry" by ioctl.
then you can get vendor name from the data returned.

忆梦 2024-10-14 17:17:00

您可以使用 libudev 查找 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);
}

You can use libudev to find SCSI devices and read the vendor attribute (untested):

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);
}
九公里浅绿 2024-10-14 17:17:00

sg3_utils 软件包包含向设备发送 SCSI 命令的实用程序。

安装 sg3_utils 后,在您感兴趣的设备上运行 sg_inq 命令。

例如:#sg_inq /dev/sda

上述命令将在设备上运行标准 SCSI 查询并提供供应商名称和其他详细信息。

The sg3_utils package contains utilities that send SCSI commands to devices.

Once we have sg3_utils installed, run sg_inq command on the device you are interested in.

For example: #sg_inq /dev/sda

The above command will run standard SCSI inquiry on the device and provide the Vendor name and other details.

兮子 2024-10-14 17:17:00

参考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 例如 sr1、sda1

请使用此链接获取用于获取这些类型信息的脚本:

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

Referring to the SCSI SPC-3 document & sg3_utils commands I can suggest you following:

1) Issue command: sg_inq -p 0x00 /dev/your_device_name

This will give you supported pages by your device.

2) If above command displays 0x83 as one of the supported page then issue command:

sudo sg_inq -p 0x83 /dev/your_device_name

This will display vendor information.

P.S -> your_device_name e.g. sr1, sda1

Please use this link to get script for getting these type of information:

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

夜雨飘雪 2024-10-14 17:17:00

您可以通过 sg3_utils 等工具使用 scsi 查询,或者在 sys/bus/scsi/devices/xxxxx 下找到它

you can use scsi inquiry by tools like sg3_utils or just find it under sys/bus/scsi/devices/xxxxx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文