Konieczne będzie dodanie do komputera urządzenia USB / kontrolera urządzeń peryferyjnych, w przeciwieństwie do kontrolera hosta USB, z którym zwykle są dostarczane.
Coś takiego: https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3420E.html
Niestety musisz znaleźć sposób, aby podłączyć go do płyty głównej. Technicznie można to zrobić. Praktycznie trzeba będzie przeprojektować płytę główną, aby ją uwzględnić. Możesz mieć szczęście znaleźć magistralę SPI lub I2C odsłoniętą gdzieś na płycie głównej, aby umożliwić jej dodanie, ale zwykle są one podłączone bezpośrednio do tego, do czego są używane, chyba że używasz płyty deweloperskiej lub pojedynczego komputer pokładowy z odsłoniętym GPIO i innymi portami, takimi jak Raspberry Pi.
Inną opcją byłby kontroler USB On-the-Go. Płyty główne zaprojektowane dla urządzeń wbudowanych i przenośnych mają zwykle kontroler USB OTG (On-the-go), który może działać jako kontroler hosta lub urządzenia. Na przykład wyżej wspomniany Raspberry Pi ma kontroler On-the-Go, ale we wszystkich modelach oprócz Pi Zero, który jest ponownie podłączony do portu hosta lub wbudowanego koncentratora USB, uniemożliwiając korzystanie z funkcji urządzenia USB. BeagleBone Black ma port OTG.
To jednak nie wszystko - kiedy już dostaniesz sprzęt, będziesz potrzebować oprogramowania. Linux ma kilka przydatnych sterowników gadżetu USB jądra („gadżet USB” to inny termin określający urządzenie peryferyjne / urządzenie USB), takie jak g_serial i g_ethernet, które pozwalają podłączyć urządzenie do innego komputera i być widoczne jako urządzenie szeregowe lub Ethernet-przez-USB (istnieją inne sposoby na ujawnienie urządzenia jako pamięci masowej, które pozwalają na użycie pliku jako urządzenia blokowego i udostępnienie komputera jako gadżetu pamięci masowej). BeagleBone Black zazwyczaj ma tę funkcję domyślnie włączoną, więc możesz po prostu podłączyć ją do komputera przez USB i zobaczyć jako urządzenie sieciowe - i uważam, że pojawia się również jako urządzenie pamięci masowej za pomocą sterownika kompozytowego (który pozwala ma pojawiać się jako wiele typów urządzeń USB w ramach jednego połączenia. Pi Zero może z nich korzystać , ale domyślnie nie. W przypadku systemu Windows lub innych systemów operacyjnych prawdopodobnie prawdopodobnie będziesz musiał napisać ten sterownik urządzenia.
Teoretycznie możesz to zrobić. Możesz rozebrać komputer stacjonarny, spróbować gdzieś znaleźć nieużywaną kompatybilną magistralę na płycie głównej (najprawdopodobniej kilka nieużywanych styków w układzie scalonym kontrolera), lub sposób na rozszerzenie wewnętrznej magistrali I2C lub SPI, lub coś, co możesz oderwać i wymień i przylutuj na nim USB OTG lub układ kontrolera urządzenia. Następnie możesz zainstalować Linuksa i użyć sterownika gadżetu lub napisać własny dla innego systemu operacyjnego. Praktycznie, chyba że jesteś inżynierem elektroniki na najwyższym poziomie, nie będziesz w stanie tego zrobić. Przynajmniej dopóki ktoś nie wyjdzie z tym nieuchwytnym adapterem z urządzeniem lub portem OTG, który podłącza się do portu USB (teoretycznie można to zrobić za pomocą mikrokontrolera takiego Arduino podłączonego do pary układów kontrolera urządzenia USB), i pisze sterowniki, aby go uruchomić.
USB jest niesymetryczny: jedna strona to host, druga strona to urządzenie peryferyjne. Nie można sprawić, aby urządzenie peryferyjne działało jako host lub odwrotnie. Port USB może działać po obu stronach; nazywa się to USB w podróży i jest obecne na niektórych telefonach komórkowych i tabletach. Porty są fizycznie portami typu urządzenia, a nie portami typu host. Nigdy nie widziałem komputera z portem urządzenia. Wymaga to elektroniki na kontrolerze, nie wystarczy zrobić kabel, który pasuje na obu końcach.
Więc nie, nie będziesz mógł przekształcić komputera w urządzenie USB.
Jeśli chcesz używać komputera jako urządzenia pamięci USB, zamiast komputera możesz użyć telefonu komórkowego lub tabletu z połączeniem USB.
źródło
Możesz rozważyć użycie jednego ze specjalnych „mostkowanych kabli USB-USB”, czasami nazywanych „kablami sieciowymi USB”. Jak wspomniano w tych artykułach:
Umożliwiają przesyłanie plików między dwoma komputerami. Używam tego rodzaju kabli ponad dziesięć lat temu (w czasach Windows XP) i wtedy wszystkie takie kable dostępne na rynku wymagały specjalnego sterownika i oprogramowania. Pozwalają przesyłać pliki tylko za pomocą specjalnego programu do zarządzania plikami, który jest dostarczany wraz ze sterownikami kablowymi na dysku instalacyjnym i dlatego nie pozwalają jednemu komputerowi na działanie jako inne urządzenie zewnętrzne USB.
Nie jestem pewien, czy cokolwiek się zmieniło od tego czasu i czy nowe rozwiązania pozwalają tylko na przesyłanie plików za pomocą specjalnego oprogramowania i - czy możesz zmusić jeden komputer do działania jako urządzenie zewnętrzne na innym komputerze.
źródło
Jak wyjaśniono w odpowiedzi Matt Thomson , nie jest możliwe, aby fizyczny port USB komputera działał jako urządzenie podrzędne USB, ponieważ brakuje kontrolera podrzędnego USB.
Oznacza to, że jeśli mamy kartę adaptera, która może zapewnić USB w trybie slave (na przykład Raspberry Pi Zero), musimy podłączyć go do komputera hosta innym kanałem, na przykład przewodowym Ethernetem. Mam dwie różne propozycje, jaki protokół można uruchomić przez to połączenie Ethernet:
(1) Odsłoń port USB przez sieć IP.
Skorzystaj z oprogramowania, aby udostępnić port Raspberry Pi Zero w trybie podrzędnym USB jako wirtualne urządzenie USB na komputerze. Projekt USB / IP zapewnia to za pomocą sterownika, który może przesyłać USB przez sieci IP. Oto przykład użycia USB / IP do dostarczenia symulowanego urządzenia USB do komputera - którym byłby tutaj Twój komputer.
To, czego nie wiem w tym proponowanym rozwiązaniu, to to, czy oprogramowanie USB / IP jest już w stanie udostępnić port USB slave przez sieć IP lub tylko port hosta USB jak zwykle.
Ale nawet jeśli to zadziała, nadal musisz skonfigurować lub dostosować sterowniki urządzeń na komputerze w taki sposób, aby (1) akceptowały przychodzące połączenie USB / IP jako połączenie USB, (2) zapewniały tryb USB slave zamiast Tryb hosta USB (3) symuluje urządzenie pamięci masowej USB, podając dane z przypisanej lokalizacji (
.vdi
pliku).Ogólnie rzecz biorąc, jest to złożony sposób na zrobienie tego.
(2) Ujawnij plik przez sieć IP.
Jest to o wiele prostszy sposób wykorzystania połączenia Ethernet z Raspberry Pi Zero: na Raspberry Pi Zero zamontuj dane przechowywane na komputerze za pośrednictwem sieciowego systemu plików. Pliki te są następnie logicznie wyświetlane jako część systemu plików Pi Zero i można je obsługiwać za pomocą sterownika gadżetu USB dla systemu Linux, aby Raspberry Pi wyglądał jak urządzenie pamięci masowej USB dla podłączonych urządzeń.
źródło