Come posso usare la modalità target in Linux con USB?


7

Il kernel 3.5 introduce:

Questa versione include un driver per l'utilizzo di una connessione IEEE-1394 come   Trasporto SCSI. Ciò consente di esporre i dispositivi SCSI ad altri nodi su   il bus Firewire, ad esempio i dischi rigidi. È un simile   funzionalità su Firewire Target Disk Mode su molti computer Apple.

Questa versione aggiunge anche un driver usb-gadget che fa lo stesso con   USB. Il driver supporta due protocolli USB supportati che è BBB   o BOT (solo trasporto di massa) e UAS (USB Attached SCSI). BOT è   pubblicizzato su interfaccia alternativa 0 (primaria) e UAS è attivo   Interfaccia alternativa 1. Entrambi i protocolli possono funzionare su USB 2.0 e USB   3.0. UAS utilizza la funzionalità USB 3.0 denominata supporto per i flussi.

http://kernelnewbies.org/Linux_3.5

Ho un Arch Linux con kernel 3.5.3-1 e voglio provare questa funzione.


Dai un'occhiata a SCST e libusb-gadget (ultimo aggiornamento 3 anni fa), che potrebbe essere utile.
harrymc

Risposte:


4

FireWire è un'architettura peer-to-peer, quindi tutto ciò che è richiesto a un PC per fingere di essere un disco rigido è un software.

USB, d'altra parte, ha una netta distinzione tra l'host (il PC) e i dispositivi. Se il tuo hardware può funzionare come host o come dispositivo (o entrambi, nel caso di USB-On-The-Go) dipende da ciò che il tuo chip di interfaccia USB è stato progettato per fare.

Linux funziona su entrambi i PC e sui dispositivi, quindi ha i driver per entrambi i tipi di interfacce USB. Tuttavia, tutti i driver "USB Gadget" richiedono che il chip dell'interfaccia supporti la modalità dispositivo e nessuno dei controller integrati nei PC.

L'unica possibilità di eseguire questo codice è quella di utilizzare un dispositivo incorporato, come un router, una scatola NAS o un telefono.


2

Frome il codice sotto quel messaggio, puoi vedere le patch. Quello pertinente per te è:

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

Questo lo dimostra USB_GADGET_TARGET è stato aggiunto, se abiliti questa opzione nel tuo kernel e ricompilerai / reinstallerai il kernel, allora sarai in grado di usare la modalità target in linux con USB. Nota che devi abilitare TARGET_CORE anche.

Maggiori informazioni possono essere trovate a:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.