Come posso utilizzare la modalità di destinazione in Linux con USB?

Kernel 3.5 introduce:

Questa release include un driver per l'utilizzo di una connessione IEEE-1394 come un trasporto SCSI. Ciò consente di esporre i dispositivi SCSI ad altri nodes sul bus Firewire, ad esempio unità disco fisso. È una funzionalità simile a Firewire Target Disk Mode su molti computer Apple.

Questa release aggiunge anche un driver per gadget usb che fa lo stesso con USB. Il driver support due protocolli USB supportti che sono BBB o BOT (Bulk Only Transport) e UAS (USB Attached SCSI). BOT viene pubblicizzato su interface alternativa 0 (primaria) e UAS è sull'interface alternativa 1. Entrambi i protocolli possono funzionare su USB 2.0 e USB 3.0. UAS utilizza la funzionalità USB 3.0 chiamata supporto flussi.

http://kernelnewbies.org/Linux_3.5

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

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

USB, d'altra parte, ha una stretta distinzione tra l'host (il PC) ei dispositivi. Se l'hardware può funzionare come host o come dispositivo (o entrambi, nel caso di USB-On-The-Go) dipende da cosa è stato progettato il chip di interface USB.

Linux viene eseguito su entrambi i PC e sui dispositivi, quindi dispone di driver per entrambi i tipi di interfacce USB. Tuttavia, tutti i driver "USB Gadget" richiedono che il chip di interface supporti la modalità di periferica e nessuno dei controller integrati nei PC fa.

La tua unica possibilità per eseguire questo codice sarebbe utilizzare un dispositivo incorporato, come un router, una casella NAS o un telefono.

Frome il codice sotto questo messaggio, è ansible 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 

Ciò dimostra che USB_GADGET_TARGET è stato aggiunto, se abilita questa opzione nel kernel e ricompilata / reinstalla il kernel, allora sarai in grado di utilizzare la modalità di destinazione in linux con USB. Si noti che è necessario abilitare anche TARGET_CORE .

Ulteriori informazioni sono disponibili all'indirizzo: