如何读出CF卡的供应商ID

时间:2009-11-04 07:42:43

标签: linux bash usb

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

我知道有可能以某种方式读出cf卡的供应商ID和固件版本(我在嵌入式系统上看到它),但我不知道如何在我的linux盒子上实现它(openSUSE 10.3)和一个usb cf卡片作家。

还有其他人知道吗?

非常感谢, 克里斯

4 个答案:

答案 0 :(得分:2)

除了使用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))

答案 1 :(得分:1)

您可以尝试

cat /proc/scsi/scsi

看看你是否有有意义的信息。因为CF卡有PID / VID并不意味着它是由USB读卡器输出的。

答案 2 :(得分:1)

hdparm -i /dev/sda

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

smartctl -a /dev/sda

还会告诉你很多关于随机磁盘的信息,包括型号,串口,固件,容量,以及一些关于磁盘一般健康状况的统计信息。

我相信这适用于CF磁盘,就像SATA或PATA磁盘一样,虽然我现在没有在这里查看。

答案 3 :(得分:0)

查看lsusbcat /proc/scsi/usb-storage/*

的输出