[DLA PRAKTYKÓW] USB w systemie Linux

Stworzenie nowego urządzenia (na razie jego szkieletu) polega na stworzeniu nowego katalogu:

Należy określić identyfikatory: producenta i urządzenia:

W celach testowych możemy posłużyć się identyfikatorami zarejestrowanymi przez Linux Foundation:

Urządzenie powinno także zgłaszać numer seryjny, oraz nazwy: urządzenia i producenta. W tym celu, należy stworzyć odpowiedni podkatalog strings. Numer określa język (0x409 – angielski por. http://en.wikipedia.org/wiki/Locale#Specifics_for_Microsoft_platforms).

Można przystąpić do tworzenia konfiguracji:

Funkcje (interfejsy)

Zostanie automatycznie załadowany moduł usb_f_ncm.ko

Poszczególne funkcje dostarczają własnego zestawu atrybutów, które należy ustawić. Dla NCM (karta sieciowa) są to:

Następnie dodajemy interfejs do konfiguracji:

Skonfigurowany w powyższy sposób gadget, należy na koniec skojarzyć ze sterownikiem kontrolera UDC. W tym celu wpisujemy jego nazwę do:

Nazwa określona jest w:

Stąd:

W systemie działającym na Wandboard-zie rejestrowany jest interfejs sieciowy usb0.

Po stronie PC mamy:

Mechanizm configfs umożlwia modyfikowanie urządzeń w locie – konfiguracje ich interfejsy mogą być na bieżąco zmieniane. Możliwe jest także obsługiwanie endpointów z przestrzeni użytkownika (libusb).

Dla ułatwienia konfiguracji urządzeń klienckich, powstała biblioteka libgusb (https://github.com/libusbg/libusbg).

Wandboard QUAD i inne zestawy z procesorami i.MX6 firmy Freescale wykorzystywane są podczas organizowanych przeze mnie szkoleń. Więcej informacji: http://bis-linux.com/pl/terminy_szkolen

O autorze