Como posso usar o modo de destino no Linux com USB?

7

O Kernel 3.5 introduz:

This release includes a driver for using an IEEE-1394 connection as a SCSI transport. This enables to expose SCSI devices to other nodes on the Firewire bus, for example hard disk drives. It's a similar functionality to Firewire Target Disk Mode on many Apple computers.

This release also adds a usb-gadget driver that does the same with USB. The driver supports 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 USB 2.0 and USB 3.0. UAS utilizes the USB 3.0 feature called streams support.

link

Eu tenho um Arch Linux com o kernel 3.5.3-1 e quero experimentar este recurso.

    
por dash17291 31.08.2012 / 10:14

2 respostas

4

FireWire é uma arquitetura peer-to-peer, então tudo que é necessário para um PC fingir ser um disco rígido é algum software.

O

USB, por outro lado, tem uma distinção estrita entre o host (o PC) e os dispositivos. Se o seu hardware pode ser executado como um host ou como um dispositivo (ou ambos, no caso do USB-On-The-Go) depende do que seu chip de interface USB foi projetado para fazer.

O Linux roda em PCs e dispositivos, por isso tem drivers para ambos os tipos de interfaces USB. No entanto, todos os drivers "USB Gadget" exigem que o chip da interface suporte o modo de dispositivo, e nenhum dos controladores embutidos em PCs.

Sua única chance de executar este código seria usar algum dispositivo incorporado, como um roteador, uma caixa NAS ou um telefone.

    
por 08.09.2012 / 00:08
2

Frome o código sob essa mensagem, você pode ver as correções. O que é relevante para você é:

--- 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

Isto ilustra que USB_GADGET_TARGET foi adicionado, se você habilitar esta opção em seu kernel e recompilar / reinstalar o kernel, então você poderá usar o modo de destino no linux com USB. Note que você tem que ativar TARGET_CORE também.

Mais informações podem ser encontradas em:

por 04.09.2012 / 00:45

Tags