2012-11-19 10 views
7

Właśnie zaktualizowałem system Ubuntu 10.04 do projektu, który łączy wbudowane urządzenie poprzez port szeregowy USB przy 115 200 bitach. Po uaktualnieniu nie działało, ale zrestartowałem i mogłem się połączyć. Od czasu wyłączenia i ponownego uruchomienia mojego systemu nie mogłem się połączyć. Linia szeregowa wygląda jest podłączony w niewłaściwym szybkości transmisji (szybki ciąg znaków jak patrzenie jak:.Nie można ustawić szybkości transmisji na porcie szeregowym USB dla Ubuntu 12.04

"'''''''''''''''''ppppp'''''''''''''''pppppp'''''''''''"... 

Urządzenie USB jest rozpoznawana i skonfigurować jako /dev/ttyUSB0 gdy próbuję ustawienie szybkości transmisji z stty I otrzymujemy:

$ sudo stty -F /dev/ttyUSB0 115200 
stty: /dev/ttyUSB0: unable to perform all requested operations 

jeśli próbuję ustawienie 9600 wydaje się działać:

$ sudo stty -F /dev/ttyUSB0 9600 

Ale cokolwiek innego fa ILS:

$ sudo stty -F /dev/ttyUSB0 4800 
stty: /dev/ttyUSB0: unable to perform all requested operations 

Oto co stty widzi:

$ stty -F /dev/ttyUSB0 
speed 9600 baud; line = 0; 
min = 1; time = 0; 
-brkint -icrnl -imaxbel 
-opost -onlcr 
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 

mogę zmienić inne wartości używając stty (echo, echoe, itp), ale nie szybkość transmisji.

Widziałem w Internecie komentarz, że ktoś może ustawić baud z Minicom, ale nie z linii poleceń, więc dostałem Minicom i wypróbowałem, ale dostaję ten sam wynik (co wydaje się być niewłaściwą prędkością transmisji).

Próbowałem też setserial, ale również odmawia przyjęcia /dev/ttyUSB urządzeń:

$ sudo setserial /dev/ttyUSB0 -a 
Cannot get serial info: Invalid argument 
$ sudo setserial /dev/ttyS0 -a 
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 
    Baud_base: 115200, close_delay: 50, divisor: 0 
    closing_wait: 3000 
    Flags: spd_normal skip_test 

Wreszcie, oto urządzeń i ich konfiguracji z dmesg:

$ ls -l /dev/ttyUSB* 
crw-rw-rw- 1 root dialout 188, 0 Nov 19 15:53 /dev/ttyUSB0 
crw-rw-rw- 1 root dialout 188, 1 Nov 19 16:00 /dev/ttyUSB1 
$ dmesg | grep ttyUSB 
[ 32.444445] usb 4-1: generic converter now attached to ttyUSB0 
[ 32.444549] usb 8-2: generic converter now attached to ttyUSB1 

ja pracuję z tym urządzeniem w systemie Ubuntu 10.04 przez kilka miesięcy i mogłem z nich korzystać w zeszłym tygodniu, ale od czasu wyłączenia i ponownego uruchomienia komputera nie mogłem tego zrobić. Sprawdziłem online i znalazłem kilka osób z podobnym problemem, ale żaden z rozwiązaniami. Jak mogę rozwiązać ten problem?

+0

Czy próbowałeś używać setserial? – exussum

+0

yes, setserial calls/dev/ttyUSB0 "nieprawidłowy argument" (patrz koniec pytania) – user1835090

Odpowiedz

3

Nadal nie wiem, co się stało, ale teraz działa. Dla każdego, kto napotka na ten sam problem, spróbowałem "modprobe -r usbserial" (myślałem o sprawdzeniu, czy stary sterownik może być załadowany przez modprobe -f, nie mógł), a następnie przeładowałem moduł "modprobe usbserial" . Tym razem serial działał poprawnie - nie wiem dlaczego.

Teraz kiedy ja stty zgłasza:

~$ stty -F /dev/ttyUSB0 
speed 115200 baud; line = 0; 
min = 1; time = 0; 
-brkint -icrnl -imaxbel 
-opost 
-isig -icanon -iexten -echo 

i mogę zmienić szybkość transmisji (I zmienił go do 9600, a następnie z powrotem do 115200).

Więc nie ma zadowalającej odpowiedzi, ale widocznie grając z nim można zrobić to praca - podobnie jak to się zaczęło po raz pierwszy pracę po ponownym uruchomieniu.

+0

Stary wątek, ale jeśli po prostu powtórzysz polecenie ('stty -F/dev/ttyUSB0'), to zadziała. Nie wiem, dlaczego wymaga dwóch prób, ale to powinno zadziałać. – corpico

0

Uprawnienia zapisu do pliku urządzenia są wymagane do zmiany ustawień. Możesz go kontrolować za pomocą prostego wpisu. Na przykład.

$ ls -l 
crw-rw-r-T 1 root dialout 188, 0 jan 9 16:16 /dev/ttyUSB0 

W powyższym przypadku wszyscy mają uprawnienia do odczytu (r) superużytkownika root i grupę dialout mieć prawa zapisu zbyt (rw).

Jeśli jesteś członkiem grupy dialout można zmienić prędkość bez żadnych dodatkowych rzeczy przez wyżej wymienionego polecenia stty -F /dev/ttyUSB0 115200 inaczej trzeba użyć sudo.

Można kontrolować swój status członkostwa z komendy id.

Powiązane problemy