Serve file su USB


12

Vorrei poter servire una sezione del file system della mia scatola tramite USB su un altro computer. Ad esempio, se i file si trovano nella casella A e sto leggendo dalla casella B, allora B monterebbe A, vedrebbe quei file e li monterebbe come un dispositivo di file system (cioè, come una chiavetta USB).

Idealmente, la soluzione funzionerebbe per qualsiasi distribuzione Linux, ma molto probabilmente lo eseguirò su varianti Debian.

Per favore fatemi sapere se avete bisogno di ulteriori informazioni. Saluti.


4
Non puoi semplicemente collegare due computer con un cavo USB: il protocollo elettrico USB non è simmetrico e richiede un computer a un'estremità e un dispositivo periferico all'altra estremità (ecco perché le spine non sono uguali). Hai già un gadget hardware specifico che desideri utilizzare? Altrimenti Ethernet (o Firewire) sarebbe meglio adattato, per creare una rete tra i due computer.
Gilles 'SO- smetti di essere malvagio'

2
@Gilles - Grazie per la risposta. Dalla tua risposta, immagino che la mia domanda sia davvero come far sembrare il mio computer e / o agire come un dispositivo periferico tramite la sua connessione / hub USB. Cosa separa una periferica e una macchina host? Saluti.
Sam Bisbee,

Risposte:


11

Dalle informazioni fornite, suppongo che:

  1. Hai un dispositivo black box con cui puoi comunicare solo collegando un dispositivo di archiviazione di massa USB.
  2. Collegare e scollegare fisicamente un'unità USB non è accettabile, non si avrà accesso fisico dopo la distribuzione.

Se qualcuno di questi presupposti è falso, avrai un momento più facile.

Quello che stai cercando è un modo per far apparire un computer come dispositivo di archiviazione USB. In linea di principio, questo non dovrebbe richiedere molta elettronica - penso che il gadget giusto potrebbe essere prodotto in serie per non più di un paio di dollari più spese di spedizione. Ma non riesco a trovare un riferimento al gadget giusto esistente.

Usare semplicemente un cavo USB da computer a computer non farà il trucco: simulano una rete Ethernet e la scatola nera non parla Ethernet. E i convertitori da memoria USB a LAN non aiutano, vanno nella direzione sbagliata.

  1. È possibile progettare un braccio robot che scolleghi una chiavetta USB dalla scatola nera e la colleghi a un computer. Ora che il suggerimento ovvio ma poco pratico è stato fatto ...

  2. Potresti progettare il gadget e scrivere un driver per esso. Ma questo potrebbe essere fuori dalla tua fascia di prezzo, soprattutto se non hai bisogno di milioni di unità.

  3. Potrebbe esserci un sofisticato dispositivo NAS in grado di comunicare con diversi computer su iSCSI e USB (le ultime due parole sono la parte difficile).

  4. Alcuni telefoni cellulari e PDA possono fungere da dispositivo di archiviazione USB e dispongono inoltre di una connessione GSM, wifi o Ethernet. Ma spesso fungono da dispositivi di archiviazione solo quando sono spenti, quindi non so se ce ne sia uno che possa essere usato come bridge o server.

  5. Ecco una discussione su un requisito in qualche modo simile. L'unica soluzione possibile che suggerisce è questo bridge USB-storage-to-wifi , che sembra adatto, ma è costoso.

  6. Esistono switch USB (noti anche come hub di condivisione) che consentono di condividere un dispositivo USB tra due computer. Puoi usarne uno per condividere un dispositivo di archiviazione tra la scatola nera e un computer. Il problema è che di solito richiedono all'utente di premere un pulsante per passare da un dispositivo all'altro, ma se ne trovi uno in cui l'interruttore può essere controllato da remoto, hai una soluzione.


Grazie per la tua premurosa risposta Gilles. Hai ragione nei tuoi presupposti. Il PDA / bridge mobile è un'idea molto interessante alla quale dovrò riflettere ancora. Le altre idee, che sembrano essere principalmente focalizzate su LAN o robot, sono fuori discussione perché non c'è LAN nell'ambiente. Proverò a mettere insieme alcuni POC e riferirò tra un giorno o due. Grazie ancora!
Sam Bisbee,

2

Penso che ciò possa essere realizzato con un cavo USB da host a host e il driver usbnet Linux. La compatibilità hardware e i dettagli su come configurarlo in Linux sono disponibili su: http://www.linux-usb.org/usbnet/


3
È Ethernet su USB, il che va bene se il dispositivo lo supporta ... ma ho l'impressione che non lo faccia.
Gilles 'SO- smetti di essere malvagio' il

@Gilles - Hai ragione, non credo che la scatola nera parli Ethernet. Detto questo, la scatola nera potrebbe ancora riprendersi e fare un po 'di magia se rileva semplicemente che c'è una connessione USB (tramite il cavo da A a A). Lo scopriremo tra un giorno o due. Saluti.
Sam Bisbee,

Beh, immagino che almeno i dispositivi elencati nella pagina del driver dovrebbero supportarlo ...
Riccardo Murri,

-1

Non vedo davvero come USB si inserisce qui? Perché non usi SAMBA o NFS per condividere i file tra quelle macchine? Forse non funziona per qualche motivo, quindi dovresti probabilmente aggiungere qualche spiegazione in più ...


Quei protocolli non funzioneranno, perché la macchina del lettore non è abilitata alla rete. L'unico punto I / O che devo ad esso è USB, da cui guarda e legge i file. Nell'ambiente finale senza test non sarò in grado di controllare la macchina del lettore (non conosco nemmeno il suo software), ma prenderà i miei file. Grazie!
Sam Bisbee,

-1

Anche se risolvi i problemi specifici di USB come far apparire un host USB come un dispositivo USB, incontrerai problemi nel montare il filesystem su due dispositivi diversi contemporaneamente.

Se Box A ha un disco (diciamo / dev / sdb1) ed è montato e usa i file su / dev / sdb1, cosa succede quando Box B monta vuole accedere a quei file? Al livello più basso, USB vorrà aspettarsi di gestire un dispositivo, non un filesystem.


3
Se il problema hardware viene risolto, c'è probabilmente un modo per mettere un blocco d'accesso in modo che solo una parte possa scrivere alla volta e che gli accessi in lettura ottengano una visione coerente. Alcune soluzioni consentiranno comunque a un solo computer di accedere allo spazio di archiviazione. Quindi sì, questa è una preoccupazione, ma non travolgente.
Gilles 'SO- smetti di essere malvagio' il

Sarà tremendamente difficile farlo senza montare e smontare il filesystem sul Box A mentre si accede al Box B (e viceversa). La maggior parte dei filesystem normali (senza cluster) hanno il diritto di presumere che i bit su disco che hanno montato non cambino al di sotto di essi. Un sacco di strutture in memoria non saranno sincronizzate. È necessario montare / smontare quando si passa da A a B o ottenere la collaborazione (ovvero scrivere un nuovo file system) del driver del file system nelle caselle A e B.
kbyrd,
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.