Podawaj pliki przez USB

12

Chciałbym móc obsługiwać część systemu plików mojego urządzenia przez USB na innym komputerze. Na przykład, jeśli pliki znajdują się w polu A, a ja czytam w polu B, to B zamontowałoby A, zobaczyłoby te pliki i zamontowało je jako urządzenie systemu plików (tj. Jak pamięć USB).

Idealnie byłoby, gdyby rozwiązanie działało dla każdej dystrybucji Linuksa, ale najprawdopodobniej uruchomię to na wariantach Debiana.

Daj mi znać, jeśli potrzebujesz więcej informacji. Twoje zdrowie.

Sam Bisbee
źródło
4
Nie można po prostu podłączyć dwóch komputerów kablem USB - protokół elektryczny USB nie jest symetryczny i wymaga komputera na jednym końcu i urządzenia peryferyjnego na drugim końcu (dlatego wtyczki nie są takie same). Czy masz już określony gadżet sprzętowy, którego chcesz użyć? W przeciwnym razie Ethernet (lub Firewire) byłby lepiej przystosowany do stworzenia sieci między dwoma komputerami.
Gilles „SO- przestań być zły”
2
@Gilles - Dziękujemy za odpowiedź. Z twojej odpowiedzi, wydaje mi się, że moje pytanie naprawdę dotyczy tego, jak sprawić, by mój komputer wyglądał i / lub działał jak urządzenie peryferyjne przez swoje połączenie USB / hub. Co odróżnia urządzenie peryferyjne od komputera hosta? Twoje zdrowie.
Sam Bisbee

Odpowiedzi:

11

Z podanych przez ciebie informacji przypuszczam, że:

  1. Masz urządzenie typu black box, z którym możesz się komunikować tylko poprzez podłączenie do niego urządzenia pamięci masowej USB.
  2. Fizyczne podłączanie i odłączanie dysku USB jest niedopuszczalne, po wdrożeniu nie będziesz mieć fizycznego dostępu.

Jeśli którekolwiek z tych założeń jest fałszywe, łatwiej ci będzie.

To, czego szukasz, to sposób, aby komputer wyglądał jak urządzenie pamięci USB. Zasadniczo nie powinno to wymagać dużej elektroniki - myślę, że odpowiedni gadżet mógłby być produkowany masowo za nie więcej niż kilka USD plus koszty wysyłki. Ale nie mogę znaleźć odniesienia do istniejącego gadżetu.

Samo użycie kabla USB typu komputer-komputer nie załatwi sprawy: symulują one sieć Ethernet, a czarna skrzynka nie mówi po Ethernet. Konwertery pamięci USB na LAN nie pomogą, idą w inną stronę.

  1. Możesz zaprojektować ramię robota, które odłącza pamięć USB od czarnej skrzynki i podłącza ją do komputera. Teraz, gdy padła oczywista, ale niepraktyczna sugestia ...

  2. Możesz zaprojektować gadżet i napisać dla niego sterownik. Ale może to być poza twoim zakresem cenowym, szczególnie jeśli nie potrzebujesz milionów jednostek.

  3. Może istnieć wyrafinowane urządzenie NAS , które może komunikować się z kilkoma komputerami przez iSCSI i USB (te dwa ostatnie słowa są trudną częścią).

  4. Niektóre telefony komórkowe i urządzenia PDA mogą działać jako urządzenie pamięci USB, a dodatkowo mają połączenie GSM, WiFi lub Ethernet. Ale często działają jako urządzenia pamięci masowej tylko wtedy, gdy są wyłączone, więc nie wiem, czy istnieje takie, które można by wykorzystać jako most lub serwer.

  5. Oto dyskusja na temat nieco podobnego wymagania. Jedynym możliwym rozwiązaniem, jakie sugeruje, jest ten most USB do przechowywania danych do Wi-Fi , który wygląda na odpowiedni - ale jest drogi.

  6. Istnieją przełączniki USB (inaczej huby udostępniania), które umożliwiają współdzielenie urządzenia USB między dwoma komputerami. Możesz użyć jednego z nich, aby współdzielić urządzenie pamięci między czarną skrzynką a komputerem. Problem polega na tym, że zwykle wymagają od użytkownika naciśnięcia przycisku w celu przełączenia między dwoma urządzeniami - ale jeśli znajdziesz takie, w którym przełącznikiem można sterować zdalnie, masz rozwiązanie.

