我正在编写一个bash脚本,用cf图片填充cf卡片。由于只允许指定的卡,我想检查USB cf卡写入器中是否插入了正确类型的cf卡。
我知道有可能以某种方式读出cf卡的供应商ID和固件版本(我在嵌入式系统上看到它),但我不知道如何在我的linux盒子上实现它(openSUSE 10.3)和一个usb cf卡片作家。
还有其他人知道吗?
非常感谢, 克里斯
答案 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)
查看lsusb
或cat /proc/scsi/usb-storage/*