ESP32 i Arduino na Linuksie – Jak naprawić uprawnienia do portu szeregowego

maj 23, 2026 | Arduino, Nowości

Arduino i mikrokontrolery z rodziny ESP32 działają pod Linuxem bardzo dobrze — często nawet wygodniej niż pod Windowsem. W większości przypadków nie trzeba też instalować żadnych dodatkowych sterowników, ponieważ obsługa popularnych układów USB-UART jest już wbudowana w jądro systemu. Problem pojawia się zwykle dopiero przy pierwszym podłączeniu płytki: system widzi urządzenie, ale PlatformIO albo Arduino IDE nie potrafi wgrać programu. Najczęściej winne są… uprawnienia do portu szeregowego.

W tym artykule pokażę szybkie rozwiązanie problemu, które w większości przypadków sprowadza się do dodania użytkownika do grupy dialout.

ESP32, PlatformIO i Linux — problem z dostępem do portu

Jeśli używasz VS Code + PlatformIO bądź standardowego Arduino IDE, zapewne prędzej czy później natkniesz się na jeden z takich komunikatów:

Bash
Permission denied

lub:

Bash
cannot open /dev/ttyUSB0

albo:

Bash
cannot open /dev/ttyACM0

Sama płytka zwykle działa poprawnie. Linux po prostu nie pozwala zwykłemu użytkownikowi korzystać z portu szeregowego.

Jak dodać użytkownika do grupy dialout

Aby nadać sobie dostęp do portu szeregowego, trzeba dodać aktualnego użytkownika do grupy dialout.

Najpierw otwórz terminal. W Ubuntu najprościej zrobić to skrótem Ctrl + Alt + T

Możesz też wyszukać aplikację „Terminal” z menu systemowego.

Następnie wykonaj polecenie:

Bash
sudo usermod -aG dialout $USER

Dzięki temu dopiszesz bieżącego użytkownika do grupy dialout.

Ważne! konieczne jest wylogowanie

Po zmianie grup należy zakończyć sesję użytkownika:

  • wylogować się i zalogować ponownie,
  • albo po prostu zrestartować komputer.

Bez tego nowe uprawnienia nie będą aktywne.

Jak sprawdzić czy wszystko działa

Najpierw sprawdź, czy użytkownik należy do grupy:

Bash
groups

Na liście powinna pojawić się grupa:

Bash
dialout

Następnie podłącz ESP32 i sprawdź, czy urządzenie jest widoczne:

Bash
ls /dev/ttyUSB*

lub:

Bash
ls /dev/ttyACM*

Jeżeli port istnieje, PlatformIO i Arduino IDE powinny już poprawnie komunikować się z płytką.

PlatformIO pod Linuxem

W przypadku ESP32 zdecydowanie najczęściej korzystam dziś z PlatformIO. Integracja z VS Code jest bardzo wygodna, a zarządzanie bibliotekami i środowiskami projektów działa znacznie lepiej niż w klasycznym Arduino IDE.

Co ważne — problem z grupą dialout dotyczy dokładnie tak samo PlatformIO jak Arduino IDE. Narzędzie używane do uploadu nadal musi mieć dostęp do portu szeregowego systemu.

Po poprawnym ustawieniu uprawnień upload działa bez dodatkowej konfiguracji.

Podsumowanie

Jeżeli ESP32 lub Arduino nie chce programować się pod Linuxem, pierwszą rzeczą do sprawdzenia powinny być uprawnienia do portu szeregowego.

W większości przypadków rozwiązaniem jest jedna komenda:

Bash
sudo usermod -aG dialout $USER

Po ponownym zalogowaniu zarówno PlatformIO, jak i Arduino IDE powinny działać bez problemów.