Gilles „SO- przestań być zły”
źródło
Dziękuję za bardzo przemyślaną odpowiedź Gilles. Masz rację w swoich założeniach. Most PDA / mobile to bardzo fajny pomysł, który będę musiał przemyśleć. Inne pomysły, które wydają się być skoncentrowane głównie na sieciach LAN lub robotach, nie wchodzą w rachubę, ponieważ w środowisku nie ma sieci LAN. Spróbuję zebrać kilka POC i przekażę raport za dzień lub dwa. Dzięki jeszcze raz!
Sam Bisbee,
2

Myślę, że można to osiągnąć za pomocą kabla USB host-host i sterownika USB Linux. Kompatybilność sprzętu i szczegółowe informacje na temat konfigurowania tego w systemie Linux znajdują się na stronie : http://www.linux-usb.org/usbnet/

Riccardo Murri
źródło
3
To Ethernet przez USB, co jest w porządku, jeśli urządzenie to obsługuje ... ale mam wrażenie, że tak nie jest.
Gilles „SO- przestań być zły”
@Gilles - Masz rację, nie sądzę, aby czarna skrzynka mówiła w sieci Ethernet. To powiedziawszy, czarna skrzynka może nadal odbierać i działać trochę magii, jeśli po prostu wykryje połączenie USB (za pośrednictwem kabla A-to-A). Dowie się za dzień lub dwa. Twoje zdrowie.
Sam Bisbee,
Cóż, myślę, że przynajmniej urządzenia wymienione na stronie sterownika powinny go obsługiwać ...
Riccardo Murri,
-1

Naprawdę nie rozumiem, jak pasuje tutaj USB? Dlaczego nie używasz SAMBA lub NFS do udostępniania plików między tymi komputerami? Może to nie działa z jakiegoś powodu, więc prawdopodobnie powinieneś dodać trochę więcej wyjaśnień ...

tante
źródło
Te protokoły nie będą działać, ponieważ czytnik nie obsługuje sieci. Jedyny punkt wejścia / wyjścia, jaki mam, to USB, który obserwuje i odczytuje pliki. W końcowym, nie testowym środowisku nie będę w stanie kontrolować czytnika (nawet nie znam jego oprogramowania), ale zajmie moje pliki. Dzięki!
Sam Bisbee
-1

Nawet jeśli rozwiążesz specyficzne problemy związane z USB, takie jak sprawienie, aby host USB wyglądał jak urządzenie USB, napotkasz problemy z montażem systemu plików na dwóch różnych urządzeniach jednocześnie.

Jeśli Box A ma napęd (powiedzmy / dev / sdb1) i jest zamontowany i korzysta z plików w / dev / sdb1, co się stanie, gdy mount B będzie chciał uzyskać dostęp do tych plików? Na najniższym poziomie, USB będzie chciał spodziewać się obsługi urządzenia, a nie systemu plików.

kbyrd
źródło
3
Jeśli problem sprzętowy został rozwiązany, prawdopodobnie istnieje sposób na zablokowanie dostępu, aby tylko jedna strona mogła pisać naraz, a dostęp do odczytu zapewnia spójny widok. Niektóre rozwiązania i tak pozwolą tylko jednemu komputerowi na dostęp do pamięci. Tak, to jest problem, ale nie przytłaczający.
Gilles „SO- przestań być zły”
Będzie to okropnie trudne, aby to zrobić bez montowania i odmontowywania systemu plików na Boxie A podczas uzyskiwania do niego dostępu na Boxie B (i odwrotnie). Większość normalnych systemów plików (bez klastrów) ma pełne prawo zakładać, że zamontowane bity na dysku nie zmieniają się pod nimi. Kilka struktur w pamięci nie będzie zsynchronizowanych. Musisz albo zamontować / odmontować podczas przełączania między A i B, lub uzyskać współpracę (tj. Napisać nowy system plików) sterownika systemu plików na polach A i B.
kbyrd,