Najlepszym sposobem jest użycie sterowników gadżetów i sprzętu Linux, który pozwala ci być urządzeniem USB. Sterownik gadżetu pozwala komputerowi "udawać", że jest dowolnym urządzeniem. Następnie testowany system ma pojedynczy kabel USB OTG do pudełka z gadżetami. Nie musisz nawet odłączać kabla, jeśli twój gadżet ma odpowiedni sprzęt. "Pole gadżetu" może być komputerem stacjonarnym/laptopem z systemem Linux (jeśli obsługuje USB OTG), a nawet telefonem z systemem Android lub Raspberry Pi. (Pamiętaj, że USB kable ssać tylko dlatego, że pasuje kablowych nie znaczy, że jest prawidłowo podłączone do USB OTG.).
Gdy masz odpowiedni sprzęt USB OTG, Twoja skrzynka gadżet jest całe oprogramowanie:
1) Jeśli testowane urządzenie obsługuje OTG, upewnij się, że Twój gadżet NIE próbuje zostać hostem USB. (Wówczas testowane urządzenie stanie się klientem USB). upewnij się, że rzeczy takie jak usb_storage
nie są ładowane automatycznie.
2) Po wyjęciu z pudełka jądro obsługuje gadżety dla koncentratorów USB, USB Ethernet, portów szeregowych USB i pamięci USB. Po prostu włóż odpowiednie moduły do skrzynki gadżetowej i "po prostu działa". Na przykład, aby utworzyć pamięć USB, wykonaj następujące czynności: "insmod g_file_storage.ko file=/dev/ram0
". Druga strona pomyśli, że podłączyłeś pamięć USB.
Dla urządzeń szeregowych, gadżet może uruchomić kod w przestrzeni użytkownika, który „podnosi słuchawkę” na/dev/USBx”i mówi do urządzenia badanego. (Przypuszczalnie emulacji modemu 4G lub cokolwiek).
Mnóstwo urządzeń to naprawdę "USB serial" pod maską, ponieważ producent był zbyt leniwy, aby zrozumieć USB.
3) Przy odrobinie ponownej kompilacji lub konfiguracji, możesz pozwolić, by te ogólne urządzenia gadżetowe udawały różne USB Identyfikatory lub zwracanie różnych łańcuchów dostawców itd. To nie będzie to samo, co "testowanie na prawdziwym sprzęcie", ale przynajmniej testujesz z ogólną wersją tych urządzeń.
4) W przypadku typów urządzeń, które nie są jeszcze w jądrze (tj. WiFi lub czymś), jesteś sam. Przy wystarczającym spoceniu krwi i łzach możesz napisać własny typ gadżetu. (Najlepiej zachowaj jak najwięcej w przestrzeni użytkownika i zajmij się tylko najważniejszymi częściami jądra).
Uwaga: nie można jednocześnie zrozumieć i docenić USB.
Nie, niestety nie mam tego rodzaju dostępu do kodu, wszystko co mogę zrobić, to dodać moduły jądra i uruchomić aplikacje testowe.Testy są przeprowadzane na zdalnym serwerze. –