Jak udostępnić folder jako urządzenie pamięci masowej USB (z Raspberry Pi)

13

Chciałbym zrobić coś bardzo prostego ... w mojej głowie.

Mam „starą” ramkę do zdjęć z portem USB i gniazdem karty SD (ale bez sieci), który chciałbym zsynchronizować z moim „folderem zdjęć” na serwerze NAS

Ponieważ nie mogę się doczekać zakupu PI, chciałbym wiedzieć, jak to osiągnąć ... tanio ($ i moc obliczeniowa).

Moim głównym założeniem byłoby połączenie obu na USB.

Patrząc na inne odpowiedzi, znalazłem Podaj dysk twardy komputera jako pamięć masową USB i urządzenie USB WiFi WiFi, które może emulować wirtualne urządzenie pamięci masowej dla domowego odtwarzacza wideo i na płycie PI Emuluj urządzenie pamięci masowej USB

Z tego, co znalazłem do tej pory, mam dwie opcje: kabel USB Host-to-Host lub adapter Wi-Fi na USB (oba są tak drogie jak sam PI)

Problem polega na tym, że oba urządzenia są tylko w systemie Windows i żadne z nich nie pozwala wybrać określonego folderu do udostępnienia.

Wracając do mojego celu, czy ktoś z was ma pomysł, jak podłączyć oba urządzenia przez USB?

Pytanie dodatkowe: czy istnieje sposób, aby zrobić to wiele razy na tym samym „serwerze”, aby połączyć różne foldery z różnymi klientami (inne ramki / radia / ...)?

Dzięki za czas poświęcony na przeczytanie mojego (długiego) pytania!

Cerber
źródło
@MizukiOshiro Będę, ale z tego, co znalazłem, nie będzie to możliwe ze względu na specyfikację USB. Zadałem to pytanie na wszelki wypadek
Cerber
Niektóre ramki mają funkcję „drugiego monitora”, która umożliwia wypychanie ramek zakodowanych w formacie JPEG z komputera do ramki przez port podrzędny. Używam tej funkcji do wyświetlania wykresów generowanych przez RRDTool do monitorowania serwera. Przykład: youtube.com/watch?v=OINZfcV7EQ0
Wydaje się, że nowa płyta IO dostarczana z Compute Module Development Kit ma złącze USB slave ... jak można ją uruchomić?
Kozuch
1
Wiem, że to stare, ale obecnie jest łatwe: raspberrypi.org/magpi/pi-zero-w-smart-usb-flash-drive
multithr3at3d

Odpowiedzi:

6

Zasadniczo protokół USB wymaga, aby jedno urządzenie działało jako urządzenie nadrzędne, a inne jako urządzenia podrzędne. Połączenia master-master nie są obsługiwane. Urządzenia nadrzędne zwykle mają złącza typu A: komputery, ramki do zdjęć, które obsługują zewnętrzne nośniki USB itp. Urządzenia podrzędne są typowymi nośnikami USB, myszami itp. Urządzenie nadrzędne zasila urządzenie slave za pośrednictwem magistrali USB.

Aby zmętnieć wodę, specyfikacja USB OTG pozwala urządzeniom, które ją obsługują, zachowywać się zarówno jako master, jak i slave (niektóre telefony z Androidem itp.).

Twoja ramka na zdjęcia jest urządzeniem nadrzędnym, potrzebujesz Raspberry Pi działającego jak niewolnik. O ile mi wiadomo, jest to raczej trudne, jeśli w ogóle możliwe: jako komputer Raspberry Pi obsługuje tryb master USB, ale najwyraźniej tryb USB slave powinien być również możliwy na niektórych urządzeniach. Cytując forum , o którym wspomniałeś w swoim pytaniu:

Model B ma wbudowany 2-portowy hub USB, który nie wie, jak działać jako urządzenie USB. Model A łączy bezpośrednio interfejs USB procesora, który można skonfigurować jako urządzenie USB lub host USB.

Oczywiście to nie zadziała, dopóki ludzie nie będą mieli Modelu A do opracowania, a ktoś będzie miał talent, czas, skłonność i dokumentację do napisania sterownika urządzenia.

W modelu B powinno być możliwe przesyłanie bitów urządzenia USB o niskiej prędkości przez GPIO.

To wszystko będzie wymagać bardzo znacznego włamania, wielu godzin programowania / debugowania. Moim zdaniem strata czasu.

Moja sugestia: wyrzuć swoją ramkę na zdjęcia, zdobądź używany / tani mały wyświetlacz LCD, podłącz go do Raspberry Pi i użyj go jako ramki na zdjęcia. O wiele łatwiej, szybciej itp.

haimg
źródło
2
Lub po prostu interfejs istniejącego wyświetlania ramki za pomocą złącza LCD lub GPIO.
Ignacio Vazquez-Abrams,
Z mojego doświadczenia, interfejs LCD za pomocą LVDS jest daleki od trywialnego.
haimg
W każdym razie wydaje się, że obaj macie dobre rozwiązanie mojego pytania: nie marnujcie czasu ze złączem USB :)
Cerber
Wydaje się, że nowa płyta IO dostarczana z Compute Module Development Kit ma złącze USB slave ... jak można ją uruchomić?
Kozuch