Używam modemu USB Huawei GMS / UMTS z Gnokii i Gammu. Modem był w dolnym porcie na Pi. Dzięki dmesg | grep tty
temu pojawi się na /dev/ttyUSB0
i /dev/ttyUSB1
. (W tym przypadku 2 urządzenia USB na 1 patyku są normalne).
Skonfigurowałem odpowiednio Gnokii i Gammu, jednak na ttyUSB0 mogłem tylko wysyłać wiadomości. Zarówno wysyłanie, jak i odbieranie działałoby tylko na ttyUSB1.
Następnie przeniosłem patyk do górnego gniazda USB (bo inaczej mój pendrive nie pasowałby do niego). Wszystko działało dobrze. Również po kilku restartach, zimno i ciepło.
Następnie musiałem rozwinąć system plików (Tak, wiem, że powinienem to zrobić wcześniej). Następnie modem był na ttyUSB0 i ttyUSB * 2 *. Wysyłanie / odbieranie działało na tym drugim. Zajęło mi to trochę czasu, aby się dowiedzieć.
Aktualizacja: 2 dni później ttyUSB2 zniknął. Działający modem przejawia się teraz na ttyUSB0 (wcześniej ttyUSB1).
Masz pojęcie, dlaczego tak się stało? Jakieś linki do odpowiednich dokumentów Debiana lub Linuksa? Byłbym bardzo zobowiązany ..
źródło
/sys/class/tty/
jako przewodnika.Odpowiedzi:
Dokumentacja Gammu sugeruje (ale nie zagłębia się w żaden szczegół) obejście,
Edycja: Atmel ma notatkę aplikacji, która ładnie opisuje proces wyliczania.
Wyliczanie zmienia się, ponieważ dzieje się to w rozmowie między hostem, koncentratorem i urządzeniem, a czas reakcji każdego z nich może się różnić, nawet jeśli konfiguracja jest identyczna od jednego restartu do drugiego.
Aktualizacja: Rozwiązanie nie jest łatwe do znalezienia w Internecie i rozrzucone na kawałki w całym miejscu. Więc złożyłem to wszystko w jednym dokumencie . Do tego się sprowadza.
1. dowiedz się, co jest na ttyUSB:
2. wypisz wszystkie atrybuty urządzenia i wybierz unikalny zestaw identyfikatorów, np. IdVendor + idProduct (i jeśli to konieczne SerialNumber, jeśli masz więcej niż jedno urządzenie z tym samym idVendor i idProduct).
3. Utwórz plik
/etc/udev/rules.d/99-usb-serial.rules
zawierający coś takiego jak ten wiersz:(zakładając, że nie potrzebujesz tam numeru seryjnego i oczywiście z numerami idVendor i idProduct, które znalazłeś w kroku 2.
4. Załaduj nową regułę:
5. Sprawdź, co się stało:
pokaże, na jaki numer ttyUSB poszedł dowiązanie symboliczne. Jeśli tak
/dev/ttyUSB1
, sprawdź, kto jest jego właścicielem i do której grupy należy:Więc dla zabawy:
źródło
Częściowo odpowiedziałeś na swoje pytanie, ale jest na to inny sposób, szczególnie w przypadku urządzeń szeregowych:
/dev/serial/*
ścieżki. Mam interfejs Prolific USB → RS232 na moim Raspberry Pi, który prawie zawsze pojawia się jako/dev/ttyUSB0
. Ale pojawia się również w systemie jako:/dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
/dev/serial/by-id/usb-067b_2303-if00-port0
Korzystanie z
by-id
linku powinno pozostać takie samo, chyba że dodam kolejny konwerter oparty na PL2303.źródło