Pi作为USB客户端


16

我正在寻找一种方法,让Pi充当USB客户端,并假扮成闪存驱动器。

我已经看到了很多建议,但是到目前为止,大多数建议已经过时(超过1年),而且含义模糊/不完整-我想要求重新整理一下哪些有效,哪些无效等等。

还有很多建议将Pi用作NAS型设备。由于我有一个只能接收闪存驱动器的“哑”主机(我想使用Pi使其“更智能”),因此这对我而言不起作用。

我已经看过的建议摘要:

  1. 通过GPIO引脚模拟USB客户端
  2. 通过GPIO仿真串行连接,然后使用现有电缆将串行电缆连接到USB
  3. 使用模型A,使用软件说服pi充当客户端
  4. 使用主机到主机的USB电缆(不确定我是否见过任何支持linux的设备。)

谁能更深入地解释其中一些建议的解决方案?

PS-我既不需要也不期望这种配置具有高性能,USB 1.1速度就足够了。

编辑:我也将对可以提供此功能的任何替代方案感兴趣,但是我还没有看到可以使用的任何“智能” usb棒或android-on-a-stick变体。


1
肯定有linux支持的电缆。这是usbnet驾驶员目标的一部分。他们的页面上提到了一些内容。它看起来已经过时,所以现在可能还会更多。在购买任何东西之前,请检查一下。
goldilocks

一些言论具体到模型中的这个位置
金发姑娘

您可能还会发现诸如usbip的项目:stackoverflow.com/a/19689740/544721linux-usb.org/gadget在组装解决方案中很有用。
Grzegorz Wierzowiecki 2015年

Answers:


6

如果PI上的USB端口是OTG而不是USB Host,那么您会很幸运。

也许您应该考虑使用其他设备,因为所建议的解决方案均不可行:

通过GPIO引脚仿真USB客户端: 理论上,可以使用引脚对引脚进行仿真来仿真USB。就软件开发而言,这可能会导致相当大的软件开销。该解决方案将相对难以实施。理论上是可行的,但您需要进行成本/收益分析。

通过GPIO仿真串行连接,然后使用现有的电缆从串行连接到USB: 此解决方案将无法满足您的目的,因为您(而不是DUMB主机)需要“ Mass Storage Device”仿真(设备类型0x08),而不是“通信和CDC控制”(设备类型0x02)设备仿真。

使用模型A,使用软件说服pi充当客户端: 不清楚您的建议

使用主机到主机的USB电缆(不确定我是否见过支持linux的主机。): 在这种情况下,两个设备都将看到一个与其主机控制器相连的Mass Storage设备。使用此方法,您的Raspberry pi将显示为大容量存储设备,并导出基于SD卡的存储。使用此解决方案,您可能要考虑要导出到DUMB主机的存储类型。您的DUMB主机可能不会将自己导出为大容量存储设备。此时,除了Raspberry Pi,您将拥有其他USB选项。


您会推荐哪种其他设备?(我希望能够使用wifi并能够运行Dropbox或bittorent同步或类似功能)
user2813274 2014年

您对维修DUMB主机的需求尚不清楚。需要更加清晰。
Chetan Bhargava 2014年

2
好的,今天我的车上有一个可以播放mp3的闪存驱动器-每当我想更改音乐时,都必须物理移动该闪存驱动器-我只想让设备与台式机上的设备同步,并且当前用于汽车的USB接口-同样,模型A Pi上的USB端口是OTG芯片(并且在模型B上,但是以太网端口禁用了该功能)- 来源
user2813274 2014年

让我们开始聊天(面包店),以免引起评论混乱:-)
Chetan Bhargava 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.