内核 3.5 引入了:
此版本包含一个使用 IEEE-1394 连接作为 SCSI 传输的驱动程序。这可以将 SCSI 设备暴露给 Firewire 总线上的其他节点,例如硬盘驱动器。它的功能类似于许多 Apple 计算机上的 Firewire 目标磁盘模式。
此版本还添加了一个 usb-gadget 驱动程序,该驱动程序可对 USB 执行相同操作。该驱动程序支持两种 USB 协议,即 BBB 或 BOT(仅批量传输)和 UAS(USB 连接 SCSI)。BOT 在备用接口 0(主)上公布,而 UAS 在备用接口 1 上公布。这两种协议都可以在 USB 2.0 和 USB 3.0 上工作。UAS 利用了 USB 3.0 的流支持功能。
http://kernelnewbies.org/Linux_3.5
我有一个内核为 3.5.3-1 的 Arch Linux,想尝试一下这个功能。
答案1
FireWire 是一种点对点架构,因此将 PC 伪装成硬盘只需要一些软件。
另一方面,USB 严格区分主机(PC)和设备。您的硬件是否可以作为主机或设备运行(或者在 USB-On-The-Go 的情况下两者皆可)取决于您的 USB 接口芯片的设计用途。
Linux 既可以在 PC 上运行,也可以在设备上运行,因此它有适用于这两种 USB 接口的驱动程序。但是,所有“USB Gadget”驱动程序都要求接口芯片支持设备模式,而 PC 内置的控制器均不支持该模式。
运行此代码的唯一机会是使用一些嵌入式设备,例如路由器、NAS 盒或电话。
答案2
从该消息下的代码中,您可以看到补丁。与您相关的是:
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -798,6 +798,16 @@ config USB_MASS_STORAGE
Say "y" to link the driver statically, or "m" to build
a dynamically linked module called "g_mass_storage".
+config USB_GADGET_TARGET
+ tristate "USB Gadget Target Fabric Module"
+ depends on TARGET_CORE
+ help
+ This fabric is an USB gadget. Two USB protocols are supported that is
+ BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is
+ advertised on alternative interface 0 (primary) and UAS is on
+ alternative interface 1. Both protocols can work on USB2.0 and USB3.0.
+ UAS utilizes the USB 3.0 feature called streams support.
+
config USB_G_SERIAL
tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
help
这说明USB_GADGET_TARGET
已添加,如果您在内核中启用此选项并重新编译/重新安装内核,那么您将能够在 Linux 中使用 USB 的目标模式。请注意,您TARGET_CORE
也必须启用。
更多信息请访问: