300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux检测usb程序占用 在Linux中检测USB大容量存储器弹出/卸载

linux检测usb程序占用 在Linux中检测USB大容量存储器弹出/卸载

时间:2020-04-30 19:14:21

相关推荐

linux检测usb程序占用 在Linux中检测USB大容量存储器弹出/卸载

我也遇到了这个问题.

我的嵌入式USB只读大容量存储项目监视主机中的SCSI命令.对于Mac OS X(10.5):在插件上,OS X驱动程序可以很好地告诉设备防止介质被移除(SCSI命令PREVENT / ALLOW MEDIUM REMOVAL).我的设备接受此命令.稍后,当用户发出设备应该退出的信号时,OS X再次非常好地再次发送带有ALLOW标志的PREVENT / ALLOW REMOVAL,然后发送SCSI START / STOP指示停止(或退出,不记得了).美丽.

但是,Windows XP似乎只是停止发送SCSI命令TEST UNIT READY.我看过; “安全删除硬件”不会发送任何SCSI信号,而只会导致TEST UNIT READY信号停止发出,这大约是每秒进行一次.基本上,Windows只会崩溃.

TEST UNIT READY超时可以在Windows上使用,但这是检测设备停止条件的糟糕方法.另外,由于OS X不能像Windows一样每秒对我的设备执行ping操作,因此它不适用于OSX.我会得到误报.

11月15日更新

Sondergaard在这里汇报.

很大程度上取决于设备对USB Mass-Storage-Class SCSI“查询”命令的响应自身是否标识为“可移动”或“固定”.

如果该标志显示为可移动,那么我可以判断Windows XP用户是否“停止”了我的设备的唯一方法是每秒准备好退出测试单元的命令.如果该标志未标明可移动,则没有常规的“测试单元就绪”命令流. USB挂起也不能算在内,大约有1/4的测试“安全删除”没有发送USB挂起.不知道为什么它不一致.因此,如果您想确定,我为与WINDOWS XP仅兼容而做出的最佳建议是将“可移动”作为对INQUIRY的响应,寻找常规的“ TEST UNIT READY”命令,然后当它们停止运行时,请考虑将您安全地删除.

OS X(10.6)是另一回事.正如我在上面所写,这很有礼貌.它发送SCSI START / STOP来启动或降速设备,有时无需用户输入即可全部独立运行.但这意味着,如果您将STOP解释为说用户正在通过,并以设备内部的任何丑陋方式断开连接,则OS X在尝试再次旋转磁盘时可能会感到非常困惑.如果您的设备被标记为可移动,则OS X将在STOP之前发送ALLOW REMOVAL命令(或者在这种情况下是EJECT?),这表明它已经通过.

我没有穷尽尝试其他配置.我的应用程序是只读的,具有两个分区,并且必须标识为“不可移动”,因为Windows XP拒绝确认多个可移动USB驱动器分区(OS X两种方式都没有问题).因此,我的大部分测试都是在这种配置下进行的.

希望这可以帮助.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。