【问题标题】:How to read out vendor ID of CF-Card如何读取 CF 卡的供应商 ID
【发布时间】:2009-11-04 07:42:42
【问题描述】:

我正在编写一个用图像填充 cf 卡的 bash 脚本。由于只允许使用指定的卡,所以我想检查一下 USB cf 卡写入器中是否插入了正确类型的 cf 卡。

我知道可以以某种方式读出 cf 卡的供应商 ID 和固件版本(我在嵌入式系统上看到过),但我不知道如何在我的 linux 机器上实现这一点(openSUSE 10.3)和一个 USB CF 卡写入器。

还有人知道吗?

非常感谢, 克里斯

【问题讨论】:

    标签: linux bash usb


    【解决方案1】:

    除了使用 lsusb,你还可以试试 dbus。

    这是一个示例 python 代码,它应该列出硬件层次结构中的所有 scsi_host 父级。

    import dbus
    bus = dbus.SystemBus()
    hal = bus.get_object ('org.freedesktop.Hal',
                u'/org/freedesktop/Hal/Manager')
    hal_manager = dbus.Interface(hal, u'org.freedesktop.Hal.Manager')
    volume_udi_list = hal_manager.FindDeviceByCapability('scsi_host')
    for udi in volume_udi_list:
        # inspect all scsi_host devices
        dev = bus.get_object ( u'org.freedesktop.Hal', udi)
        volume = dbus.Interface(dev, u'org.freedesktop.Hal.Device')
        # get their parent
        parent = volume.GetProperty('info.parent')
        dev = bus.get_object ( u'org.freedesktop.Hal', parent)
        volume = dbus.Interface(dev, u'org.freedesktop.Hal.Device')
        # Here we can find vendor id for usb-storage devices
        props = volume.GetAllProperties()
        print "\n".join(("%s: %s" % (k, props[k]) for k in props))
    

    【讨论】:

    • 请注意,只有读卡器被分配了usb vendor-id,CF本身没有。如果您没有使用 lsbus 看到它,则表示它没有连接到 USB 总线。无论如何,使用 dbus,您可以探索树结构以查看可用的信息类型。
    【解决方案2】:

    你可以试试

    cat /proc/scsi/scsi
    

    看看你是否有有意义的信息。因为CF卡有PID/VID并不代表是USB读卡器导出的。

    【讨论】:

    • 好像没有导出……显示cf卡rw设备信息,插卡时没有变化。
    【解决方案3】:
    hdparm -i /dev/sda
    

    可以告诉您大多数 ATA 磁盘的型号、固件版本和序列号(包括,我假设是 CF“磁盘”)。

    smartctl -a /dev/sda
    

    还会告诉您很多关于随机磁盘的信息,包括型号、序列号、固件、容量,以及有关磁盘总体健康状况的一些统计数据。

    我相信这适用于 CF 磁盘,就像它适用于 SATA 或 PATA 磁盘一样,尽管我现在没有可以检查的。

    【讨论】:

    • 感谢您的建议。我用 3 个不同的读卡器尝试了这些命令(加上 sdparm),但它们都不起作用……读卡器似乎没有导出此信息。不过,这些命令适用于我的固定硬盘。
    【解决方案4】:

    看看lsusbcat /proc/scsi/usb-storage/*的输出

    【讨论】:

    • 谢谢,但这仅显示有关 cf 卡设备的信息,但没有有关插入的 cf 卡的信息...
    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 2012-04-22
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2020-11-30
    相关资源
    最近更新 更多