网络 USB 闪存盘

网络 USB 闪存盘

有没有一种产品可以插入计算机并显示为 USB 闪存驱动器,而实际上它也是 Samba / FTP 服务器?类似于 Eye-Fi 卡 (www.eye.fi),但有线且更易于配置。它也可以是一种特殊的数据传输电缆,允许连接完全独立的联网计算机。目标计算机只能看到 USB 棒,不需要特殊驱动程序,也不需要在此计算机上更改网络配置。

Clarification_001:目标计算机(或嵌入式设备)必须能够写入此 USB“棒”。但是,如果数据在网络上可见,但有延迟,比如说几分钟,那就没问题了。此“棒”可以每隔几分钟以批处理模式在闪存和网络之间复制一次。顺便说一句:我迫切需要从难以联网的嵌入式设备中收集日志。

Clarification_002:进一步的研究让我发现了一种名为“USB 总线/协议分析仪”的设备。
例如: http://www.ellisys.com/products/usbex200/index.php 这些可能可以完成工作。它们很贵($800-$3000++)。在内部,它们必须复制 USB 数据,我推断我正在寻找的设备价格应该低于 500 美元。

TIA,拉迪姆

答案1

你让我对这个感兴趣。我找不到“现成的”解决方案,但我对硬件有所了解,并且对实现方案也有一个大致的了解。(定价可能超出了你的预期,但如果这是针对真正的生产设备,你可能能够达成批量交易。)

PLX NET2280 USB 控制器芯片支持目标模式。它已被 NET2282 取代,您可以在此处找到有关它的更多信息:http://www.plxtech.com/2282

Linux“USB Gadget”API 支持此控制器。有一个“快速开发工具包”,其中的控制器位于 PCI 卡上,随时可用。

假设您尝试与之通信的设备使用的是 FAT 文件系统(通常是使用 USB 存储的嵌入式设备的最低标准),您可以实现虚拟 FAT 卷,并在 USB 主机未使用它时使用 Linux 计算机上的环回挂载对其进行访问。由于 FAT 不是多写入器文件系统,因此您必须实现某种协议来处理主机和目标之间的争用。我会将文件作为 FAT 卷导出到 USB 主机,并观察对该卷的写入访问是否在一段时间内处于静止状态,此时我会介入并进行更改。

您的目标很有可能正在缓存(或者至少假设 USB 存储的状态不会从其下方改变)。可能的“出路”如下:如果您插入的主机对目标“消失”和“重新出现”没有问题,您可以在上述静止期间“拔下”电源,然后立即“插入”,新的空文件系统已准备就绪。

如果这是针对任何 USB 主机的通用用途,那么您将始终会遇到与某些设备的兼容性问题,这些设备不希望 USB 目标上除了哑存储之外还有任何东西。(看看 Eye-Fi 如何解决这个问题会很有趣。)另一方面,如果您这样做是为了单一用途,那么您可能会非常熟悉主机设备的代码并找出如何最好地与其交互。

真是个有趣的想法。从本质上来说,这并非是“服务器故障”问题,但仍然很有趣!要实现这一点,我认为您需要一些熟悉嵌入式领域工作的硬核 USB 黑客。

答案2

是的 - 这应该是完全可能的,只要您不要求在计算机上看到与在网络上相同的存储。

如果您确实希望看到相同的结果,则此类配置需要某种多挂载文件系统。您尝试通过网络文件系统协议和块级别导出相同的数据。

如果存储设备只允许计算机以只读方式安装其存储,您可能可以(或多或少)摆脱这种情况。大多数情况下都可以 :)

相关内容