首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Linux中检测USB海量存储弹出/卸载

在Linux中检测USB海量存储弹出/卸载
EN

Stack Overflow用户
提问于 2009-08-28 09:18:38
回答 4查看 7.6K关注 0票数 3

我正在使用Linux中的USB小工具将一个分区作为可移动的g_file_storage海量存储设备导出到主机PC (Windows、Linux、MAC)。

所有这些主机操作系统(可以)自动挂载可移动磁盘并毫无问题地访问它,我正在寻找一种方法来检测主机是否已弹出/卸载磁盘。

到目前为止,我发现的唯一方法仅限于Windows XP。当用户选择“安全移除硬件”时,XP会将USB设备置于挂起模式,该模式可在远程端检测到。由于某些原因,这在Vista中不起作用。

EN

回答 4

Stack Overflow用户

发布于 2009-09-07 21:31:39

我也遇到过这个问题。

我的嵌入式USB只读大容量存储项目监视来自主机的SCSI命令。对于Mac (10.5):在插件上,OS驱动程序会很好地告诉设备防止介质移除(SCSI命令防止/允许介质移除)。我的设备接受此命令。稍后,当用户发出应该弹出设备的信号时,OS X将再次发送带有ALLOW标志的阻止/允许删除,然后发送SCSI START/STOP指示停止(或弹出,无法记住)。漂亮的。

但是,Windows XP似乎只是停止发送SCSI命令TEST UNIT READY。我观察到,“安全删除硬件”没有发送任何SCSI信号,它只是导致测试单元就绪信号停止出现,它每秒都在这样做。基本上,Windows只是沉默不语。

测试单元就绪超时可以在Windows下工作,但它不是一种检测设备停止条件的糟糕方法。此外,它不会在OS X上工作,因为OS X不会像Windows那样每秒since我的设备;我会得到一个假阳性。

更新2009年11月15日

桑德加德向你报告。

这在很大程度上取决于设备对USB大容量存储类SCSI“查询”命令的响应本身是“可移动的”还是“固定的”。

如果标志显示为removable,我可以判断Windows XP用户是否已“停止”我的设备的唯一方法就是每秒停止执行测试单元就绪命令。如果该标志没有显示可移除,则没有常规的测试单元就绪命令流。USB暂停也不能指望,在我的测试中,大约1/4的“安全删除”没有发送USB暂停。不知道为什么不一致。因此,如果你想要确定,我所能做的最好的建议仅仅是为了与WINDOWS XP兼容,将查询响应为“可移除的”,寻找常规的测试单元就绪命令,然后当它们停止时,就认为你自己被安全地移除了。

OS (10.6)则是另一回事。正如我在上面写的,它更有礼貌。它发送SCSI START/STOP来启动或关闭设备,有时完全独立,无需用户输入。但这意味着,如果你将STOP解释为用户已经结束,并以任何丑陋的方式断开设备内部的连接,那么当OS X试图再次旋转磁盘时,它可能会变得非常困惑。如果你的设备被标记为可移动,OS X将在停止之前发送一个允许删除命令(或者在这种情况下是弹出的吗?),这将是一个很好的迹象,表明它是通过的。

我没有详尽地尝试不同的配置。我的应用程序是只读的,有两个分区,必须标识为不可移动,因为Windows XP拒绝为可移动USB驱动器确认多个分区(OS X无论哪种方式都没有问题)。所以我的大部分测试都是在这个配置中进行的。

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2009-08-29 14:05:30

遗憾的是,我不能给出解决方案,因为我对这个主题并不是很熟悉,但几乎没有什么建议。

但是,你可以开始检查解决方案的选择很少。

  • Mer (maemo opensource fork)是一个固件/发行版,适用于一堆不同种类的小工具。当您将这类设备插入usb主机时,它会自动挂载,并且还会注意到usb主机的卸载。肯定会有一些东西需要你去做。你也可以在irc.freenode.net
  • If中删除到#mer你只能通过usb导出,如果它有客户端连接,你可以以某种方式监控usb驱动程序?libusb和gadget usb api可能提供了合适的方式...
票数 1
EN

Stack Overflow用户

发布于 2009-08-28 09:59:27

我不认为主机操作系统必须向小工具发送任何信号。我对弹出操作的理解是,主机操作系统不再与小工具有任何关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1345901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档