Kłopot z USB pod Linuksem

Nierozpoznawanie portu USBGdy pod Linux'em np. Ubuntu zechcesz skorzystać z nietypowych urządzeń wykorzystujących port USB (własnej konstrukcji programator czy analizator NWT) reakcja systemu może nieco zaskoczyć.

A tych "co pierwszy raz" - zniechęcić...

Przywykliśmy do tego, że "pod Windą" podłączamy urządzenie, system je wykrywa, instalujemy (automatycznie lub nie) sterowniki. I jest OK.

Albo i nie. I wtedy też trzeba troszkę pomajdrować....

Również pod Linuksem w wielu przypadkach system niezauważalnie dla użytkownika wykrywa i uaktywnia urządzenie. Dowodem tego jest wynik podania w oknie terminala komendy lsusb (po podłączeniu do portu USB urządzenia, w którym wykorzystano układ FT232RL):

user@XYZ:~$ lsusb
...(ewentualna lista innych urządzeń USB)
Bus 007 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC,
...(ewentualna lista innych urządzeń USB)
user@XYZ:~$

Mało tego po podaniu również w oknie terminala komendy: ll /dev/sttyUSB* (na początku dwie małe literki l, jak lampa):

user@XYZ:~$ ll /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 cze 1 09:16 /dev/ttyUSB0
user@XYZ:~$

jej wynik potwierdza aktywność urządzenia o identyfikatorze ttyUSB0. Ponieważ powyższe komendy odwołują się do konkretnego urządzenia to nie jest tu istotne czy uruchomiliśmy czy też nie oprogramowanie z niego korzystające.

Ale zdarza się, że gdy uruchomimy oprogramowanie czeka nas przykra niespodzianka. Program nie wykrywa portu USB lub nie może z niego skorzystać.

Zwykłe putty przy próbie odwołania się do sesji z wykorzystaniem portu ttyUSB0 zgłasza błąd niemożności jego otwarcia:

usberr01

 

Przyczyną nie jest uszkodzenie urządzenia czy też jego zła konfiguracja, a nasze uprawnienia (tj. ich brak) jako użytkownika. Urządzenia USB (o nierozpoznanej sygnaturze) korzystające ze standardowych sterowników przynależą do grupy o nazwie "dialout" (co było widoczne w listingu własności urządzenia ttyUSB0). Podając w terminalu komendę (pokaż zawartość pliku /etc/group zawierające frazę "dialout"):

user@XYZ:~$ cat /etc/group | grep dialout
dialout:x:45:
user@XYZ:~$

Widać, że użytkownik user nie jest członkiem grupy dialout. Fakt, że problem "leży" w uprawnieniach potwierdza to, że gdy użyjemy danego programu z uprawnieniami administratora - sudo, gksu, itp.) problemu nie ma. Możnaby spróbować zmienić "ręcznie" uprawnienia, ale przecież nie o to chodzi.

Prostsze jest dopisanie użytkownika user do grupy dialout. A można to zrobić na kilka sposobów.

Jednym z nich jest wydanie (w oknie terminala) poniższej komendy (druga sprawdza, czy osiągnęliśmy efekt):

sudo usermod -a -G dialout $USER
[sudo] password for user: ********
user@XYZ:~$ cat /etc/group | grep dialout
dialout:x:45:user
user@XYZ:~$

Widać, że użytkownik user stał się członkiem grupy "dialout". Szerszy opis pozycji w pliku group można uzyskać wydając komende: man 5 group.

Czy to już koniec? Niestety nie. W wielu przypadkach dokonana zmiana zadziała dopiero po przeładowaniu (restarcie) systemu. Dokonaj wyboru odpowiedniej pozycji z menu lub komendę w oknie terminala:

user@XYZ:~$ sudo reboot

Po restarcie...A po restarcie możemy już cieszyć się pełną funkcjonalnością aplikacji korzystających z portów USB.

I tak oto konieczność korzystania z oprogramowania MS staje się mniej oczywista.

Pozdrawiam.

Informujemy, iż w celu zebrania informacji o popularności portalu oraz identyfikacji IP odwiedzających korzystamy z informacji zapisanych za pomocą… plików cookies na urzą…dzeniach koń„cowych użytkowników. Pliki cookies użytkownik może kontrolować‡ za pomocą… ustawień„ swojej przeglą…darki internetowej. Dalsze korzystanie z naszego serwisu internetowego, bez zmiany ustawień„ przeglą…darki internetowej oznacza, iż użytkownik akceptuje stosowanie plików cookies. W celu uzyskania więcej informacji zapoznaj się z Polityką prywatności. Akceptuję ciasteczka (cookies) tej strony. By dowiedzieć się więcej o ciasteczkach (cookies) oraz jak je usunąć zajrzyj na stronę o polityce prywatności.

  Akceptuję ciasteczka z tej strony.
EU Cookie Directive Module Information