Szukam sposobu, aby Pi działał jako klient USB, a maskarada jako dysk flash.
Widziałem wiele sugestii, jednak większość z nich jest już stara (ponad 1 rok) i niejasna / niepełna - chciałbym prosić o odświeżenie tego, co zadziałało, a co nie itd.
Istnieje również wiele sugestii dotyczących używania Pi jako urządzenia typu NAS. To nie zadziała dla moich celów, ponieważ mam „głupi” host, który akceptuje tylko dyski flash (i chcę użyć Pi, aby uczynić go „inteligentniejszym”)
podsumowanie sugestii, które już widziałem:
- emulować klienta USB za pomocą pinów GPIO
- emuluj połączenie szeregowe przez GPIO, a następnie użyj istniejących kabli, aby przejść z portu szeregowego na USB
- używając modelu A, użyj oprogramowania, aby przekonać pi do działania jak klient
- za pomocą kabla USB host-to-host (nie jestem pewien, czy widziałem takie, które obsługują linux ..)
czy ktoś mógłby bardziej szczegółowo wyjaśnić niektóre z proponowanych rozwiązań?
PS - Nie potrzebuję ani nie oczekuję wysokiej wydajności z tej konfiguracji, szybkości USB 1.1 byłyby wystarczające.
edytuj: Byłbym również zainteresowany wszelkimi alternatywami, które mogłyby zapewnić tę funkcjonalność, jednak nie widziałem jeszcze żadnych „inteligentnych” pendrive'ów USB ani wariantów Android-on-a-stick.
usbnet
kierowcy. Mają stronę z kilkoma wzmiankami; wygląda na nieaktualny, więc może być więcej. Zanim cokolwiek kupisz, sprawdź.Odpowiedzi:
Miałbyś szczęście, gdyby porty USB na PI były OTG, a nie USB Host.
Może powinieneś rozważyć inne urządzenie, ponieważ żadne z sugerowanych przez Ciebie rozwiązań może nie być praktyczne:
emulować klienta USB za pomocą pinów GPIO: Teoretycznie można emulować USB za pomocą pinowania bitowego. Może to spowodować dość duże obciążenie programowe w zakresie rozwoju oprogramowania. Rozwiązanie będzie stosunkowo trudne do wdrożenia. Teoretycznie jest to możliwe, ale musisz przeprowadzić analizę kosztów i korzyści.
emuluj połączenie szeregowe przez GPIO, a następnie użyj istniejących kabli, aby przejść z portu szeregowego na USB: To rozwiązanie nie spełni twojego zadania, ponieważ Ty (raczej Twój DUMB Host) chciałbyś emulacji „Mass Storage Device” (typ urządzenia 0x08), a nie Emulacja urządzenia „Komunikacja i kontrola CDC” (typ urządzenia 0x02).
używając modelu A, użyj oprogramowania, aby przekonać pi do działania jak klient: niejasne, co zostało zasugerowane
za pomocą kabla USB host-host (nie jestem pewien, czy widziałem takie, które obsługują system Linux). W takim przypadku oba urządzenia zobaczą urządzenie pamięci masowej podłączone do kontrolera hosta. Dzięki tej metodzie Twój Raspberry pi pojawi się jako urządzenie pamięci masowej eksportujące pamięć opartą na karcie SD. Dzięki temu rozwiązaniu możesz rozważyć, jaki typ pamięci chcesz wyeksportować do hosta DUMB. Twój host DUMB może nie eksportować się jako urządzenie pamięci masowej. W tym momencie będziesz mieć inne opcje USB niż Raspberry Pi.
źródło
Istnieje teraz wariant Pi zero, który może robić to, co chciałem, a Adafruit przygotował dla niego tutorial:
https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview
Oficjalna nazwa tego systemu to „gadżet USB” i wymaga jedynie kabla OTG.
Nie byłem w stanie tego przetestować, ponieważ Pi zero są wszędzie niedostępne, ale myślę, że jest to obecnie najlepsza droga
źródło